Skip to main content

Reference

Five lookup tables. Nothing here teaches you anything — the guides do that, and each page links back to the one that explains why. These pages exist so you can land on them from a search box or an error message and leave thirty seconds later.

PageLook here when
CLI flagsYou need a flag's exact name, which command takes it, or an exit code
Execution planYou're reading flow explain --json, or generating a plan yourself
EventsYou're consuming --reporter json or writing a subscriber
Validation errorsflow validate printed a code you don't recognise
PermissionsYou're deciding what a role may reach, or reading /api/me

What counts as stable

These five surfaces are the contract. Everything else in the repo — internal helpers, the shape of the terminal output, package internals — can move without notice.

The plan is versioned separately from the packages, as IR_VERSION, currently 2. A plan is rejected only for being newer than the reader understands, so a stored plan keeps working across upgrades. The event union and the validation codes are versioned by the package version and grow additively: a new event variant or a new error code is a minor release, never a patch.

Two things that aren't documented here

Server and worker configuration. The FW_* environment variables belong to the self-hosted server and worker, not the CLI. The CLI reads exactly six environment variables and they're all on the CLI flags page.

The TypeScript authoring API. pipeline(), stage(), sh(), cache, stash and the rest are covered by Authoring pipelines. The reference describes what your pipeline compiles to, not what you write.