Cache authorization decisions safely

Only a precisely bound and fresh decision can be reused.

01 / The operating case

What changes in a real workflow?

An agent caches ALLOW for reading invoice I-42 and then tries to apply it to I-43 after task cancellation.

Trace the authority boundary
  1. 01Authority origin
  2. 02Task and grant
  3. 03Current decision
  4. 04Observed outcome

02 / Decision contract

What the executor must check

Key by principal, grant version, task, operation, immutable target, context and policy version; choose TTL by consequence and invalidate on revocation.

InputPrincipal · task · action · target
DecisionGrant ancestry · policy · current state
ResultEnforce · record · verify outcome

03 / Failure and evidence

What goes wrong, and what can be proven?

Failure mode

A tool-name-only cache key lets one resource approval authorize another.

Evidence to retain

Record cache hit, originating decision ID, age, invalidation event and final effect.

04 / Canonical scope

Why this reference stands alone

Latency measurement owns performance; this page owns cache correctness.

Illustrative implementation artifact

Decision cache binding

key = hash(principal, grantVersion, task, action,
  immutableTarget, normalizedArguments, policyVersion, contextEpoch)
use only if now < expiresAt
  and currentRevocationEpoch == entry.revocationEpoch
  and requestDigest == entry.requestDigest

Primary references

Read the underlying material

Architecture discussion

Choose one consequential action and make its boundary explicit.

Request a Conversation