Run a workflow locally
Validate and run a workflow file against an event with operion run, with no database
operion run validates a workflow file and runs it against an event in memory. It needs no database and no server, so it is the fastest way to try a workflow while you write it, in a terminal or in CI.
Get the binary
Build it from source with Go 1.27 or later:
git clone https://github.com/operion-flow/operion.git
cd operion
go build -o operion ./cmd/operionOr use the container image and mount the current directory:
docker run --rm -v "$PWD:/work" -w /work ghcr.io/operion-flow/operion:0.1 run --workflow workflow.json --event event.jsonRun a workflow
Take the workflow.json from the quick start and save the event the trigger receives as event.json. For a webhook trigger it is the request as Operion sees it:
{"body": {"name": "Ana"}}Then run:
./operion run --workflow workflow.json --event event.jsonIt prints the execution as JSON, with "status": "completed" and "result": "hello Ana" under node_results.greet.data. When the execution fails, it prints it too and exits with an error, so a script or a CI job can rely on the exit code.
What differs from serve
- Waits and retries do not wait. A
waitnode, await_untilnode or a retry continues right away. - Remote nodes cannot answer later. A remote node that answers
202fails at once, because there is no server to call back. Pass--node-typesto resolve remote node types from a file instead of the database; see remote nodes. - One trigger at a time. When the workflow has more than one trigger node, pick one with
--trigger <node-id>.
All flags are in the CLI reference.