Auto-mode commit 7aa33cd accidentally deleted 78 files (14,814 lines) during M005
execution. Subsequent commits rebuilt some frontend files but backend/, alembic/,
tests/, whisper/, docker configs, and prompts were never restored in this repo.
This commit restores the full project tree by syncing from ub01's working directory,
which has all M001-M007 features running in production containers.
Restored: backend/ (config, models, routers, database, redis, search_service, worker),
alembic/ (6 migrations), docker/ (Dockerfiles, nginx, compose), prompts/ (4 stages),
tests/, whisper/, README.md, .env.example, chrysopedia-spec.md
34 lines
966 B
Python
34 lines
966 B
Python
"""Health check endpoints for Chrysopedia API."""
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy import text
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from database import get_session
|
|
from schemas import HealthResponse
|
|
|
|
logger = logging.getLogger("chrysopedia.health")
|
|
|
|
router = APIRouter(tags=["health"])
|
|
|
|
|
|
@router.get("/health", response_model=HealthResponse)
|
|
async def health_check(db: AsyncSession = Depends(get_session)) -> HealthResponse:
|
|
"""Root health check — verifies API is running and DB is reachable."""
|
|
db_status = "unknown"
|
|
try:
|
|
result = await db.execute(text("SELECT 1"))
|
|
result.scalar()
|
|
db_status = "connected"
|
|
except Exception:
|
|
logger.warning("Database health check failed", exc_info=True)
|
|
db_status = "unreachable"
|
|
|
|
return HealthResponse(
|
|
status="ok",
|
|
service="chrysopedia-api",
|
|
version="0.1.0",
|
|
database=db_status,
|
|
)
|