Skip to main content
POST
Decide one protected action

Authorizations

Authorization
string
header
required

The per-adapter bearer issued when the enforcement adapter is registered.

Body

application/json

Strict, bounded envelope; unknown top-level fields are refused with 422. One of schema_version or schema must name a supported request contract.

schema_version
enum<string>
Available options:
mudraid.enforce.decide-request/1,
2.0
schema
string

Older spelling of schema_version, still read.

decision_id
string

Caller-chosen request identity; one durable decision per id.

requested_at
string<date-time>
deadline_at
string<date-time>

Clamped to a server ceiling; the server receive time is the decision clock.

environment
string
correlation_id
string
presented_authorization
string

The protected request's Authorization header (Bearer <access token>). Without it the decision is deny (credential_missing).

Maximum string length: 8192
surface
object
request
object

How the protected request arrived (evidence only).

execution
object

The exact bytes the adapter will forward if allowed.

action
object

The canonical action resolved from the signed bundle: action_id, action_version, mapping_id, mapping_version, required_scopes. (protected_action is accepted as an alias.)

protected_action
object
adapter
object

Adapter type and version.

bundle
object

Active bundle version and lowercase SHA-256 payload_digest.

evaluation
object

Evaluation mode (default live_required).

evidence
object

Evidence fields such as idempotency_key.

trace
object

Trace fields such as correlation_id.

token_context
object

Accepted for compatibility; its identity fields are ignored.

Response

Decision produced (which may be deny or not_safely_decided)

schema_version
enum<string>
required
Available options:
2.0
decision_id
string
required
outcome
enum<string>
required
Available options:
allow,
deny,
not_safely_decided
directive
enum<string>
required
Available options:
forward_once,
block
reason
object
required
decision
enum<string>

Compatibility projection of outcome; not_safely_decided projects to deny.

Available options:
allow,
deny
evaluation
object

Source, versions and per-fact freshness notes behind the decision.

effective_authority
object
evaluated_policies
object[]
decided_at
string<date-time>
deadline_at
string<date-time>
timings_ms
object
telemetry
object
correlation_id
string | null
action_executed
enum<boolean>

Always false — an allow authorizes; it does not execute anything.

Available options:
false
proof_context
object

The authenticated adapter/action/bundle binding, when the action binding was verified.

signature
object

RS256 decision signature. Present only when decision signing is enabled.