Skip to content

SimBoard Backend

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.

Responsibilities

  • archive ingestion and validation
  • case, simulation, machine, and ingestion persistence
  • GitHub OAuth and API-token authentication
  • PACE execution lookup
  • API schemas and routing

Important Locations

backend/app/main.py                 FastAPI app and router registration
backend/app/features/ingestion/     ingestion endpoints and parser integration
backend/app/features/simulation/    cases, simulations, 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

Developer Commands

Run these from the repo root:

make backend-run
make backend-test
make backend-migrate m='message'
make backend-upgrade

Configuration

Backend 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.