Crittora Logo
Getting StartedChangelogContact Support

CAAB headless operator runbook

Audience: CAAB platform, security, and operations teams
Scope: Partner API policy crypto and activation
Last updated: August 1, 2026

Use this runbook to provision the per-environment Crittora Secure identity used by platform_service_v2, validate same-partner decrypt continuity, activate individual headless bindings, rotate credentials, and roll back safely.

Provision the policy-crypto identity

Environment provisioning
  • Create a dedicated partner through the supported Crittora Secure partner-provisioning service. Do not write directly to Crittora tables.
  • Create one unique app client under that partner with exactly sign, encrypt, decrypt, and verify (s/e/d/v).
  • Store the five credential fields in a CAAB-owned Secrets Manager secret using schema caab.policy-crypto.v1.
  • Configure CAAB with the service sub, Crittora recipient partner ID, and secret ARN.
  • Create a replacement app client under the same Secure partner before enabling v2 writes.
1{
2  "schema_version": "caab.policy-crypto.v1",
3  "environment": "production",
4  "slot": "primary",
5  "service_sub": "<crittora-app-client-sub>",
6  "partner_id": "<crittora-secure-partner-id>",
7  "permissions": ["s", "e", "d", "v"],
8  "credentials": {
9    "username": "<write-only>",
10    "password": "<write-only>",
11    "api_key": "<write-only>",
12    "access_key": "<write-only>",
13    "secret_key": "<write-only>"
14  }
15}

Call the Crittora Secure Managed API

Use https://managed.crittoraapis.com as the base URL. The client appends the endpoint path; do not insert /v1.

Sign and encrypt
1POST https://managed.crittoraapis.com/sign-encrypt
2<five Crittora credential headers>
3Content-Type: application/json
4
5{"data":"<canonical-policy-json>"}

For platform_service_v2, omit the optional recipient permissions list. The authenticated app client's Crittora Secure partner is the recipient.

Decrypt and verify
1POST https://managed.crittoraapis.com/decrypt-verify
2<five Crittora credential headers>
3Content-Type: application/json
4
5{"encrypted_data":"<ciphertext>"}

Normalize both direct JSON responses and API Gateway-style envelopes whose body is either a JSON string or object.

Validate before enabling v2 writes

Required proof
  • Use the primary identity to sign/encrypt a canonical test policy and decrypt/verify the result.
  • Use the replacement identity to decrypt ciphertext produced by the primary identity.
  • Use the replacement identity to produce and decrypt a new ciphertext.
  • Confirm direct JSON and API Gateway response envelopes are both normalized correctly.
  • Run focused policy-crypto, partner-experience, and signed-context verification tests.

Activate a partner binding

Activation succeeds only when every applicable gate is open. A least-privilege Cognito client_credentials workload client is the onboarding model for new production bindings; the legacy all-scope pilot client is compatibility-only.

GateRequired check
Environment featureHeadless Partner API flag is enabled for the environment.
AllowlistThe binding is present when an environment allowlist is configured.
ConnectionPartner connection is active and mapped to the expected CAAB partner and binding.
OIDCExternal OIDC profile is active and issuer/audience/tenant checks are correct.
Binding activationThe binding-level headless activation flag is enabled.
Workload mappingThe presented workload client is active and maps to this binding.
Route scopeThe client has the granular OAuth scope required by the route.

Use POST /admin/partner-connections, GET /admin/partner-connections/{bindingId}, POST .../workload-clients, DELETE .../workload-clients/{clientId}, and PUT .../headless-activation for workload administration. A creation response is the only response that contains the Cognito client secret.

Rotate the policy-crypto credential

  1. Create the replacement SEDV app client under the same Crittora Secure partner.

  2. Prove it can decrypt existing ciphertext written by the primary identity.

  3. Change the deployed service subject and secret reference.

  4. Verify new writes, old-policy decrypts, governed invocations, audit, metering, and diagnostics.

  5. Revoke the former credential only after telemetry remains clean.

Roll back headless access

Disable the binding-level headless activation first. This immediately rejects new headless requests while preserving subjects, mappings, policies, APIs, downstream credentials, experience configuration, audit evidence, and all legacy data.

When revoking a workload client, CAAB removes its server-side mapping before deleting the Cognito client. If Cognito cleanup fails, the missing mapping still causes requests to fail closed.

Troubleshoot provisioning and invocation

SymptomMeaning and corrective action
Partner not foundA CAAB partner ID may have been supplied where a Crittora Secure partner ID is required. Locate or provision the Secure partner through the supported service.
UsernameExistsExceptionThe requested app-client username already exists. Choose a unique service identity name and inspect the provisioning Lambda logs.
Managed API 404Use https://managed.crittoraapis.com and append /sign-encrypt or /decrypt-verify. Do not use /v1.
Replacement cannot decryptConfirm both app clients belong to the same Secure partner, both have s/e/d/v, and CAAB reads the intended secret version. Do not revoke the primary.
User assertion rejectedConfirm it is an access token and that issuer, audience, expiry, token_use, and tenant/group claim match the active OIDC profile.
Cross-binding request deniedExpected behavior. The route binding must match the workload client's server-side mapping.
Crittora CAAB

Govern which operations an AI agent, user, or API client can invoke, with signed policy integrity and runtime enforcement.

Least privilege
Runtime enforced
Auditable
On this page

Powered by AWS • Partner Technology • Patent Pending PQC Technology