Documentation sections

For developers

Signed context

A fixed JWT envelope, an arbitrary JSON Schema for data, and strict binding validation.

Updated: August 7, 2026

01

Minimum JWT

jsonKanyman docs
{
  "schema": "kanyman.external-context.v1",
  "integration_id": "ext_...",
  "subject": "usr_f81c39",
  "page": { "path": "/projects/301", "locale": "en" },
  "entities": [{ "type": "project", "ref": "prj_71bd2a" }],
  "event": { "code": "DELIVERY_FAILED", "request_id": "req_b73a" },
  "data": { "delivery_ready": false },
  "iss": "your-product-support",
  "aud": "kanyman:web-chat",
  "iat": 1786093200,
  "exp": 1786093500,
  "jti": "ctx_01J..."
}
02

What Kanyman validates

  • An RS256 or ES256 signature using the registered PEM/JWKS.
  • Exact matches for issuer, audience, integration_id, Origin, and Web Chat binding.
  • A lifetime of no more than five minutes and valid iat/exp values.
  • A one-time jti; reuse is allowed only as an idempotent retry for the same session creation.
  • Token and payload size.
  • The fixed envelope and compliance of data with the registered Draft 2020-12 JSON Schema.
03

Field visibility

jsonKanyman docs
{
  "type": "string",
  "title": "Provider",
  "x-kenyman-visibility": "both",
  "x-kenyman-sensitive": false
}

x-kenyman-visibility accepts agent, operator, both, or hidden. A field with x-kenyman-sensitive: true is not sent to either the agent or operator regardless of visibility.

04

Storage

Kanyman stores an encrypted snapshot, the subject digest, and jti. The original JWT is not stored. By default, snapshots are deleted after 30 days and tool audit records after 90 days.

Continue reading

Signed context — Kanyman Docs