Skip to content

Server Database

Module: s2auth.server.db

Config

Bases: BaseSettings

Source code in src/s2auth/server/config.py
class Config(BaseSettings):
    model_config = SettingsConfigDict(
        env_file=[".env", ".env.docker"], extra="ignore", env_nested_delimiter="__"
    )
    sqlalchemy_db_uri: SecretStr = SecretStr(
        "postgresql://postgres:postgres@localhost/s2auth"
    )
    domain_name: str = "s2connect.example.com"

config() async

Source code in src/s2auth/server/config.py
@register_provider()
async def config() -> Config:
    return Config()

async_session(cfg=Depends[config]) async

Source code in src/s2auth/server/db.py
@register_provider(context_manager=True)
@asynccontextmanager
async def async_session(cfg: Config = Depends[config]):
    engine = create_async_engine(cfg.sqlalchemy_db_uri.get_secret_value())
    session = AsyncSession(engine)
    try:
        yield session
        await session.commit()
    except Exception:
        await session.rollback()
        raise