Documentation menu

API

Use the API for gates, evidence, passports, and connector status.

Pipeline writes use bearer gate tokens. Console reads use authenticated sessions. Examples use the customer self-hosted API origin, not Arconath dogfood infrastructure.

Gate evaluation

POST /gate/evaluate
curl -sS https://release-passport.example.com/releasepassport/v1/gate/evaluate \
  -H "Authorization: Bearer $RELEASEPASSPORT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "shadow",
    "service": {
      "name": "checkout-api",
      "namespace": "apps-checkout",
      "environment": "production"
    },
    "artifact": {
      "digest": "sha256:abc123..."
    },
    "release": {
      "releaseId": "gh-123456",
      "sourceSha": "9f3c8b7",
      "renderedManifestPath": "rendered/checkout-api.yaml"
    },
    "health": {
      "ready": true,
      "requireHealthyTarget": true
    },
    "rollback": {
      "available": true,
      "verified": false
    }
  }'

Evidence ingestion

POST /evidence/ingest
curl -sS https://release-passport.example.com/releasepassport/v1/evidence/ingest \
  -H "Authorization: Bearer $RELEASEPASSPORT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "github_actions",
    "externalId": "run-123456",
    "service": { "name": "checkout-api", "namespace": "apps-checkout" },
    "release": { "releaseId": "gh-123456", "sourceSha": "9f3c8b7" },
    "artifact": { "digest": "sha256:abc123..." },
    "evidence": [
      { "type": "smoke", "status": "passed", "summary": "render and health smoke passed" }
    ]
  }'

Passport read

GET /passports/{id}
curl -sS https://release-passport.example.com/releasepassport/v1/passports/pp_01HXR8K3M2 \
  -H "Cookie: releasepassport_session=..."

Connector status

GET /integrations
curl -sS https://release-passport.example.com/releasepassport/v1/integrations \
  -H "Cookie: releasepassport_session=..."

Endpoint map

EndpointPOST /gate/evaluate
AuthBearer gate token
Use caseCI/CD asks for a release verdict before promotion.
NotesMutation route. Fail closed without a valid token.
EndpointPOST /evidence/ingest
AuthBearer evidence/gate token
Use caseCI, tests, scanners, or approved automation attach evidence.
NotesSanitize payloads; never send secrets.
EndpointGET /passports
AuthSession
Use caseConsole lists release passports.
NotesUsed by Passports page and reports.
EndpointGET /passports/{id}
AuthSession
Use caseRead a single passport detail.
NotesShows verdict, blockers, evidence timeline, policies, comments.
EndpointGET /integrations
AuthSession
Use caseRead connector health and freshness.
NotesUsed by Integrations and Overview.
EndpointGET /license/status
AuthInternal/session as configured
Use caseRuntime checks active license and entitlements.
NotesDo not expose signing secrets.

API design rules

Write APIs fail closed

Gate and evidence mutation routes require tokens. A missing, wrong, expired, or wrong-scope token must not create passports, evidence, connector updates, reports, or license changes.

Read APIs are role-aware

Console reads use authenticated sessions and workspace membership. Reports are sanitized and should not leak token values, kubeconfigs, OIDC secrets, payment provider keys, or private raw evidence.