Skip to content

Wire Contracts

Wire contracts are raw protocol behavior. Product and SDK facades deliberately map some names to the public terms in Glossary. Authored schemas live under docs/public/schemas/; public copies are available at /schemas/<filename>. Cross-language fixtures live under tests/shared/fixtures/interoperability/.

ContractSchema
Agent connector manifestcaracal-agent-connector-manifest-2026-05-21.schema.json
Audit eventcaracal-audit-event-2026-05-21.schema.json
Audit exporter manifestcaracal-audit-exporter-manifest-2026-05-21.schema.json
Gateway upstream manifestcaracal-gateway-upstream-manifest-2026-05-21.schema.json
JWT claimscaracal-jwt-claims-2026-05-21.schema.json
Policy inputcaracal-policy-input-2026-05-20.schema.json
Policy pack manifestcaracal-policy-pack-manifest-2026-05-21.schema.json
Policy resultcaracal-policy-result-2026-05-20.schema.json
Resource verifier manifestcaracal-resource-verifier-manifest-2026-05-21.schema.json
Revocation eventcaracal-revocation-event-2026-05-21.schema.json
Token responsecaracal-token-response-2026-05-21.schema.json
W3C baggagecaracal-w3c-baggage-2026-05-21.schema.json

Dates in schema filenames identify that wire contract; they are not product release versions. Preserve the full filename when pinning validation.

Fixtures include valid examples for audit events, audit exporter manifests, Gateway upstream manifests, JWT claims, policy input/results, policy pack manifests, resource verifier manifests, revocation events, token responses, W3C baggage, trace context headers, and stream signature canonicalization vectors.

Product conceptCommon SDK fieldRaw protocol field
Authority record IDauthorityRecordId and language equivalentsJWT sid; STS form session_id
Root authority record IDrootAuthorityRecordIdJWT root_sid
Session IDsessionIdagent_session_id and Coordinator /agents paths
Delegation IDdelegationIddelegation_edge_id and internal edge records
Approval IDapprovalIdapproval_id and /approvals/{id}

Approval audit events are the one deliberate exception: the audit taxonomy is a stable contract for SIEM pipelines and historical queries, so event types keep the step_up_ prefix (step_up_issued, step_up_decided, step_up_consumed) and audit metadata keeps the challenge_id key.

Do not rename raw fields in an interoperable implementation. Map them at the SDK or product boundary.

  • Use schemas when building adapters, exporters, or connectors.
  • Use fixtures when adding SDK or interoperability tests.
  • Preserve schema filenames when documenting versioned contracts.
  • Add equivalent TypeScript, Python, and Go tests when a shared contract changes.
  • Treat a valid fixture as one accepted representation, not a substitute for endpoint validation and negative tests.

Use API Reference for transport semantics, then validate the implementation against the corresponding fixture.