Dispatches Snakemake workflows to compute backends.
- Single-tenant service: all API routes are trusted; auth is enforced at the network layer.
- Compute backends (local, slurm_ssh) are abstracted behind
ComputeBackend(app/backends/base.py). The backend is selected at startup fromconfig.yamland injected via FastAPI DI. - Job lifecycle:
PENDING->SETUP->RUNNING->COMPLETED/FAILED/CANCELLED. Orchestrated byexecute_jobinapp/tasks.py; state persisted viaapp/store.py. - snkmt DB sync: Snakemake job-graph metadata (rule counts, file listings) is synced from the compute backend to a local SQLite file during execution and exposed via
/snkmt/*endpoints. Seeapp/snkmt.pyfor the query layer.