RemanenetSpy commited on
Commit
e79d76c
·
1 Parent(s): f3064e2

chore: restore X-Supabase-Url header approach and bubble up connection errors

Browse files
Files changed (2) hide show
  1. api/routes/ingest.py +4 -6
  2. api/routes/query.py +10 -8
api/routes/ingest.py CHANGED
@@ -17,7 +17,7 @@ import time
17
  from datetime import datetime
18
  from typing import Optional
19
 
20
- from fastapi import APIRouter, Depends, Header, Query
21
 
22
  from smriti_core.models import (
23
  EventRecord,
@@ -42,8 +42,7 @@ _supersession = SupersessionEngine()
42
  async def ingest_events(
43
  payload: IngestPayload,
44
  key_info: dict = Depends(verify_api_key),
45
- header_supabase_url: Optional[str] = Header(default=None, alias="X-Supabase-Url"),
46
- query_supabase_url: Optional[str] = Query(default=None, alias="supabase_url"),
47
  ):
48
  """
49
  Ingest raw events into the Chronos temporal memory.
@@ -62,11 +61,10 @@ async def ingest_events(
62
  await check_event_quota(owner_id, len(payload.events))
63
 
64
  # ── Storage target: Supabase BYODB or default Smriti DB ──────────
65
- active_supabase_url = query_supabase_url or header_supabase_url
66
- if active_supabase_url:
67
  try:
68
  from supabase.connector import get_supabase_stores
69
- memory, vector = await get_supabase_stores(active_supabase_url, get_vector_store())
70
  logger.info(f"Supabase BYODB active for source={source_id!r}")
71
  except Exception as e:
72
  from fastapi import HTTPException
 
17
  from datetime import datetime
18
  from typing import Optional
19
 
20
+ from fastapi import APIRouter, Depends, Header
21
 
22
  from smriti_core.models import (
23
  EventRecord,
 
42
  async def ingest_events(
43
  payload: IngestPayload,
44
  key_info: dict = Depends(verify_api_key),
45
+ x_supabase_url: Optional[str] = Header(default=None, alias="X-Supabase-Url"),
 
46
  ):
47
  """
48
  Ingest raw events into the Chronos temporal memory.
 
61
  await check_event_quota(owner_id, len(payload.events))
62
 
63
  # ── Storage target: Supabase BYODB or default Smriti DB ──────────
64
+ if x_supabase_url:
 
65
  try:
66
  from supabase.connector import get_supabase_stores
67
+ memory, vector = await get_supabase_stores(x_supabase_url, get_vector_store())
68
  logger.info(f"Supabase BYODB active for source={source_id!r}")
69
  except Exception as e:
70
  from fastapi import HTTPException
api/routes/query.py CHANGED
@@ -25,7 +25,7 @@ import re
25
  import time
26
  from typing import Optional
27
 
28
- from fastapi import APIRouter, Depends, Header, Query
29
 
30
  from smriti_core.models import (
31
  LiteEventRecord,
@@ -110,8 +110,7 @@ def _adaptive_cutoff(distances: list[float], is_interrogative: bool = False) ->
110
  async def query_memory(
111
  request: QueryRequest,
112
  key_info: dict = Depends(verify_api_key),
113
- header_supabase_url: Optional[str] = Header(default=None, alias="X-Supabase-Url"),
114
- query_supabase_url: Optional[str] = Query(default=None, alias="supabase_url"),
115
  ):
116
  """
117
  Hybrid temporal + semantic retrieval from Chronos memory.
@@ -131,11 +130,14 @@ async def query_memory(
131
  owner_id = key_info["source_id"] # Tenant isolation key
132
 
133
  # ── Storage target: Supabase BYODB or default Smriti DB ──────────
134
- active_supabase_url = query_supabase_url or header_supabase_url
135
- if active_supabase_url:
136
- from supabase.connector import get_supabase_stores
137
- memory, vector = await get_supabase_stores(active_supabase_url, get_vector_store())
138
- logger.info(f"Supabase BYODB query active for owner={owner_id!r}")
 
 
 
139
  else:
140
  memory = get_memory_store()
141
  vector = get_vector_store()
 
25
  import time
26
  from typing import Optional
27
 
28
+ from fastapi import APIRouter, Depends, Header
29
 
30
  from smriti_core.models import (
31
  LiteEventRecord,
 
110
  async def query_memory(
111
  request: QueryRequest,
112
  key_info: dict = Depends(verify_api_key),
113
+ x_supabase_url: Optional[str] = Header(default=None, alias="X-Supabase-Url"),
 
114
  ):
115
  """
116
  Hybrid temporal + semantic retrieval from Chronos memory.
 
130
  owner_id = key_info["source_id"] # Tenant isolation key
131
 
132
  # ── Storage target: Supabase BYODB or default Smriti DB ──────────
133
+ if x_supabase_url:
134
+ try:
135
+ from supabase.connector import get_supabase_stores
136
+ memory, vector = await get_supabase_stores(x_supabase_url, get_vector_store())
137
+ logger.info(f"Supabase BYODB query active for owner={owner_id!r}")
138
+ except Exception as e:
139
+ from fastapi import HTTPException
140
+ raise HTTPException(status_code=400, detail=f"BYODB Error: {type(e).__name__} - {str(e)}")
141
  else:
142
  memory = get_memory_store()
143
  vector = get_vector_store()