CLI Reference — orqestractl
Technical reference. This page is for integrations, advanced configuration, or platform operations. For portal tasks, start with the user guide.
orqestractl is the Orqestra CLI for core control-plane workflows. It covers
workloads, assets, flows, releases, executions, templates, namespaces, triggers,
plugins, and model catalog browsing. It does not yet replace every portal
surface, so use the API or portal where a workflow is not exposed in the CLI.
Installation
In this repository, the fastest local path is:
cd packages/orqestra-cli
uv sync
uv run orqestractl --helpIf you install the package into another environment, the command name is still
orqestractl.
Authentication
Configure the API endpoint and credentials:
# Via flags
orqestractl --api-url http://localhost:8000 --api-key $ORQESTRA_API_KEY workload list
# Via environment variables
export ORQESTRA_API_URL=http://localhost:8000
export ORQESTRA_API_KEY=your-api-key
orqestractl workload listOutput Formats
The global --format flag must appear before the command group:
orqestractl workload list
orqestractl --format json workload list
orqestractl --format yaml release get <release_id>Command Groups
workload — Manage workloads
| Command | Description |
|---|---|
orqestractl workload list | List workloads |
orqestractl workload get <workload_id> | Get workload details |
orqestractl workload create --slug my-workload --owner team:platform | Create a workload |
orqestractl workload run <slug> --environment production --input key=value [--timeout 600] | Execute a workload with inline inputs |
orqestractl workload run <slug> --subject-actor-ref user:ops@orqestra.dev --subject-actor-type user --subject-actor-auth-mode programmatic | Execute as an explicit subject actor from an internal service credential |
orqestractl workload lane-binding list <workload_id> | List workload service-lane bindings |
orqestractl workload lane-binding add <workload_id> --lane restricted --reason "Regulated Sample" | Bind a workload to a service lane |
orqestractl workload principal-binding list <workload_id> | List workload principal bindings |
orqestractl workload principal-binding add <workload_id> --actor-ref user:alice@orqestra.dev | Bind an actor to workload execution |
orqestractl workload share create <workload_id> | Create a share link for a workload |
orqestractl workload share list <workload_id> | List active share links |
orqestractl workload share revoke <link_id> | Revoke a share link |
asset — Manage governed assets
| Command | Description |
|---|---|
orqestractl asset list | List assets |
orqestractl asset list --kind agent | Filter by asset kind |
orqestractl asset get <asset_id> | Get asset details |
orqestractl asset create --slug my-prompt --kind prompt_template --owner team:ai | Create an asset |
orqestractl asset version <asset_id> --label v2 --content-file content.json | Create a new asset version |
flow — Manage orchestration flows
| Command | Description |
|---|---|
orqestractl flow list | List flow assets |
orqestractl flow get <flow_id> | Get flow details |
orqestractl flow create --slug my-flow --owner team:ai --file flow.yaml | Create a flow from YAML |
orqestractl flow validate --file flow.yaml | Validate a flow definition |
orqestractl flow generate --description "Classify support tickets by urgency" --output generated-flow.yaml | Generate flow YAML from natural language |
release — Manage releases
| Command | Description |
|---|---|
orqestractl release list --workload <workload_id> | List releases for a workload |
orqestractl release get <release_id> | Get release details |
orqestractl release cockpit <release_id> | Show the aggregated release cockpit |
orqestractl release create --workload <workload_id> --environment production --target-lane all | Create a draft release |
orqestractl release bind <release_id> --asset-version <asset_version_id> --role orchestration_flow | Bind a workload entry flow to a release |
orqestractl release bind-model-policy <release_id> --asset-version <asset_version_id> | Bind an approved model policy to a release |
orqestractl release transition <release_id> --to review_ready | Move a release through the lifecycle |
orqestractl release evaluate <release_id> | Trigger an evaluation run for a release |
orqestractl release evaluations <release_id> | List evaluation results for a release |
orqestractl release rollback <release_id> | Rollback to the previous active release |
orqestractl release advance <release_id> | Advance rollout to the next lane |
orqestractl release rollout-status <release_id> | Check the current rollout state |
orqestractl release rollback-recommendation <release_id> | Check health and get a rollback recommendation |
orqestractl release compare <release_id_a> <release_id_b> | Compare two releases side-by-side |
orqestractl release policy-simulation <release_id> | Simulate the policy bound to a release |
review_ready -> approvedrequires at least one approval record, andapproved -> activerequires apolicy_bundlebinding plus an approvedmodel_policybinding when the release’s flow uses provider-routed steps such asllm_call,agent, orembedding.
audit — Verify governance audit integrity
| Command | Description |
|---|---|
orqestractl audit verify | Verify the governance audit hash chain from the genesis row |
orqestractl audit verify --from <audit_id> --to <audit_id> | Verify an inclusive audit-id range |
orqestractl audit verify --worm | Verify the database chain and the configured WORM export segments |
orqestractl audit worm-status | Show WORM exporter cursor, lag, and failure state |
orqestractl audit worm-segments --limit 20 | List recent WORM export segment receipts |
orqestractl audit worm-storage | Show WORM export byte usage and live evidence byte usage |
orqestractl audit worm-capability approve ... | Approve a jurisdiction mapping and request a fresh storage observation |
orqestractl audit verify reads Postgres directly through
ORQESTRA_POSTGRES_DSN_DIRECT when configured. It is an integrity verifier,
not an audit search interface.
Capability approval uses the authenticated control-plane API, not the direct
database connection. It requires the platform governance.worm_export.manage
permission, four explicit inputs (--jurisdiction, --mapping-version,
--source-ref, and --authority-ref), and an interactive confirmation. Repeat
--jurisdiction once per organization jurisdiction one destination serves. The
returned bucket, region, retention, approver, and observation timestamps come
from the server’s provider observation.
orqestractl audit worm-capability approve \
--jurisdiction EU \
--jurisdiction CH \
--mapping-version region-map-v4 \
--source-ref contract:approved-region-map \
--authority-ref approval:platform-change-42model policy — Manage governed model policies
| Command | Description |
|---|---|
orqestractl model policy list | List governed model policies |
orqestractl model policy get <slug> | Inspect one model policy and its versions |
orqestractl model policy create --slug <slug> --owner <owner_ref> --label v1 --content-file model-policy.yaml | Create a draft model policy and first version |
orqestractl model policy create-version <slug> --label v2 --content-file model-policy.yaml | Add a new draft model-policy version |
orqestractl model policy approve <slug> <asset_version_id> --review-metadata-json '{"ticket":"SEC-1"}' | Approve an explicit model-policy version for binding |
orqestractl model policy create and orqestractl model policy create-version
print an advisory supplier-assurance report after the API body. The report is
not certification. For json and yaml, the API body stays on stdout and the
report is on stderr.
evaluation — Manage advisory evaluation sessions
| Command | Description |
|---|---|
orqestractl evaluation sessions [--subject-ref <asset_slug>] | List generalized evaluation sessions |
orqestractl evaluation session <session_id> | Get one session with candidate outcomes |
orqestractl evaluation create --subject-kind asset_candidate --subject-ref <asset_slug> --candidate-json '{...}' [--idempotency-key <key>] | Create an advisory session (manual, asset-version, or assistant-generated candidates) |
orqestractl evaluation run <session_id> --candidate-id <candidate_id> --suite <suite_slug> | Run a candidate against an evaluation suite |
orqestractl evaluation run <session_id> --candidate-id <candidate_id> --suite <suite_slug> --execution-mode end_to_end --runtime-target-json '{...}' | Run through the governed runtime test path |
evaluation sessions are not release-gate evidence. Returned outcomes keep
gate_eligible=false; the command group does not publish winners, create asset
versions, bind releases, approve releases, or activate releases. Use
release evaluate for release-gate evidence.
--judge-mode llm_judge and assistant-generated candidates are
Enterprise-gated by the control plane. Deterministic manual or imported
candidate runs are the Community path.
A --candidate-json with "source":"assistant_generated" requires an
idempotency key. Omit --idempotency-key and the CLI mints one and prints it
to stderr (idempotency-key: <key>) before dispatching — never stdout. If the
command times out or reports the submission is still resolving, re-run the
identical command with --idempotency-key <that printed key> to safely
replay the outcome; minting a new key instead submits a new request and can
create a duplicate candidate. See Worked
Examples below.
identity-tenant — Manage trusted Entra tenants
Per organization. Registering a tenant binds its issuer permanently; a tenant can be disabled and re-enabled but never deleted, because historical actors, audit records and group mappings reference it.
| Command | Description |
|---|---|
orqestractl identity-tenant list --org-id <org_id> | List an organization’s trusted tenants |
orqestractl identity-tenant register --org-id <org_id> --tenant-id <guid> --display-name <name> | Register a tenant (binding is permanent) |
orqestractl identity-tenant update --org-id <org_id> --identity-tenant-id <id> --status disabled | Disable or re-enable a tenant |
organization — Create organizations and administer policy
Organization creation and bootstrap require a JSON file containing an explicit
initial policy commitment. Policy updates require the version currently shown
by policy get; a stale version returns a conflict and is never retried
automatically. History is newest-first and uses the exclusive
--before-version cursor.
orqestractl organization create --slug acme --display-name "Acme Corp" \
--initial-policy-file initial-policy.json
orqestractl organization bootstrap --org-name "Acme Corp" --org-slug acme \
--initial-policy-file initial-policy.json
orqestractl organization policy get <org_id>
orqestractl organization policy history <org_id> --limit 25 --before-version 8
orqestractl organization policy update <org_id> --expected-version 8 \
--policy-file approved-replacement.jsonThe policy file must include all four retention durations, jurisdiction,
retention mode and backend, backend maximum, source kind/reference, and
authority reference. COMPLIANCE mode additionally requires the exact irreversible
acknowledgement in compliance_acknowledgement. The CLI has no policy defaults.
namespace settings — Manage tenant settings
Per organization, addressed through any of its namespaces. These are the audited runtime switches for notifications, advanced notifications and SCIM; they replace the deploy-time ORQESTRA_EXPERIMENTAL_FEATURES keys, so a change applies to the next request with no redeploy. Notifications default on; advanced notifications and SCIM default off. Changing them needs namespace.manage; in a single-issuer deployment SCIM is platform-wide and needs platform administration.
| Command | Description |
|---|---|
orqestractl namespace settings get <namespace_id> | Show the tenant settings |
orqestractl namespace settings set <namespace_id> --scim on | Turn SCIM provisioning on (or off) |
orqestractl namespace settings set <namespace_id> --notifications on | Turn notifications on or off |
orqestractl namespace settings set <namespace_id> --notifications-advanced on | Turn digests, batching, personal chat and overrides on |
The same switches are in the portal under Administer › Access & org › Tenant settings. A feature that is off answers 403 enterprise_capability_required, and its capability_slug names the setting to turn on.
scim-credential — Manage SCIM provisioning credentials
Scoped to one organization and one registered tenant, and confined to /scim/v2. The plaintext secret is printed once, on issue, and cannot be retrieved afterwards. At most two credentials are active per tenant, so rotation is: issue the replacement, update the customer’s SCIM app, then revoke the old one.
| Command | Description |
|---|---|
orqestractl scim-credential list --org-id <org_id> --identity-tenant-id <id> | List credentials (never includes a secret) |
orqestractl scim-credential issue --org-id <org_id> --identity-tenant-id <id> --expires-in-days 90 | Issue a credential; the secret is shown once |
orqestractl scim-credential revoke --org-id <org_id> --identity-tenant-id <id> --credential-id <id> | Revoke a credential immediately |
execution — Inspect governed runs
| Command | Description |
|---|---|
orqestractl execution list --workload <workload_id> | List executions |
orqestractl execution get <execution_id> | Get execution details |
orqestractl execution analysis <execution_id> | Get governed metadata-only execution analysis |
orqestractl execution cost <execution_id> | Get execution cost summary |
orqestractl execution guardrail-attribution <execution_id> | Get materialized/mitigated/attempted guardrail attribution |
orqestractl execution evidence <execution_id> <artifact_id> | Read one evidence artifact |
orqestractl execution mcp-authority-decisions <execution_id> --workspace <workspace_id> | List redacted MCP authority decision evidence |
orqestractl execution hermes-evidence <execution_id> | List Hermes controlled-launch evidence |
orqestractl execution evidence-graph <execution_id> | Trace the full governance evidence chain |
orqestractl execution pause <execution_id> | Send a pause signal for a running execution |
orqestractl execution resume <execution_id> | Clear pause and kill signals for an execution |
orqestractl execution snapshot <execution_id> | Read the latest checkpoint snapshot |
The CLI exposes pause, resume, and snapshot operations. Rerun, replay, and trigger backfill are currently API surfaces; see Execution Recovery & Control.
execution hermes-evidence is read-only. It lists
hermes_execution_normalization artifacts from launched Hermes runs and keeps
the claim language bounded to controlled launch:
governance_claim=launched_through_orqestra and
capability_mediation=not_claimed.
hermes-runtime — Register Hermes runtimes
| Command | Description |
|---|---|
orqestractl hermes-runtime list --governance-level passive_evidence | List registered passive Hermes runtimes |
orqestractl hermes-runtime register --runtime-ref ... --display-name ... --owner-ref ... | Register a passive Hermes runtime |
orqestractl hermes-runtime telemetry <runtime_id> | Inspect passive Hermes telemetry |
orqestractl hermes-runtime ingest-telemetry <runtime_id> ... | Record replay-safe passive telemetry |
Hermes runtime registration is inventory/passive-evidence only. Launched Hermes runs are surfaced through execution evidence; the CLI does not claim tool-call mediation or certified runtime governance for Hermes.
external-runtime-certification — Inspect and manage runtime certification posture
| Command | Description |
|---|---|
orqestractl external-runtime-certification create --file certification.json --idempotency-key <key> | Append a complete n8n certification receipt from JSON (--file - reads stdin) |
orqestractl external-runtime-certification show <certification_id> | Show one complete, non-secret certification receipt |
orqestractl external-runtime-certification latest --profile-id <profile_id> --runtime-id <runtime_id> | Show the active-complete historical head |
orqestractl external-runtime-certification list | List external-runtime certification posture rows |
orqestractl external-runtime-certification list --state certified --level capability_mediated --evidence-completeness complete --proof-strength orqestra_verified | Filter runtime certification posture by read axes |
orqestractl external-runtime-certification revoke <certification_id> --rationale "confirmed compromise" | Hard-revoke one runtime certification (operator incident response) |
orqestractl external-runtime-certification revoke-by-runtime --runtime-id <runtime_id> --rationale "runtime compromised" | Mass-revoke every certification issued to a compromised runtime |
orqestractl external-runtime-certification revoke-by-signing-key --signing-key-ref <signing_key_ref> --rationale "key compromised" | Mass-revoke every certification anchored to a compromised signing key |
orqestractl external-runtime-certification state-history <certification_id> | Read the certification-state-change audit trail (incident history) |
This surface is separate from plugin package installs. Connector/tool posture and external-runtime certification are different governance domains; package install commands manage workspace availability for cataloged plugin assets.
The list and state-history commands need EXTERNAL_AI_READ; revoke,
revoke-by-runtime, and revoke-by-signing-key are governed mutations that
need EXTERNAL_AI_MANAGE and each transition emits a canonical governance
audit row. Revocation is terminal and idempotent — revoking an
already-revoked certification returns it unchanged.
external-runtime-run-evidence-summary — Inspect run-evidence posture
| Command | Description |
|---|---|
orqestractl external-runtime-run-evidence-summary list | List workspace-scoped, role-projected run-evidence-summary posture rows |
orqestractl external-runtime-run-evidence-summary list --trace-state sequence_complete --bypass-check-status passed --evidence-completeness complete --evidence-seal-state sealed --governance-seal-status sealed_clean | Filter run-evidence-summary posture by read axes |
orqestractl external-runtime-run-evidence-summary list --sovereignty-closure-status open_gap | Filter by §13 sovereignty closure status (consumer-visible) |
orqestractl external-runtime-run-evidence-summary list --gap-reason missing_evidence --capability-kind model_provider --capability-reconciliation-status contradicted --capability-evidence-completeness partial --capability-proof-strength adapter_reported | Filter by gap reason / per-capability axes (operator-only — see below) |
Read-only, EXTERNAL_AI_READ-gated. This is the run-summary half of the
external-runtime read surface (the certification axes are exposed by
external-runtime-certification above); the current (latest-reconciliation)
row per execution is returned. The governance_claim_label / gap_reasons
projection is resolved server-side from the caller’s workspace permissions —
holding EXTERNAL_AI_MANAGE additionally promotes the view to the exact gap
detail, otherwise the safe posture summary only. The same projection covers
the response’s sovereignty_gap and capability_evidence fields
(sovereignty_closure_status is coarse posture and always visible).
--gap-reason, --capability-kind, --capability-reconciliation-status,
--capability-evidence-completeness, and --capability-proof-strength are
operator-only filters: a consumer-tier caller (EXTERNAL_AI_READ without
EXTERNAL_AI_MANAGE) supplying any of them is denied (403), never a
silently narrowed result — they would otherwise let a consumer reconstruct
withheld gap/evidence detail one filter value at a time.
external-runtime-profile — Inspect external-runtime profile posture
| Command | Description |
|---|---|
orqestractl external-runtime-profile list | List workspace-scoped external-runtime profile identity/posture rows |
orqestractl external-runtime-profile list --engine n8n --conformance-level admission_gated | Filter profiles by engine / conformance level |
Read-only, EXTERNAL_AI_READ-gated. Returns profile identity + posture only
(engine, conformance_level, mediated_capabilities, …); internal
contract detail (workflow digest contract, capability gateways, declared
config, …) is never included. A profile record carries no
governance-claim label, so there is no role-based projection here.
mcp-tool-schema — Inspect MCP tool-schema governance
| Command | Description |
|---|---|
orqestractl mcp-tool-schema snapshots <asset> <version> | List immutable discovery snapshots for a target |
orqestractl mcp-tool-schema snapshot <asset> <version> <id> | Show one snapshot’s tool and schema entries |
orqestractl mcp-tool-schema approvals <asset> <version> | List approval history, including superseded and revoked |
orqestractl mcp-tool-schema observations --state denied | List bounded live observations, optionally filtered |
orqestractl mcp-tool-schema observations --execution-id <id> | Show the observations committed during one execution |
Read-only, asset.view-gated. There is deliberately no approve or revoke
here: authorizing a tool inventory is an operator decision that the portal
presents with a confirmation restating target, version, snapshot, tool count
and reason, and that carries a fresh idempotency key per action. A one-line
CLI approve would have neither.
snapshots, approvals, and observations all accept --limit/--offset
to page through a long history rather than always returning the server’s
default first page.
observations --execution-id <id> reads a different, execution-scoped route
than --asset-id/--state (the workspace-wide list); combining
--execution-id with either of those is rejected rather than silently
dropping the asset/state filter.
Approval history is returned unfiltered — revoked and superseded entries are what the history exists to show. Observations carry identifiers, closed reasons, digests and timestamps only; never provider content, arguments, headers, credentials or authority subjects.
template — Preview and apply templates
| Command | Description |
|---|---|
orqestractl template list | List bundled templates |
orqestractl template preview <slug> | Preview template content |
orqestractl template apply <slug> --workload <workload_id> | Instantiate a template into a workload |
asset — Manage governed assets (extended)
The asset group now includes a blast-radius command:
| Command | Description |
|---|---|
orqestractl asset blast-radius <asset_id> | Show all releases affected by a given asset |
All previously documented asset commands remain unchanged.
policy — Governance policy operations
| Command | Description |
|---|---|
orqestractl policy simulate <policy_bundle_id> | Dry-run a policy evaluation against the current context |
orqestractl policy diff <policy_bundle_id_a> <policy_bundle_id_b> | Compare two policy bundles and show rule-level differences |
orqestractl policy exceptions create <workspace_id> | Create a pending exception or approval-backed runtime grant |
orqestractl policy exceptions list <workspace_id> | List exceptions; filter by status, profile, or capability |
orqestractl policy exceptions approve|revoke|use <workspace_id> <exception_id> | Approve, revoke, or record use of an exception |
Runtime permission grants are created through policy exceptions create with
--profile-ref, --capability-kind, and repeatable --authorized-target.
Approved active grants are still expiry-bound policy exception records.
runtime-permission-profile — Inspect runtime grant profiles
| Command | Description |
|---|---|
orqestractl runtime-permission-profile list --workspace-id <workspace_id> | List shipped runtime permission profiles |
orqestractl runtime-permission-profile get <profile_ref> --workspace-id <workspace_id> | Inspect one runtime permission profile |
orqestractl runtime-permission-profile list --workspace-id <workspace_id> --profile-ref ... | Filter the profile catalog by exact profile name |
permission-evidence — Read permission decision records
| Command | Description |
|---|---|
orqestractl permission-evidence --workspace-id <workspace_id> | Read the first bounded page of redacted permission decisions |
orqestractl permission-evidence --workspace-id <workspace_id> --cursor <cursor> --limit 100 | Continue from an opaque cursor returned by the previous page |
orqestractl permission-evidence --workspace-id <workspace_id> --outcome deny | Filter the page to one recorded outcome |
Each page contains at most 100 records. The command reports recorded outcomes, reason codes, revisions, freshness, lineage, and acknowledgement state. An empty page means no evidence was recorded; it does not establish that an operation was never attempted.
guardrail, plugin, model, tenant, and trigger
| Group | Available commands |
|---|---|
guardrail | list, get, create --config-file ... |
plugin | list, get, install, update, installs, enable <install_id>, disable <install_id>, remove <install_id>, provenance <install_id>, resolve <package_ref>, bind <release_id> <package_ref> <role>, validate --dir <path> |
tool-permission | list <workload_id>, set <workload_id> --plugin-slug ..., delete |
model | list |
tenant | list, get, create |
trigger | list, get, create --type ... --config-file ..., delete |
plugin install materializes package-local assets into a workspace scope;
plugin update adopts a newer package version into the same scope without
mutating the already-installed version. plugin disable, plugin enable, and
plugin remove change an install by install id, not by global slug —
disable/enable toggle plugin_install.state, remove permanently
supersedes the install. plugin resolve reads whether a package ref is
installed and runtime-available without raising; plugin bind re-resolves the
ref fail-closed and then binds it to a release role in one step. plugin validate checks an author’s orqestra.plugin.yaml manifest locally with no
API calls. tool-permission set grants a workload access to a connector and
takes a --justification that the API requires when the connector is
restricted or destructive. See the
Plugins & Connectors guide for the
posture model, and
Resolving And Binding Installed Assets
for the package-ref grammar.
capability — Query capability status
| Command | Description |
|---|---|
orqestractl capability list | List platform capabilities and maturity states |
orqestractl capability list --area recovery | Filter by capability area |
orqestractl capability list --state implemented | Filter by maturity state |
orqestractl capability get <slug> | Show detailed capability metadata |
orqestractl capability summary | Show aggregate maturity counts |
sync — GitOps directory sync
For apply and reconcile, the CLI preflights the complete ordered mutation
plan exactly once before its first write. A denied, unavailable, or malformed
preflight stops the run with no domain changes. There is no automatic retry or
fallback to an older server. An allow is advisory; each writer authorizes again
against current state.
orqestractl sync is a command group: validate (local parse/validate, no API
calls — full schema for the package layout, structural checks for the split-file
layout), preview (dry-run diff against live state), apply, and reconcile
(idempotent convergence for CI/CD loops):
orqestractl sync validate --dir ./orqestra-resources
orqestractl sync preview --dir ./orqestra-resources
orqestractl sync apply --dir ./orqestra-resources
orqestractl sync reconcile --dir ./orqestra-resourcesThe sync directory is a workload bundle with workload.yaml,
release.<env>.yaml, one-file resources under resources/, and one-file flows
under flows/. Connection definition and local instance settings live in the
same kind: connector_definition resource file.
Source manifests do not carry version labels. Sync compares resource and flow content by canonical JSON hash, reuses an identical live version when one exists, and creates a new immutable version when content changes. Release manifests bind by slug only; sync resolves those slugs to the versions created or reused in the same run.
Release approvals are explicit CLI actions. After moving a release to
review_ready, use orqestractl release approve <release-id> from a different
authorized actor before transitioning to approved. Sync itself never
approves or activates. Preview, apply, and reconcile report the observed
serving identity separately from package reconciliation, so a matching
inactive candidate cannot be read as “already serving”.
run — Execute a released workload
run executes a workload you have released, addressing it by slug and passing a
single query input. Add --interactive to stream execution events instead of
waiting for the completed result; both modes execute the same workload.
orqestractl run playground-knowledge-assistant --query "What is Orqestra?"It does not yet provide a generic “run any flow with arbitrary inputs” surface.
This is not the workspace’s built-in knowledge assistant, which resolves its own managed workload server-side and is reached with:
orqestractl knowledge query "What is Orqestra?" --workspace-id <workspace-id>Worked Examples
Generate and validate a flow
orqestractl flow generate \
--description "Summarize uploaded documents and email the summary every Monday" \
--output generated-flow.yaml
orqestractl flow validate --file generated-flow.yaml
orqestractl flow create --slug weekly-summary --owner team:ops --file generated-flow.yamlPreview a GitOps sync
orqestractl sync validate --dir ./orqestra-resources
orqestractl sync preview --dir ./orqestra-resources
orqestractl sync apply --dir ./orqestra-resourcesQuery a seeded knowledge workload
orqestractl run playground-knowledge-assistant --query "How does Orqestra handle approvals?"Generate an evaluation candidate with the assistant
Enterprise-gated; requires the evaluation-assistant-candidates runtime
capability. The CLI mints an idempotency key and prints it to stderr:
orqestractl evaluation create \
--subject-kind asset_candidate \
--subject-ref summarizer-prompt \
--candidate-json '{"source":"assistant_generated","asset_kind":"prompt_template","generation_brief":"Draft a concise, neutral-tone summarizer prompt."}'
# stderr: idempotency-key: 3f9a2c1e8b7d4a6f9c0e1d2b3a4f5c6d
# stdout: {"session_id": "...", "candidates": [{"candidate_id": "...", "content": {...}, ...}]}If that command fails with a timeout or a “still resolving” error, it names the same key in its error message — re-run the identical command with that key to safely resolve it, rather than retrying with a new one:
orqestractl evaluation create \
--subject-kind asset_candidate \
--subject-ref summarizer-prompt \
--candidate-json '{"source":"assistant_generated","asset_kind":"prompt_template","generation_brief":"Draft a concise, neutral-tone summarizer prompt."}' \
--idempotency-key 3f9a2c1e8b7d4a6f9c0e1d2b3a4f5c6dsetup — owner-run demo convergence and readiness
orqestractl setup accepts a non-secret, pinned owner input and a locally
available workload bundle. It validates the complete input and source/profile
hashes before reading protected descriptors or contacting the API. It then
reuses exact public readbacks or advances through the owner, approver, pricing,
provider, install, lane, policy, release, assistant, and journey phases. A
partial phase is reported without destructive rollback; rerun only after
reviewing the reported IDs and correcting the cause.
The input is strict JSON with exactly these fields. Values below are synthetic examples, not reusable credentials or live estate identifiers:
{
"target_url": "https://control.example.invalid",
"tenancy": {
"org_slug": "demo-org",
"org_name": "Demo Organization",
"namespace_slug": "demo-namespace",
"namespace_name": "Demo Namespace",
"workspace_slug": "demo-workspace",
"workspace_name": "Demo Workspace"
},
"identities": {
"owner_ref": "user:demo-owner",
"approver_ref": "user:demo-approver",
"idp_user_refs": []
},
"auth_fds": { "owner": 3, "approver": 4, "pricing_admin": 5 },
"environment": "dev",
"provider": {
"type": "your-configured-provider",
"slug": "demo-provider",
"endpoint": "https://provider.example.invalid/v1",
"credential_ref": "demo-provider-key"
},
"models": [
{
"canonical_id": "provider/model",
"role": "assistant",
"display_name": "Example model",
"context_window": 8192,
"max_output_tokens": 2048,
"input_usd_per_token": "0.000001",
"output_usd_per_token": "0.000002"
}
],
"pricing_change_reason": "Owner-approved demo setup",
"app": {
"bundle_dir": "./demo-bundle",
"source_bundle_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"resolution_profile": "resolution.json",
"resolution_profile_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"workload_slug": "demo-workload",
"release_slug": "demo-release",
"model_policy_slug": "demo-policy"
},
"installs": [],
"lane": { "name": "standard", "reason": "Owner-approved demo lane" },
"secrets": [{ "name": "provider-key", "keychain_item": "demo-provider-key" }],
"assistant_enabled": true,
"content_inputs": [],
"exclusive_setup": true,
"timeout_seconds": 300,
"journey_proof": {
"evidence_ids": ["11111111-1111-4111-8111-111111111111"],
"max_age_seconds": 900
}
}Protected role values are read from the listed file descriptors; secret values
may instead use an explicit keychain item. Never place bearer tokens, provider
keys, callback tokens, or secret values in the JSON, command line, environment,
bundle, or logs. For a read-only check, provide only the owner descriptor in
auth_fds and run:
orqestractl setup --input ./owner-setup.json --checkThe check path is GET-only and does not read approver, pricing, provider-secret,
or IdP credentials. A successful resource/readiness readback still does not
prove app-owned authenticated callback continuity: until the running app
supplies that proof, callback continuity stays unverified. Exit codes: 0
ready (the supplied journey evidence verified), 3 converged (everything
converged, journey_proof.evidence_ids empty so end-user journey proof is
pending; rerun with the execution IDs), 2 blocked or failed. This workflow is
not certification.
Practical Notes
- The CLI uses workload IDs (
workload_id) and asset version IDs directly. For non-trivial release wiring,--format jsonplusjq, or the portal/API, is often the fastest way to collect IDs. - The release lifecycle states are
draft -> review_ready -> approved -> activewith automaticactive -> supersededbehavior when a new release is activated. - Use the GitOps guide for declarative sync patterns and the AI Flow Generation guide for generation details.