Skip to main content
POST
Run Preflight

Authorizations

Authorization
string
header
required

A floo_ API key.

Headers

X-Floo-Org-Id
string<uuid>

Organization to act in; defaults to the one joined most recently.

Path Parameters

app_id
string<uuid>
required

Body

application/json

Payload the CLI sends to POST /v1/apps/{app_id}/preflight.

Strict field validation: a misspelled field from a CLI/API version skew must fail loud (422) rather than silently route the user into a bad plan.

managed_services
DeclaredManagedService · object[]
env
enum<string>
default:dev

Enumerate the persisted development, production, and preview environment names.

Available options:
dev,
prod,
preview
services
DeclaredRuntimeService · object[]

Response

Successful Response

Top-level preflight plan.

Additional domain plans (services, env vars, routes, crons, domains) are added as the planner grows. The shape is deliberately additive, with new fields defaulting to empty plans so existing consumers keep working.

destructive is true iff acting on this plan would modify or destroy existing state. Pure provisioning is additive and not destructive. scheduled_deprovisions is a sibling status readout, not an action bin.

managed_services
ManagedServicesPlan · object

Reconciliation plan for managed services (postgres, redis, storage).

Managed services are stateful and CLI-canonical. Deploy creates to_provision, retries to_retry (FAILED rows that the user has redeclared), retains to_retain, and NEVER acts on to_orphan — orphans require explicit removal. Rows currently being deprovisioned surface in in_flight_deprovisioning so they remain visible to operators instead of silently disappearing from the plan.

runtime_services
PreflightRuntimeService · object[]
scheduled_deprovisions
ScheduledDeprovisionItem · object[]
summary
PlanSummary · object

Aggregate counts and risk flags for a preflight plan.

destructive
boolean
default:false
data_loss
boolean
default:false