Delegation Chains

Overview

Delegations allow a mandate's authority to flow through multiple agents. Each hop narrows the scope — the receiving agent always has equal or fewer permissions than the delegating agent. This enables hierarchical authorization patterns across teams and organizations.

Creating a Delegation

truss mandate delegate <parent-id> <child-id> \
  --delegating-agent <id> \
  --receiving-agent <id> \
  --receiving-org <id> \
  --scope-reduction read-only

Cross-Boundary Delegations

To delegate across organizations, add the cross-boundary flags:

truss mandate delegate <parent-id> <child-id> \
  --delegating-agent <id> \
  --receiving-agent <id> \
  --receiving-org <id> \
  --scope-reduction read-only \
  --cross-boundary \
  --boundary-type organization

Security

  • Nonce replay protection: each delegation hop carries a unique nonce, preventing replay attacks.
  • Automatic expiry: each hop expires after 24 hours by default. The mandate must be renewed or re-delegated to extend the chain.

Viewing Delegations

truss delegation list -m <mandate-id>
truss delegation get <hop-id>