FlightDeck is local-first: one flightdeck.yaml + SQLite database per working directory. “Fleet” ergonomics here means repeatable layouts and naming—not a hosted control plane.
- One directory per environment or product slice, each with its own
flightdeck.yamland.flightdeck/flightdeck.db. - Pin
db_pathper workspace (default.flightdeck/flightdeck.dbis fine if directories never merge). - Use consistent
default_environmentvalues (staging,prod) across repos that feed the same promotion gates.
For cross-vendor comparable cost lines on release diff / POST /v1/diff, add pricing_catalog_path in flightdeck.yaml pointing at a PricingCatalog YAML (see examples/pricing/catalog.sample.yaml).
Set promotion_requires_approval: true in flightdeck.yaml to require release promote-request / release promote-confirm (or HTTP POST /v1/promote/request + POST /v1/promote/confirm) instead of a direct release promote.
See workspace-staging.example.yaml for a copy-paste starting point; copy to your repo root as flightdeck.yaml and edit paths.
Prefer per-workspace ledgers and pull-based joins in your own tooling:
flightdeck runs export/GET /v1/runs(andGET /v1/runs/exportwhen usingflightdeck serve) — JSONL or JSON per workspace.GET /v1/metrics— coarse counters per workspace.- CI — one job per workspace directory (see examples/ci/README.md).