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.
| Page | Look here when |
|---|---|
| CLI flags | You need a flag's exact name, which command takes it, or an exit code |
| Execution plan | You're reading flow explain --json, or generating a plan yourself |
| Events | You're consuming --reporter json or writing a subscriber |
| Validation errors | flow validate printed a code you don't recognise |
| Permissions | You'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.