{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/overview/security/secure-communication","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/overview/security/secure-communication","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/overview/security/secure-communication","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/overview/security/secure-communication","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/overview/security/secure-communication","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/overview/security/secure-communication","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/overview/security/secure-communication","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Secure communication","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"secure-communication","__idx":0},"children":["Secure communication"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Executive summary"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ripple Custody"," protects all communications with multiple cryptographic layers: TLS, JWT authentication, mTLS, and application-layer signing."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TLS 1.2+"]}," encrypts all network traffic between components."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JWT tokens"]}," authenticate every API request with cryptographic signatures."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mTLS"]}," provides mutual authentication for critical internal platform connections."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application signing"]}," ensures message integrity for requests, trusted-state attestations, and vault signing work."]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Why this matters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Communication security prevents man-in-the-middle attacks, credential theft, and message tampering. Even if an attacker gains network access, the layered security model ensures they cannot intercept sensitive data or forge authorized requests. This is essential for meeting SOC 2, ISO 27001, and other security compliance requirements."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For architects and operators"]},": You are responsible for providing TLS certificates and configuring your PKI. Plan certificate rotation procedures before deployment. Ensure your network infrastructure supports encrypted and mutually authenticated communication for internal protected-component paths."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Prerequisites"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before reading this page, you should understand:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security-model"},"children":["Security model"]}," - The overall security model and zero-trust principles"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The platform implements defense-in-depth for all communications:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Layer"},"children":["Layer"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Protection"},"children":["Protection"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transport"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TLS 1.2+"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Encrypts all network traffic"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Identity"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JWT tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authenticates API requests"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Mutual authentication"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["mTLS certificates"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verifies both sides of critical internal component connections"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Digital signatures"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ensures message integrity and non-repudiation"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Key Takeaway"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These controls work together to prevent ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["man-in-the-middle attacks"]},". Even if an attacker intercepts network traffic, they cannot decrypt it (TLS), impersonate a user (JWT signatures), or impersonate a trusted component (mTLS certificates). Messages between the notary and vault are additionally signed at the application layer, providing defense-in-depth."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authentication","__idx":2},"children":["Authentication"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"jwt-authentication","__idx":3},"children":["JWT authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JSON Web Token (JWT)"]}," is a compact, digitally signed token that proves a user's identity without requiring the server to look up session data. Think of it as a tamper-proof ID badge: it contains claims about who you are, is signed by a trusted authority, and can be verified by any component that trusts that authority."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All requests to the API backend must authenticate using a JWT passed as a bearer token."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Aspect"},"children":["Aspect"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Details"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Identity provider"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Authentication Server (a dedicated OIDC server) verifies user identity and issues JWTs"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Token expiration"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Default is four hours"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Obtaining a JWT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Challenge-response: user signs a random challenge with their private key; server validates and returns JWT"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Challenge reuse"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Challenges can only be used once to prevent replay attacks"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"digital-signatures-for-authorization","__idx":4},"children":["Digital signatures for authorization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Any request (Intent) to change the system state requires a digital signature. This proves the request came from the claimed user and has not been modified."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How it works"]},": The user's application creates a unique \"fingerprint\" of the request and signs it with their private key. The platform verifies this signature using the user's registered public key. If even one character of the request was changed, the signature becomes invalid."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Technical process:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Canonicalization"]},": Request body converted to canonical JSON (spaces removed, properties sorted, null values removed)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hashing"]},": Canonical JSON hashed using SHA-256."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signing"]},": Hash signed using the user's private key (stored externally—never communicated to the platform)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Encoding"]},": Signature serialized in DER format with Base64 encoding."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The notary verifies this signature against the user's registered public key. This prevents both impersonation and tampering."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"network-security","__idx":5},"children":["Network security"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"mutual-tls-mtls","__idx":6},"children":["Mutual TLS (mTLS)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Standard TLS (Transport Layer Security) is one-way: the client verifies the server's certificate, but the server doesn't verify the client. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Mutual TLS (mTLS)"]}," requires both parties to present and verify certificates — each side proves its identity to the other before any data is exchanged."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," uses mTLS for critical internal component connections to ensure that even if an attacker gains network access, they cannot impersonate a trusted component."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Client integrations"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["mTLS in this section refers to communication between ","Ripple Custody"," platform components. External API clients use HTTPS/TLS, bearer-token authentication, and request signatures for state mutation operations. API clients are not expected to present mTLS client certificates unless you add that requirement at your own ingress, API gateway, or proxy layer."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"your-internal-pki","__idx":7},"children":["Your internal PKI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You must provide TLS entities from your internal PKI:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CA certificate"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Server certificate"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Server certificate key"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These secure the four ingress endpoints:"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Note"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The endpoints below are examples. Replace ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["open-shift-cluster-domain"]}," with your actual OpenShift cluster domain."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api.<cluster-domain>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API Gateway"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontend.<cluster-domain>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Web UI"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openid.<cluster-domain>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenID authentication server"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notary-bridge.<cluster-domain>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["notary Bridge"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"internal-platform-communication","__idx":8},"children":["Internal platform communication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Communication between core components and protected components such as the notary and vault uses:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Mechanism"},"children":["Mechanism"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application-layer mutual trust"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Components verify the signed data they receive before relying on it."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signed messages"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requests, attestations, and signing work are signed and verified by the receiving component."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key exchange at setup"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A key exchange during system setup builds the chain of trust"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"dependency-connections","__idx":9},"children":["Dependency connections"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Connections to infrastructure services you provide:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Service"},"children":["Service"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Security"},"children":["Security"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["KMS/HSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Protected notary, vault, and configured system-signing operations"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["mTLS or HSM-specific secure protocol"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PostgreSQL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Data storage"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TLS; data integrity verified cryptographically by notary"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AMQP (RabbitMQ)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Async message queue"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TLS"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Container registry"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Container image distribution"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TLS; image signatures verified"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"blockchain-connections","__idx":10},"children":["Blockchain connections"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Connection"},"children":["Connection"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Indexer to node"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Chain-specific indexers monitor your blockchain nodes (direct or via http_proxy; Bitcoin supports socks5)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction broadcast"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ledger Accounting Service broadcasts signed transactions"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-security-lifecycle-in-practice","__idx":11},"children":["The security lifecycle in practice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A typical governed transaction follows this flow:"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    participant User\n    participant Auth as Auth Server\n    participant API as API Gateway\n    participant AMQP as AMQP broker\n    participant Bridge as Approval / Notary Bridge\n    participant Notary\n    participant NotaryKMS as Notary KMS\n    participant Vault\n    participant VaultKMS as Vault KMS\n\n    User->>Auth: 1. Authenticate (challenge-response)\n    Auth-->>User: JWT token\n\n    User->>API: 2. Submit signed Intent (JWT + TLS)\n    API-->>User: 3. 202 Accepted with requestId\n    API->>AMQP: 4. Queue workflow task\n    Bridge->>AMQP: 5. Consume workflow task\n    Notary->>Bridge: 6. Poll for signed request and approvals\n    Bridge-->>Notary: 7. Return signed request and approvals\n\n    Notary->>Notary: 8. Verify user signature, policy, Merkle state, and ARF\n    Notary->>NotaryKMS: 9. Sign trusted-state attestation\n    NotaryKMS-->>Notary: 10. Return signature\n\n    Vault->>API: 11. Poll for attested operation\n    API-->>Vault: 12. Return operation and notary attestation\n    Vault->>Vault: 13. Verify notary attestation and request data\n    Vault->>VaultKMS: 14. Request blockchain transaction signature\n    VaultKMS-->>Vault: 15. Return signature only\n    Vault-->>API: 16. Submit signed transaction\n","diagramHtml":"<svg id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 2508px;\" viewBox=\"-50 -10 2508 1009\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"2258\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"VaultKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"2333\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"2333\" dy=\"0\">Vault KMS</tspan></text></g><g><rect x=\"1869\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Vault\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1944\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1944\" dy=\"0\">Vault</tspan></text></g><g><rect x=\"1669\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"NotaryKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1744\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1744\" dy=\"0\">Notary KMS</tspan></text></g><g><rect x=\"1378\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Notary\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1453\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1453\" dy=\"0\">Notary</tspan></text></g><g><rect x=\"1004\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"194\" height=\"65\" name=\"Bridge\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1101\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1101\" dy=\"0\">Approval / Notary Bridge</tspan></text></g><g><rect x=\"768\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"AMQP\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"843\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"843\" dy=\"0\">AMQP broker</tspan></text></g><g><rect x=\"531\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"606\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"606\" dy=\"0\">API Gateway</tspan></text></g><g><rect x=\"331\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Auth\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"406\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"406\" dy=\"0\">Auth Server</tspan></text></g><g><rect x=\"0\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"User\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><g><line id=\"actor8\" x1=\"2333\" y1=\"65\" x2=\"2333\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"VaultKMS\" data-et=\"life-line\" data-id=\"VaultKMS\"></line><g id=\"root-8\" data-et=\"participant\" data-type=\"participant\" data-id=\"VaultKMS\"><rect x=\"2258\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"VaultKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"2333\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"2333\" dy=\"0\">Vault KMS</tspan></text></g></g><g><line id=\"actor7\" x1=\"1944\" y1=\"65\" x2=\"1944\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Vault\" data-et=\"life-line\" data-id=\"Vault\"></line><g id=\"root-7\" data-et=\"participant\" data-type=\"participant\" data-id=\"Vault\"><rect x=\"1869\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Vault\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1944\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1944\" dy=\"0\">Vault</tspan></text></g></g><g><line id=\"actor6\" x1=\"1744\" y1=\"65\" x2=\"1744\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"NotaryKMS\" data-et=\"life-line\" data-id=\"NotaryKMS\"></line><g id=\"root-6\" data-et=\"participant\" data-type=\"participant\" data-id=\"NotaryKMS\"><rect x=\"1669\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"NotaryKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1744\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1744\" dy=\"0\">Notary KMS</tspan></text></g></g><g><line id=\"actor5\" x1=\"1453\" y1=\"65\" x2=\"1453\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Notary\" data-et=\"life-line\" data-id=\"Notary\"></line><g id=\"root-5\" data-et=\"participant\" data-type=\"participant\" data-id=\"Notary\"><rect x=\"1378\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Notary\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1453\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1453\" dy=\"0\">Notary</tspan></text></g></g><g><line id=\"actor4\" x1=\"1101\" y1=\"65\" x2=\"1101\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Bridge\" data-et=\"life-line\" data-id=\"Bridge\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"Bridge\"><rect x=\"1004\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"194\" height=\"65\" name=\"Bridge\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1101\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1101\" dy=\"0\">Approval / Notary Bridge</tspan></text></g></g><g><line id=\"actor3\" x1=\"843\" y1=\"65\" x2=\"843\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"AMQP\" data-et=\"life-line\" data-id=\"AMQP\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"AMQP\"><rect x=\"768\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"AMQP\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"843\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"843\" dy=\"0\">AMQP broker</tspan></text></g></g><g><line id=\"actor2\" x1=\"606\" y1=\"65\" x2=\"606\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"API\" data-et=\"life-line\" data-id=\"API\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"API\"><rect x=\"531\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"606\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"606\" dy=\"0\">API Gateway</tspan></text></g></g><g><line id=\"actor1\" x1=\"406\" y1=\"65\" x2=\"406\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Auth\" data-et=\"life-line\" data-id=\"Auth\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"Auth\"><rect x=\"331\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Auth\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"406\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"406\" dy=\"0\">Auth Server</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"User\" data-et=\"life-line\" data-id=\"User\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"User\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"User\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></g><style>#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .error-icon{fill:#552222;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .error-text{fill:#552222;stroke:#552222;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-thickness-normal{stroke-width:1px;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-thickness-thick{stroke-width:3.5px;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-pattern-solid{stroke-dasharray:0;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .marker{fill:#333333;stroke:#333333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .marker.cross{stroke:#333333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 p{margin:0;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .actor-line{stroke:#9370DB;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .sequenceNumber{fill:white;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .messageText{fill:#333;stroke:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .labelText,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .loopText,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .sectionTitle,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .noteText,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .actorPopupMenu{position:absolute;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .actor-man circle,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 line{fill:#ECECFF;stroke-width:2px;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 .node .neo-node{stroke:#9370DB;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node rect,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].cluster rect,#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><text x=\"239\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">1. Authenticate (challenge-response)</text><line x1=\"76\" y1=\"111\" x2=\"402\" y2=\"111\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"User\" data-to=\"Auth\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"242\" y=\"126\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">JWT token</text><line x1=\"405\" y1=\"155\" x2=\"79\" y2=\"155\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"Auth\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"339\" y=\"170\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">2. Submit signed Intent (JWT + TLS)</text><line x1=\"76\" y1=\"201\" x2=\"602\" y2=\"201\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"User\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"342\" y=\"216\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">3. 202 Accepted with requestId</text><line x1=\"605\" y1=\"247\" x2=\"79\" y2=\"247\" class=\"messageLine1\" data-et=\"message\" data-id=\"i3\" data-from=\"API\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"723\" y=\"262\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">4. Queue workflow task</text><line x1=\"607\" y1=\"293\" x2=\"839\" y2=\"293\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"API\" data-to=\"AMQP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"974\" y=\"308\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">5. Consume workflow task</text><line x1=\"1100\" y1=\"337\" x2=\"847\" y2=\"337\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"Bridge\" data-to=\"AMQP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"1279\" y=\"352\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">6. Poll for signed request and approvals</text><line x1=\"1452\" y1=\"383\" x2=\"1105\" y2=\"383\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"Notary\" data-to=\"Bridge\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"1276\" y=\"398\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">7. Return signed request and approvals</text><line x1=\"1102\" y1=\"429\" x2=\"1449\" y2=\"429\" class=\"messageLine1\" data-et=\"message\" data-id=\"i7\" data-from=\"Bridge\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1454\" y=\"444\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">8. Verify user signature, policy, Merkle state, and ARF</text><path d=\"M 1454,475 C 1514,465 1514,505 1454,495\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"Notary\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></path><text x=\"1597\" y=\"520\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">9. Sign trusted-state attestation</text><line x1=\"1454\" y1=\"551\" x2=\"1740\" y2=\"551\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"Notary\" data-to=\"NotaryKMS\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"1600\" y=\"566\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">10. Return signature</text><line x1=\"1743\" y1=\"597\" x2=\"1457\" y2=\"597\" class=\"messageLine1\" data-et=\"message\" data-id=\"i10\" data-from=\"NotaryKMS\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1277\" y=\"612\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">11. Poll for attested operation</text><line x1=\"1943\" y1=\"643\" x2=\"610\" y2=\"643\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"Vault\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"1274\" y=\"658\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">12. Return operation and notary attestation</text><line x1=\"607\" y1=\"689\" x2=\"1940\" y2=\"689\" class=\"messageLine1\" data-et=\"message\" data-id=\"i12\" data-from=\"API\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1945\" y=\"704\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">13. Verify notary attestation and request data</text><path d=\"M 1945,735 C 2005,725 2005,765 1945,755\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"Vault\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></path><text x=\"2137\" y=\"780\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">14. Request blockchain transaction signature</text><line x1=\"1945\" y1=\"811\" x2=\"2329\" y2=\"811\" class=\"messageLine0\" data-et=\"message\" data-id=\"i14\" data-from=\"Vault\" data-to=\"VaultKMS\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"fill: none;\"></line><text x=\"2140\" y=\"826\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">15. Return signature only</text><line x1=\"2332\" y1=\"857\" x2=\"1948\" y2=\"857\" class=\"messageLine1\" data-et=\"message\" data-id=\"i15\" data-from=\"VaultKMS\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1277\" y=\"872\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">16. Submit signed transaction</text><line x1=\"1943\" y1=\"903\" x2=\"610\" y2=\"903\" class=\"messageLine1\" data-et=\"message\" data-id=\"i16\" data-from=\"Vault\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-f825e5b203528679a879f0652aa2c5d57d54c19c7519448f8be315e8344e7472-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 2508px;\" viewBox=\"-50 -10 2508 1009\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"2258\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"VaultKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"2333\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"2333\" dy=\"0\">Vault KMS</tspan></text></g><g><rect x=\"1869\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Vault\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1944\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1944\" dy=\"0\">Vault</tspan></text></g><g><rect x=\"1669\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"NotaryKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1744\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1744\" dy=\"0\">Notary KMS</tspan></text></g><g><rect x=\"1378\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Notary\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1453\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1453\" dy=\"0\">Notary</tspan></text></g><g><rect x=\"1004\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"194\" height=\"65\" name=\"Bridge\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1101\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1101\" dy=\"0\">Approval / Notary Bridge</tspan></text></g><g><rect x=\"768\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"AMQP\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"843\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"843\" dy=\"0\">AMQP broker</tspan></text></g><g><rect x=\"531\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"606\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"606\" dy=\"0\">API Gateway</tspan></text></g><g><rect x=\"331\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Auth\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"406\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"406\" dy=\"0\">Auth Server</tspan></text></g><g><rect x=\"0\" y=\"923\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"User\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"955.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g><g><line id=\"actor8\" x1=\"2333\" y1=\"65\" x2=\"2333\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"VaultKMS\" data-et=\"life-line\" data-id=\"VaultKMS\"></line><g id=\"root-8\" data-et=\"participant\" data-type=\"participant\" data-id=\"VaultKMS\"><rect x=\"2258\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"VaultKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"2333\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"2333\" dy=\"0\">Vault KMS</tspan></text></g></g><g><line id=\"actor7\" x1=\"1944\" y1=\"65\" x2=\"1944\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Vault\" data-et=\"life-line\" data-id=\"Vault\"></line><g id=\"root-7\" data-et=\"participant\" data-type=\"participant\" data-id=\"Vault\"><rect x=\"1869\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Vault\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1944\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1944\" dy=\"0\">Vault</tspan></text></g></g><g><line id=\"actor6\" x1=\"1744\" y1=\"65\" x2=\"1744\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"NotaryKMS\" data-et=\"life-line\" data-id=\"NotaryKMS\"></line><g id=\"root-6\" data-et=\"participant\" data-type=\"participant\" data-id=\"NotaryKMS\"><rect x=\"1669\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"NotaryKMS\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1744\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1744\" dy=\"0\">Notary KMS</tspan></text></g></g><g><line id=\"actor5\" x1=\"1453\" y1=\"65\" x2=\"1453\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Notary\" data-et=\"life-line\" data-id=\"Notary\"></line><g id=\"root-5\" data-et=\"participant\" data-type=\"participant\" data-id=\"Notary\"><rect x=\"1378\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Notary\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1453\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1453\" dy=\"0\">Notary</tspan></text></g></g><g><line id=\"actor4\" x1=\"1101\" y1=\"65\" x2=\"1101\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Bridge\" data-et=\"life-line\" data-id=\"Bridge\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"Bridge\"><rect x=\"1004\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"194\" height=\"65\" name=\"Bridge\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1101\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1101\" dy=\"0\">Approval / Notary Bridge</tspan></text></g></g><g><line id=\"actor3\" x1=\"843\" y1=\"65\" x2=\"843\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"AMQP\" data-et=\"life-line\" data-id=\"AMQP\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"AMQP\"><rect x=\"768\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"AMQP\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"843\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"843\" dy=\"0\">AMQP broker</tspan></text></g></g><g><line id=\"actor2\" x1=\"606\" y1=\"65\" x2=\"606\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"API\" data-et=\"life-line\" data-id=\"API\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"API\"><rect x=\"531\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"606\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"606\" dy=\"0\">API Gateway</tspan></text></g></g><g><line id=\"actor1\" x1=\"406\" y1=\"65\" x2=\"406\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"Auth\" data-et=\"life-line\" data-id=\"Auth\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"Auth\"><rect x=\"331\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"Auth\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"406\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"406\" dy=\"0\">Auth Server</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"923\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"User\" data-et=\"life-line\" data-id=\"User\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"User\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"User\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">User</tspan></text></g></g><style>#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .error-icon{fill:#a44141;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .error-text{fill:#ddd;stroke:#ddd;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-thickness-normal{stroke-width:1px;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-thickness-thick{stroke-width:3.5px;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-pattern-solid{stroke-dasharray:0;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-pattern-dashed{stroke-dasharray:3;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .edge-pattern-dotted{stroke-dasharray:2;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .marker{fill:lightgrey;stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .marker.cross{stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c p{margin:0;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .actor-line{stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .sequenceNumber{fill:black;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .messageText{fill:lightgrey;stroke:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .labelText,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .loopText,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .sectionTitle,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .noteText,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .actorPopupMenu{position:absolute;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .actor-man circle,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c line{fill:#1f2020;stroke-width:2px;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c .node .neo-node{stroke:#ccc;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node rect,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].cluster rect,#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node polygon{stroke:url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node path{stroke:url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-gradient);stroke-width:1px;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node circle{stroke:url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><text x=\"239\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">1. Authenticate (challenge-response)</text><line x1=\"76\" y1=\"111\" x2=\"402\" y2=\"111\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"User\" data-to=\"Auth\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"242\" y=\"126\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">JWT token</text><line x1=\"405\" y1=\"155\" x2=\"79\" y2=\"155\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"Auth\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"339\" y=\"170\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">2. Submit signed Intent (JWT + TLS)</text><line x1=\"76\" y1=\"201\" x2=\"602\" y2=\"201\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"User\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"342\" y=\"216\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">3. 202 Accepted with requestId</text><line x1=\"605\" y1=\"247\" x2=\"79\" y2=\"247\" class=\"messageLine1\" data-et=\"message\" data-id=\"i3\" data-from=\"API\" data-to=\"User\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"723\" y=\"262\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">4. Queue workflow task</text><line x1=\"607\" y1=\"293\" x2=\"839\" y2=\"293\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"API\" data-to=\"AMQP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"974\" y=\"308\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">5. Consume workflow task</text><line x1=\"1100\" y1=\"337\" x2=\"847\" y2=\"337\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"Bridge\" data-to=\"AMQP\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1279\" y=\"352\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">6. Poll for signed request and approvals</text><line x1=\"1452\" y1=\"383\" x2=\"1105\" y2=\"383\" class=\"messageLine0\" data-et=\"message\" data-id=\"i6\" data-from=\"Notary\" data-to=\"Bridge\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1276\" y=\"398\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">7. Return signed request and approvals</text><line x1=\"1102\" y1=\"429\" x2=\"1449\" y2=\"429\" class=\"messageLine1\" data-et=\"message\" data-id=\"i7\" data-from=\"Bridge\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1454\" y=\"444\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">8. Verify user signature, policy, Merkle state, and ARF</text><path d=\"M 1454,475 C 1514,465 1514,505 1454,495\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"Notary\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></path><text x=\"1597\" y=\"520\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">9. Sign trusted-state attestation</text><line x1=\"1454\" y1=\"551\" x2=\"1740\" y2=\"551\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"Notary\" data-to=\"NotaryKMS\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1600\" y=\"566\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">10. Return signature</text><line x1=\"1743\" y1=\"597\" x2=\"1457\" y2=\"597\" class=\"messageLine1\" data-et=\"message\" data-id=\"i10\" data-from=\"NotaryKMS\" data-to=\"Notary\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1277\" y=\"612\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">11. Poll for attested operation</text><line x1=\"1943\" y1=\"643\" x2=\"610\" y2=\"643\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"Vault\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"1274\" y=\"658\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">12. Return operation and notary attestation</text><line x1=\"607\" y1=\"689\" x2=\"1940\" y2=\"689\" class=\"messageLine1\" data-et=\"message\" data-id=\"i12\" data-from=\"API\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1945\" y=\"704\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">13. Verify notary attestation and request data</text><path d=\"M 1945,735 C 2005,725 2005,765 1945,755\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"Vault\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></path><text x=\"2137\" y=\"780\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">14. Request blockchain transaction signature</text><line x1=\"1945\" y1=\"811\" x2=\"2329\" y2=\"811\" class=\"messageLine0\" data-et=\"message\" data-id=\"i14\" data-from=\"Vault\" data-to=\"VaultKMS\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"fill: none;\"></line><text x=\"2140\" y=\"826\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">15. Return signature only</text><line x1=\"2332\" y1=\"857\" x2=\"1948\" y2=\"857\" class=\"messageLine1\" data-et=\"message\" data-id=\"i15\" data-from=\"VaultKMS\" data-to=\"Vault\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"1277\" y=\"872\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">16. Submit signed transaction</text><line x1=\"1943\" y1=\"903\" x2=\"610\" y2=\"903\" class=\"messageLine1\" data-et=\"message\" data-id=\"i16\" data-from=\"Vault\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-6cbac8506f13cad4512f2fc567d23323c969062d69b0e6ffefb18a58c416cb1c-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    participant User\n    participant Auth as Auth Server\n    participant API as API Gateway\n    participant AMQP as AMQP broker\n    participant Bridge as Approval / Notary Bridge\n    participant Notary\n    participant NotaryKMS as Notary KMS\n    participant Vault\n    participant VaultKMS as Vault KMS\n\n    User->>Auth: 1. Authenticate (challenge-response)\n    Auth-->>User: JWT token\n\n    User->>API: 2. Submit signed Intent (JWT + TLS)\n    API-->>User: 3. 202 Accepted with requestId\n    API->>AMQP: 4. Queue workflow task\n    Bridge->>AMQP: 5. Consume workflow task\n    Notary->>Bridge: 6. Poll for signed request and approvals\n    Bridge-->>Notary: 7. Return signed request and approvals\n\n    Notary->>Notary: 8. Verify user signature, policy, Merkle state, and ARF\n    Notary->>NotaryKMS: 9. Sign trusted-state attestation\n    NotaryKMS-->>Notary: 10. Return signature\n\n    Vault->>API: 11. Poll for attested operation\n    API-->>Vault: 12. Return operation and notary attestation\n    Vault->>Vault: 13. Verify notary attestation and request data\n    Vault->>VaultKMS: 14. Request blockchain transaction signature\n    VaultKMS-->>Vault: 15. Return signature only\n    Vault-->>API: 16. Submit signed transaction\n"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Step"},"children":["Step"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Security Controls"},"children":["Security Controls"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-4"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TLS encryption, JWT authentication, digital signature, request ID tracking"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["5-10"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["mTLS where configured, signature verification, policy evaluation, Merkle state validation, ARF protection, notary KMS isolation"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["11-16"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Application-layer verification, notary attestation checks, vault KMS isolation, signed transaction submission"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"glossary","__idx":12},"children":["Glossary"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Term"},"children":["Term"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Definition"},"children":["Definition"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ARF"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Anti-rewind file. A cryptographically protected file that tracks the current state version to prevent replay attacks. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security/data-integrity-and-audit-trail#anti-rewind-file-arf"},"children":["Data integrity"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bearer token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An authentication token included in HTTP request headers. Anyone \"bearing\" the token can use it, so it must be transmitted over TLS."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Canonical JSON"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A standardized JSON format with sorted keys and no whitespace, ensuring the same data always produces the same byte sequence for signing."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DER format"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Distinguished Encoding Rules. A binary encoding for cryptographic data structures like signatures and certificates."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Intent"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A signed request to change system state (e.g., transfer funds, update a policy)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JWT"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JSON Web Token. A compact, signed token containing identity claims, used for stateless authentication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mTLS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Mutual TLS. A TLS connection where both client and server present certificates and verify each other's identity."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OIDC"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OpenID Connect. An identity layer built on OAuth 2.0 that enables authentication and identity verification."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PKI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Public Key Infrastructure. A system of certificates, certificate authorities, and trust relationships used to verify identities."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TLS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transport Layer Security. A cryptographic protocol that encrypts network traffic and verifies server identity."]}]}]}]}]}]},"headings":[{"value":"Secure communication","id":"secure-communication","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Authentication","id":"authentication","depth":2},{"value":"JWT authentication","id":"jwt-authentication","depth":3},{"value":"Digital signatures for authorization","id":"digital-signatures-for-authorization","depth":3},{"value":"Network security","id":"network-security","depth":2},{"value":"Mutual TLS (mTLS)","id":"mutual-tls-mtls","depth":3},{"value":"Your internal PKI","id":"your-internal-pki","depth":3},{"value":"Internal platform communication","id":"internal-platform-communication","depth":3},{"value":"Dependency connections","id":"dependency-connections","depth":3},{"value":"Blockchain connections","id":"blockchain-connections","depth":3},{"value":"The security lifecycle in practice","id":"the-security-lifecycle-in-practice","depth":2},{"value":"Glossary","id":"glossary","depth":2}],"frontmatter":{"seo":{"title":"Secure communication"}},"lastModified":"2026-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/overview/security/secure-communication","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}