Files
rarelens/api/app/main.py
T
kemal 5463f489a3
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
Initial release: rarelens platform skeleton (AGPL-3.0)
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.
2026-09-11 16:55:35 +01:00

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"}