Mayank Chugh
Enhance environment configuration and API documentation for Milestone 11
a32f9e3
import os
# Before any route imports that touch Chroma: disable product telemetry (avoids posthog capture() errors in logs).
os.environ.setdefault("ANONYMIZED_TELEMETRY", "FALSE")
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from api.config import get_settings
from storage.audit_store import init_audit_db
from storage.job_store import init_jobs_db
from .routes import audit, ingest, jobs, query
_settings = get_settings()
app = FastAPI(
title=_settings.app_name,
version=_settings.app_version,
description=_settings.app_description,
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(audit.router)
app.include_router(ingest.router)
app.include_router(jobs.router)
app.include_router(query.router)
app.include_router(query.legacy_query_router)
@app.on_event("startup")
async def startup() -> None:
settings = get_settings()
await init_audit_db(settings.audit_db_path)
await init_jobs_db(settings.jobs_db_path)
@app.get("/health", tags=["Health"])
def health() -> dict[str, str]:
settings = get_settings()
return {
"status": "ok",
"app": settings.app_name,
"version": settings.app_version,
}