The backend is a FastAPI service that ingests simulation archives, stores normalized metadata in PostgreSQL, and exposes the /api/v1 REST API used by the frontend and service-account tooling.
- archive ingestion and validation
- case, execution, machine, and ingestion persistence
- GitHub OAuth and API-token authentication
- PACE execution lookup
- API schemas and routing
backend/app/main.py FastAPI app and router registration
backend/app/features/ingestion/ ingestion endpoints and parser integration
backend/app/features/catalog/ cases, executions, schemas, delta logic
backend/app/features/machine/ machine models and API
backend/app/features/user/ auth, tokens, user models
backend/app/core/ config, DB setup, exceptions, logging
backend/migrations/ Alembic migrations
backend/tests/ pytest coverage
Run these from the repo root:
make backend-run
make backend-test
make backend-migrate m='message'
make backend-upgradeBackend env templates live in .envs/example/backend.env.example. Local developer values live in .envs/local/backend.env.
Restart the backend after changing local env values.
For repo-wide setup, assistant LLM configuration, and contributor workflow, see Developer Guide.