Skip to content

fastapi_tools.routers.health

Health check router for monitoring endpoints.

Functions:

health_check async

health_check(request: Request) -> HealthResponse

Return a basic health status.

Source code in src/fastapi_tools/routers/health.py
@router.get("", summary="Health check")
async def health_check(request: Request) -> HealthResponse:
    """Return a basic health status."""
    config: WebappConfig = request.app.state.config
    return HealthResponse(
        status="healthy",
        version=config.app_version,
        timestamp=datetime.now(UTC),
    )

liveness_check async

liveness_check() -> dict

Return a simple liveness status.

Source code in src/fastapi_tools/routers/health.py
@router.get("/live", summary="Liveness probe")
async def liveness_check() -> dict:
    """Return a simple liveness status."""
    return {"status": "alive"}

readiness_check async

readiness_check(request: Request) -> ReadinessResponse

Check whether all required components are operational.

Source code in src/fastapi_tools/routers/health.py
@router.get("/ready", summary="Readiness probe")
async def readiness_check(request: Request) -> ReadinessResponse:
    """Check whether all required components are operational."""
    config: WebappConfig = request.app.state.config
    checks: dict[str, bool] = {}
    try:
        checks["config"] = bool(config)
    except (ValueError, AttributeError, KeyError):
        checks["config"] = False
    try:
        checks["google_oauth"] = bool(config.google_oauth.client_id)
    except (ValueError, AttributeError, KeyError):
        checks["google_oauth"] = False
    all_ready = all(checks.values())
    return ReadinessResponse(
        status="ready" if all_ready else "not_ready",
        checks=checks,
    )