allow Decision under the
current Authority, Policy, Context, approvals/assertions, and other required
conditions.
A Permit is not:
- standing organizational Authority;
- an Approval;
- a durable permission to act indefinitely;
- proof that Execution occurred;
- the Evidence record itself.
Where the Permit sits
Issue
The public evaluation operation is:permit_token, with related expiry metadata
where applicable). New integrations should follow the current OpenAPI/SDK
contract rather than older documentation that showed a fictional nested
permit: { ... } object.
A Permit is bound to the authorized execution context under the applicable
contract. The exact binding fields and representation are wire-contract details;
do not infer or reconstruct them from display labels.
Verify before execution
The current public verification operation is:
Gate on Verification, not on the earlier allow Decision alone.
An allow Decision means the request satisfied the evaluated authorization
conditions at that point. The Gate still has to establish that the Permit is
valid for this execution attempt.
Single-use and replay protection
A Permit is designed for a bounded execution, not as a reusable bearer permission. Single-use semantics matter because they prevent one positive Authorization from silently authorizing multiple native effects. Replay protection also makes the evidence chain clearer: a Permit can be correlated to a specific governed execution attempt rather than becoming an open-ended capability. If a Permit has expired, been revoked, already been consumed, or does not match the execution binding, the governed permit-gated path must not treat it as valid for a new execution.Permit vs. Authority
Authority is standing and scoped. Permit is bounded and per execution. A principal can have Authority for a class of changes without holding a valid Permit for every request in that class. Policy, context, separation of duties, required approvals, resource state, or other conditions can still make a particular request unauthorized.Permit vs. Approval
An Approval can satisfy a policy condition. It does not itself become the Permit. The runtime re-evaluates the complete request/evidence package and may issue a Permit only if the current conditions satisfy Authorization. This prevents an old or mismatched approval from becoming an automatic execution credential.Permit vs. Evidence / Proof
A Permit is used to control Execution. Evidence is the durable record of what was determined, issued, verified, executed, and observed. Proof is cryptographically verifiable Evidence. Do not describe the Permit itself as the complete audit trail or as proof that the native effect occurred.Fail-closed usage
Where an execution path is actually configured and tested as fail-closed and permit-gated:No valid Permit means no execution through that governed path.Do not generalize that statement to shadow, advisory, historical, or otherwise non-enforcing paths.
Implementation guidance
- Use the current SDK/OpenAPI response shape; do not rely on older nested-Permit examples.
- Preserve the original Action/Actor/Resource/Environment/Context information needed for the verification binding; do not invent missing binding data from the evaluate response.
- Verify at the actual execution boundary, not minutes earlier in an unrelated workflow step.
- Treat replay, expiry, revocation, mismatch, malformed responses, and verification failures according to the configured enforcement posture.
- Persist Evidence that can correlate the Authorization, Permit, Verification, and native execution outcome.
Execution-time authorization
Why the determination is made at the execution boundary.
Runtime flow
See the Permit in the full Action → Evidence lifecycle.