klg-asutk-app/backend/app/main.py
Yuriy 0150aba4f5 Consolidation: KLG ASUTK + PAPA integration
- Unify API: lib/api.ts uses /api/v1, inbox uses /api/inbox (rewrites)
- Remove localhost refs: openapi, inbox page
- Add rewrites: /api/inbox|tmc -> inbox-server, /api/v1 -> FastAPI
- Add stub routes: knowledge/insights, recommendations, search, log-error
- Transfer from PAPA: prompts (inspection, tmc), scripts, supabase, data/tmc-requests
- Fix inbox-server: ORDER BY created_at, package.json
- Remove redundant app/api/inbox/files route (rewrites handle it)
- knowledge/ in gitignore (large PDFs)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 17:18:31 +03:00

61 lines
2.3 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
import uvicorn, os
from app.core.config import settings
from app.api.routes import (
health_router,
organizations_router,
aircraft_router,
cert_applications_router,
attachments_router,
notifications_router,
ingest_router,
airworthiness_router,
modifications_router,
users_router,
legal_router,
risk_alerts_router,
checklists_router,
checklist_audits_router,
inbox_router,
tasks_router,
audit_router,
)
@asynccontextmanager
async def lifespan(app: FastAPI):
yield
app = FastAPI(title="KLG ASUTK API", version="2.0.0", lifespan=lifespan)
co = os.getenv("CORS_ORIGINS", "http://localhost:3000").split(",")
app.add_middleware(CORSMiddleware, allow_origins=co, allow_credentials=True, allow_methods=["*"], allow_headers=["*"])
P = "/api/v1"
app.include_router(health_router, prefix=P, tags=["health"])
app.include_router(organizations_router, prefix=P, tags=["organizations"])
app.include_router(aircraft_router, prefix=P, tags=["aircraft"])
app.include_router(cert_applications_router, prefix=P, tags=["cert-applications"])
app.include_router(attachments_router, prefix=P, tags=["attachments"])
app.include_router(notifications_router, prefix=P, tags=["notifications"])
app.include_router(ingest_router, prefix=P, tags=["ingest"])
app.include_router(airworthiness_router, prefix=P, tags=["airworthiness"])
app.include_router(modifications_router, prefix=P, tags=["modifications"])
app.include_router(users_router, prefix=P, tags=["users"])
app.include_router(legal_router, prefix=P, tags=["legal"])
app.include_router(risk_alerts_router, prefix=P, tags=["risk-alerts"])
app.include_router(checklists_router, prefix=P, tags=["checklists"])
app.include_router(checklist_audits_router, prefix=P, tags=["checklist-audits"])
app.include_router(inbox_router, prefix=P, tags=["inbox"])
app.include_router(tasks_router, prefix=P, tags=["tasks"])
app.include_router(audit_router, prefix=P, tags=["audit"])
@app.get("/")
async def root(): return {"message": "KLG ASUTK API"}
@app.get("/health")
async def health(): return {"status": "healthy"}
if __name__=="__main__":
uvicorn.run("app.main:app", host="0.0.0.0", port=8000, reload=True)