from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app.database import create_db_and_tables from app.routers import health, scan, entities, actions, audit @asynccontextmanager async def lifespan(app: FastAPI): create_db_and_tables() yield app = FastAPI(title="HA Entity Scanner", lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=settings.cors_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(health.router, prefix="/api") app.include_router(scan.router, prefix="/api") app.include_router(entities.router, prefix="/api") app.include_router(actions.router, prefix="/api") app.include_router(audit.router, prefix="/api")