from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api import ingest, servers
from app.db import close_db, init_db
@asynccontextmanager
async def lifespan(_: FastAPI):
await init_db()
yield
await close_db()
app = FastAPI(title="GHard Monitor API", version="0.1.0", lifespan=lifespan)
# В проде фронт раздаётся тем же origin; CORS нужен для vite dev-сервера (этап 3)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(ingest.router)
app.include_router(servers.router)
@app.get("/api/v1/health")
async def health() -> dict:
return {"status": "ok"}