16 lines
714 B
Python
16 lines
714 B
Python
from typing import AsyncGenerator, Optional
|
|
import os
|
|
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
DATABASE_URL = os.getenv("DATABASE_URL", "postgresql+asyncpg://postgres:postgres@db:5432/postgres")
|
|
|
|
engine: AsyncEngine = create_async_engine(DATABASE_URL, echo=False, future=True)
|
|
AsyncSessionLocal = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
|
|
|
|
async def get_session(jwt: Optional[str] = None) -> AsyncGenerator[AsyncSession, None]:
|
|
async with engine.connect() as conn:
|
|
# TODO: forward Supabase JWT → Postgres for RLS
|
|
async with AsyncSession(bind=conn) as session:
|
|
yield session
|