A policy and approval contract makes runtime authorization explicit, versioned, time-bounded, and reviewable. It separates model suggestions from the authority to act.
Key takeaways
- Policy decisions include scope, inputs, reason codes, evidence, and expiry.
- Approval authorizes one bounded action or class of actions, not the agent generally.
- Overrides are separate decisions with named authority and audit.
Purpose
The policy engine evaluates trusted identity and runtime state against a versioned policy. The result is data that the execution layer enforces. It should be possible to explain which policy and inputs produced a decision without exposing unnecessary sensitive input.
Decision model
- allow
- Action may proceed within the returned scope and expiry.
- deny
- Action must not execute.
- transform
- Runtime may replace the request with an explicitly safer action.
- require-approval
- Pause and obtain named authority.
- escalate
- Transfer review to a higher-risk process or specialist.
Fields
The contract includes policyId, policyVersion, decisionId, requestId, evaluatedAtUtc, scope, minimized inputs, decision, reasonCodes, requiredApprovals, approvalAuthority, expiresAtUtc, overridePolicy, evidenceRefs, redaction, and reviewPath.
Approval semantics
An approval binds approver identity, authority, action, resource, proposed payload or artifact hash, limits, expiry, and conditions. Resume revalidates the proposal and external state. A materially changed action requires a new approval.
Override and review
Overrides cannot mutate the original policy record. They create a new signed or authenticated decision linked to the denial, identify the authorized role, reason, scope, duration, and compensating controls, and remain available for review or appeal.
Evidence and redaction
Evidence references support the decision without copying all source data. Redaction metadata explains omitted fields and protected locations. Reason codes are stable for analytics and incident review; human descriptions add context without becoming the enforcement logic.
Example and schema
[ar_downloads file=”policy-decision-approval-required.json”][ar_downloads file=”aruntime-policy-approval.schema.json”][ar_downloads file=”aruntime-policy-decision.schema.json”]
