Guide 04 · REVOCATION
LOCAL SIMULATION · TEST_ONLYLocal validation surfaces and fixed fixtures only · no real login, organizational authority, operational API, external execution, or authority issuance
Never reuse prior eligibility after revocation.
Use append-only revisions, expiry, supersession, and replay controls so a former valid state cannot become current authority.
Revocation appends a new revision
Do not delete an ACTIVE record or overwrite its status. Append a new event with revokedAt, reason, and prior-revision binding, then rebuild the projection.
- Preserved prior digest and event
- Monotonic revision
- Hash chain and append-only store
- Projection rebuild after restart
Revalidate at the point of use
- 01Check expiry
Confirm current time remains between issuedAt and expiresAt.
- 02Check revocation revision
Find whether a newer REVOKED event supersedes ACTIVE.
- 03Check nonce and replay
Prevent a request or gate reference from being consumed twice.
- 04Compare the binding again
Actor, scope, policy, and DecisionCaseRef must still match the current request.
Closed is correct when revalidation is unavailable
If the store, validator, or current revocation projection cannot be checked, never reuse a cached ELIGIBLE result as success.