Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

orion-server dry-run

Executes a workflow against a JSON input in an in-process engine, then prints the per-task execution trace. Connector-backed tasks are answered from --stubs. Without a matching stub the task fails and names the stub it needs.

Synopsis

orion-server dry-run -w <workflow.json> -i <input.json> [--stubs <stubs.json>] [--metadata <metadata.json>] [--secrets <secrets.json>]

Description

The printed document carries data, metadata, temp_data, audit_trail and calls. Those are the same five documents, in the same shape, that a case’s expect roots address. It also carries output (an alias of data, kept for existing jq filters), trace, matched and errors.

Options

FlagDescription
-w, --workflowPath to a workflow JSON file.
-i, --inputPath to a JSON file used as the message payload.
-s, --stubsPath to a JSON file of canned connector responses. The inner key is the task’s connector (or channel for channel_call); "*" matches any.
--definitionsDirectory holding the set’s shared definitions, resolved before validation.
--plugin-dirDirectory of plugin manifests and their components. A plugin function runs for real in the sandbox — it is capability-free, like crypto — never stubbed. A workflow naming a plugin function whose manifest is given but whose component is not beside it fails as PLUGIN_ARTIFACT_UNAVAILABLE; one naming a function no manifest covers is refused by name. Repeatable.
--model-dirDirectory of model manifests and their artifacts. With one, model_infer runs the model for real — the same handler a node registers, over the file beside the manifest, on the engine’s own runtime — never stubbed: a workflow naming a model the directory does not hold, or holds without its artifact, is refused before it starts as MODEL_ARTIFACT_UNAVAILABLE, and a computed model resolves against the directory per message. Without one, model_infer is answered from --stubs by function name ({"model_infer": {"*": <result>}}), and a workflow that calls it with no stub either is refused with the same code. No admission runs offline: the digest is computed from the file, never claimed, and the bytes are trusted as the author’s own. Repeatable.
-m, --metadataPath to a JSON file used as the message metadata — headers, params, query, cookies, auth.claims, channel, vars. Header keys are lowercased and credential headers masked, as at the HTTP ingress.
--secretsPath to a JSON object of stand-in values for the {"secret": "name"} references the workflow reads: {"partner_hmac": "test-key"}. Offline there is no [secrets] config to resolve, and an engine with no store refuses a workflow that names one. Values are used verbatim — use throwaway ones.

Examples

orion-server dry-run -w wf.json -i input.json --stubs stubs.json

Last verified 14 September 2026