ci / api (push) Failing after 10s
ci / terraform (push) Failing after 11s
ci / web (push) Failing after 35s
ci / pipeline (push) Failing after 2m29s
ci / images (api) (push) Skipped
ci / images (ml) (push) Skipped
ci / images (pipeline) (push) Skipped
ci / images (web) (push) Skipped
End-to-end variant interpretation platform for rare genetic disease research: SvelteKit UI, FastAPI + PostgreSQL API, Nextflow/Ensembl VEP pipeline, LightGBM pathogenicity scoring with MLflow, K8s/ArgoCD/GCP infrastructure. Public test data only; no clinical claims.
29 lines
881 B
Python
29 lines
881 B
Python
from contextlib import asynccontextmanager
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from app.routers import jobs, predictions, samples, variants
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
# Warm the model cache here once ml/ is wired in.
|
|
yield
|
|
|
|
|
|
app = FastAPI(title="rarelens API", version="0.1.0", lifespan=lifespan)
|
|
app.add_middleware(
|
|
CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]
|
|
)
|
|
|
|
app.include_router(samples.router, prefix="/samples", tags=["samples"])
|
|
app.include_router(jobs.router, prefix="/jobs", tags=["jobs"])
|
|
app.include_router(variants.router, prefix="/variants", tags=["variants"])
|
|
app.include_router(predictions.router, prefix="/predictions", tags=["predictions"])
|
|
|
|
|
|
@app.get("/health", tags=["ops"])
|
|
async def health() -> dict[str, str]:
|
|
return {"status": "ok"}
|