Governed commands
Treat HTTP acceptance as admission. Completion requires backend reconciliation and audit evidence.
Enterprise mutations; fail-closed on lower lanesEnterprise can submit a small set of governed mutations through the operator console and admin API. Free, Pro, and Max package the same console but keep controlled writes requested off, so these workflows fail closed.
HTTP success means the command was accepted. It does not mean drain finished, a bundle exists, or configuration changed.
Available workflows
| Workflow | Role | Endpoint | Intent |
|---|---|---|---|
controlled_drain |
operator_admin |
POST /api/v1/admin/drain |
Stop new route assignment and reconcile drain readiness. |
bridge_drain |
operator_admin |
POST /api/v1/admin/bridges/{id}/drain |
Drain delivery for a named sink. |
config_preflight |
config_admin |
POST /api/v1/admin/config/preflight |
Validate config and generation before activation. |
support_bundle_create |
operator_admin |
POST /api/v1/admin/support/bundle |
Create a redacted support artifact. |
The browser never assigns the role. The trusted edge injects a verified principal. Placeholder path segments such as {id} must match the intended sink or resource.
Gates that must all be open
- contract compatible and
mutationsAllowed: true - workflow catalog marks the workflow
runtime: true - backend capability flag is true
- governance, HTTP binding, principal binding, audit, and status reconciliation are ready
- authorized role and principal from the trusted edge
- generation and readiness checks pass
- dashboard
qualityisokand data is fresh
If any gate is closed, the console shows a blocked preflight reason. Do not bypass it with a raw curl against an untrusted listener.
Submission procedure
- Confirm
env live, the correct node, contract compatibility,quality ok, freshness, andmutations enabled. - Confirm workflow role, endpoint scope, and expected generation.
- Review readiness and audit implications on Overview or Command Center.
- Submit preflight once.
- Record the returned command ID and audit ID.
- Wait while state is
accepted_pending. The console polls command status. - Treat
reconciledas success. Treatrejected,failed, orblockedas terminal non-success. - Verify the owning page and Audit after reconciliation.
Do not resubmit with a new idempotency key to force progress. That creates a second command.
Lifecycle states
| State | Meaning |
|---|---|
draft |
Intent exists; nothing was accepted. |
preflight |
Gates allow a submission attempt. |
approval_required |
Backend requires an additional approval step. |
accepted_pending |
Accepted; completion evidence is still pending. |
rejected |
Preflight, RBAC, generation, readiness, or policy refused the request. |
failed |
Accepted, then backend evidence reported failure. |
blocked |
A runtime, contract, capability, or governance gate prevented submission. |
reconciled |
Status and audit evidence prove terminal success. |
Routine uses
Start-of-shift check. Overview readiness, every route-to-node gate, alerts, HA proof, bridge backlog, and Observe unexpected_errors.
Validate a client. Devices → Broker sessions/subscriptions → Reconnect storm or ACL denies triage → Audit. Do not request payload capture.
Bridge outage. Bridges state filter → retry versus dead-letter counts → Bridge outage triage → incident-scoped support bundle → bridge_drain only after target, role, generation, and audit impact are confirmed.
Config change. Resolve drift and invalid directives first, then config_preflight with a config_admin principal. Reopen Config and Audit before activation.
This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.
../nginz-iot-panel/OPERATION_GUIDE.md