Skip to content

main

src.main

Main FastAPI application entry point.

This module initializes the FastAPI application instance and configures the basic application settings. Additional routers, middleware, and configuration will be added as features are implemented.

Created as part of F0.2 (Docker & Environment Setup) to establish a functional development environment with Traefik routing.

Updated in F0.3 (Configuration Management) to use Pydantic Settings. Updated in F1.1b (User Authorization) to add Casbin enforcer initialization.

Classes

Functions

lifespan async

lifespan(app: FastAPI) -> AsyncGenerator[None, None]

Application lifespan context manager.

Handles startup and shutdown events: - Startup: Initialize Casbin enforcer, load policies - Shutdown: Cleanup resources (future)

Parameters:

Name Type Description Default
app FastAPI

FastAPI application instance.

required

Yields:

Type Description
AsyncGenerator[None, None]

None during application lifetime.

Source code in src/main.py
@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
    """Application lifespan context manager.

    Handles startup and shutdown events:
    - Startup: Initialize Casbin enforcer, load policies
    - Shutdown: Cleanup resources (future)

    Args:
        app: FastAPI application instance.

    Yields:
        None during application lifetime.
    """
    # Startup: Initialize Casbin enforcer
    from src.core.container import init_enforcer

    await init_enforcer()

    yield