from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware # Ensure models are imported so metadata is populated import backend.db.import_all_models # noqa: F401 from backend.modules.auth.router import router as auth_router from backend.modules.users.router import router as users_router from backend.modules.customers.router import router as customers_router from backend.modules.aws_accounts.router import router as aws_credentials_router from backend.modules.instances.router import router as instances_router from backend.modules.jobs.router import router as jobs_router from backend.modules.audit.router import router as audit_router from backend.modules.settings.router import router as settings_router from backend.modules.menus.router import router as menus_router from backend.modules.instances.service import start_global_sync_scheduler app = FastAPI(title="AWS EC2 Panel", version="0.2.0") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) @app.get("/healthz") async def healthz(): return {"status": "ok"} app.include_router(auth_router) app.include_router(users_router) app.include_router(customers_router) app.include_router(aws_credentials_router) app.include_router(instances_router) app.include_router(jobs_router) app.include_router(audit_router) app.include_router(settings_router) app.include_router(menus_router) @app.on_event("startup") async def _start_background_tasks(): start_global_sync_scheduler()