Execution grants

Revalidate and atomically claim one execution-bound authorization

Deprecated

POST
/v1/execution/claim-token

Deprecated alias of POST /v1/authority/grants/{grantId}/claims: the same handler.

Required immediately before the downstream commit. Verifies the dossier signature and complete execution binding, resolves current policy, signal, and Presence state, then atomically claims the nonce and mutable concurrency scope. Execution is authorized only when should_execute is true, claim_token is non-null, and claim_lease_expires_at is still live at the downstream boundary. valid alone is diagnostic; in SHADOW it may describe hypothetical validity without execution authority.

A live claim also returns claim_attestation: a compact EdDSA JWS, signed with the execution-grant key, that a downstream system of record can verify offline against /.well-known/decionis-execution-grant-jwks.json. It names the grant, the decision, the dossier, the binding the grant carried (intent hash, canonical payload digest and its profile, expected effect digest, nonce, correlation), a digest of the claim token, and an expiry equal to the claim lease. The executor forwards it with the downstream request; the provider checks that the request it received is the one the attestation describes. See ClaimAttestationClaims.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

An organization API key. Its scopes decide what it may call; decision:shadow is the narrowest: SHADOW evaluations through POST /v1/authority/grants or its alias POST /v1/authority/enforce-and-bind only (DECISION_SHADOW_MODE_DENIED in any other mode; DECISION_SHADOW_FIELD_DENIED for a body carrying context.decionis_policy, evidence or escalation), with no integration dispatch. A key whose only scope is decision:shadow (an AgentSafe hosted gateway's) reaches exactly those two, POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm and POST /v1/hosted-gateway/keys/revoke-self; every other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED. decision:enforce is an enforced hosted gateway's key: evaluations in SHADOW or ENFORCEMENT through POST /v1/authority/grants or its alias (400 DECISION_ENFORCE_FIELD_DENIED for a body carrying context.decionis_policy; it never holds policy:write), and the grants and managed escalations they bind. A key whose scopes are decision:enforce (with or without decision:shadow) reaches exactly POST /v1/authority/enforce-and-bind, POST /v1/authority/grants, GET /v1/authority/grants/{grant_id}, POST /v1/authority/grants/{grant_id}/claims, POST /v1/authority/grants/{grant_id}/receipts, POST /v1/authority/grants/{grant_id}/reconciliations, POST /v1/execution/verify-token, POST /v1/execution/claim-token, POST /v1/execution/consume-token, POST /v1/execution/finalize-token, GET /v1/authority/escalations/{escalation_id}, DELETE /v1/authority/escalations/{escalation_id}, POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm and POST /v1/hosted-gateway/keys/revoke-self, each id a UUID; every other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.

In: header

Request Body

application/json

execution_token*string
Length1 <= length <= 20000
intent_hash*string
Match^sha256:[0-9a-f]{64}$
intent*
consumed_by?string
Length1 <= length <= 200
commit_correlation_id?string
Length1 <= length <= 200
claim_lease_seconds?integer

Pre-commit lease duration. This does not extend the signed execution grant lifetime.

Range5 <= value <= 300
Default30

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/execution/claim-token" \  -H "Content-Type: application/json" \  -d '{    "execution_token": "string",    "intent_hash": "string",    "intent": {      "protocol_version": "agent-safe.intent/1",      "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",      "intent_id": "05704cef-194d-4987-b2cb-c2c20c9cd88a",      "captured_at": "2019-08-24T14:15:22Z",      "expires_at": "2019-08-24T14:15:22Z",      "actor": {        "id": "string",        "type": "string"      },      "action": {        "type": "string",        "resource": "string",        "parameters": {}      },      "context": {},      "downstream_target": {        "system": "string",        "operation": "string"      }    }  }'
{  "valid": true,  "would_block": true,  "verdict": "APPROVE",  "reason_codes": [    "string"  ],  "claims": {    "iss": "string",    "sub": "string",    "aud": "string",    "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",    "dossier_id": "string",    "decision_id": "string",    "chain_id": "string",    "action": "string",    "decision": "allow",    "scope": "execute",    "binding": {      "intent_hash": "string",      "execution_binding_digest": "string",      "execution_payload_digest": "string",      "execution_payload_canonicalization_profile": "string",      "execution_nonce": "string",      "execution_correlation_id": "string",      "expected_effect_digest": "string",      "expected_state_version": "string",      "authority_protocol_version": "1.0"    },    "jti": "string",    "iat": 0,    "nbf": 0,    "exp": 0  },  "evidence": {},  "evidence_durably_queued": true,  "decision_chain_evidence_recorded": true,  "should_execute": true,  "claim_token": "string",  "claim_validated_at": "2019-08-24T14:15:22Z",  "claim_lease_expires_at": "2019-08-24T14:15:22Z",  "claim_attestation": "string"}