How to gate autonomous chains
Goal: make sure a chain of agent actions — one agent triggering another, which goes on to take a gated action itself — cannot run until it's explicitly authorized.
This does not affect a single agent acting alone. A single browse, a single canvas write by an agent that already holds a role, or a single mesh message is never gated by this layer — see Orchestration Governance for exactly what counts as a chain.
1. Grant the cloud entitlement
Confirm nexus.orchestration is granted on the account:
curl -s https://<your-nexus-host>/api/v1/nexus/entitlements \
-H "Authorization: Bearer $TOKEN" | grep '"nexus.orchestration"'This defaults to off. If it was just granted, allow up to 300 seconds for it to appear — see Entitlements.
2. Enable the local setting
The cloud entitlement is only one of two required gates. A local setting must also be turned on — it also defaults to off. Both must be open, or no chain forms at all.
3. Set chain limits
Configure a maximum chain depth and a maximum number of distinct agents a single chain may reach. These bound the worst case even if every other gate is open.
4. Populate the orchestrator allowlist
The allowlist starts empty, meaning nothing can orchestrate a chain until it is explicitly added. Add only the agents that should be allowed to originate a chain.
5. Decide on per-hop approval
A per-hop approval setting exists among the controls, but the approval prompt itself is not yet built — treat this control as not yet usable end-to-end rather than enabling it and expecting a prompt to appear.
6. Know how to stop everything
A stop-all control halts chains already in flight. Use it if a running chain needs to be stopped immediately rather than waiting for it to finish or fail on its own.
7. Verify a denial tells you which gate closed it
Trigger a chain in a deliberately unauthorized state (entitlement off, or setting off, or depth set to 0) and confirm the denial reason matches: no entitlement, setting disabled, depth exceeded, breadth exceeded, not on the allowlist, or globally stopped. These six reasons are distinguishable from each other — if you can't tell which one you got, you're not reading the right field.
8. Confirm changes take effect without a restart
Gate settings are re-read at enforcement time, not cached. Turn the local setting off while a chain is running and confirm the next hop is denied — you should not need to restart anything for the change to take hold.