CI Federation

Revoke a CI binding

Idempotent kill switch. Sets revoked_at = NOW(). Existing CI sessions issued from this binding are rejected on their next gateway request (per-request DB recheck). Already-issued S3 presigned upload URLs (if any) remain usable until they expire — gateway-mediated CAS commit fails after revoke regardless. Recovery: revoke + SIWE-deploy a known-good release + rotate any service-role key the deployed code may have read (revocation does NOT undo deployed code, stop in-flight operations, or rotate exfiltrated keys).

post/ci/v1/bindings/{binding_id}/revoke

Request

  • Base URL: https://api.run402.com
  • URL: https://api.run402.com/ci/v1/bindings/{binding_id}/revoke
  • Auth: API key in header SIGN-IN-WITH-X

Path parameters

binding_idstring required

Headers

SIGN-IN-WITH-Xstring required

SIWX auth header — base64-encoded JSON payload containing a signed CAIP-122 (EIP-4361) message. See https://docs.x402.org/extensions/sign-in-with-x.

Response

Binding revoked (or already revoked — idempotent).

idstring

Binding id, prefixed bnd_.

project_idstring
issuerstring

OIDC issuer URL (FK to internal.trusted_oidc_issuers). v1 only: https://token.actions.githubusercontent.com.

subject_matchstring
allowed_actionsstring[]
allowed_eventsstring[]

Sorted-deduped on insert. Default ['push','workflow_dispatch'].

route_scopesstring[]

Sorted-deduped explicit route patterns CI may alter. Empty array means CI cannot ship non-null spec.routes.

asset_key_scopesstring[] nullable

Per-binding allowlist for the spec.assets slice. NULL means no asset authority (default for bindings created via POST /ci/v1/bindings). Each entry is an exact asset key or prefix/* wildcard. Mutated via POST /ci/v1/bindings/{binding_id}/asset-scopes.

github_repository_idstring nullable
created_bystring

Lowercase EVM wallet address.

noncestring
created_sigobject

Parsed delegation: { payload, raw, signer, verified_at }. Stored verbatim for forensic re-verification.

created_atstring date-time
expires_atstring date-time nullable
revoked_atstring date-time nullable
last_used_atstring date-time nullable
use_countinteger

Changes

No recorded changes to this operation across all 1 revision of this API.