Workflow bundle · Docs

Security Case: Khanoor → DocFlow → Resolve

One authenticated request turns a structured security finding and supporting document into a prepared resolution case, with one tenant scope and one evidence chain.

What the workflow does

This is a fixed gateway capability, not a fourth autonomous agent and not a caller-defined agent graph.

  1. Khanoor triages the security event. A benign finding returns no_action and stops here.
  2. DocFlow extracts and classifies the supporting document for an actionable finding.
  3. Resolve prepares the support or resolution case from the prior two outputs.
Bounded by design. The route has exactly this order, a maximum of three hops, a 30-second overall deadline, and a 10-second timeout per hop. It does not accept agent names, URLs, routing rules, or a hop count from the caller.

Request

post/api/v1/agents/workflows/security-caseAgent key or JWT

Send JSON no larger than 256 KiB. Idempotency-Key is required. X-Paseo-Root-Correlation-Id is optional; when omitted, the gateway creates one.

FieldTypeNotes
tenant_idstring?May be omitted. If present, it must match the tenant derived from the authenticated credential.
eventSecurityEventTyped Khanoor input. Any tenant marker inside the event must match the authenticated tenant.
documentDocumentInputTyped DocFlow input. Any tenant marker inside document metadata must match the authenticated tenant.
curl

Terminal response

A successful request returns completed after all three hops or no_action after Khanoor. The response carries the route actually executed rather than implying work that did not run.

FieldWhat it proves
root_correlation_idOne identifier propagated through every executed hop.
root_request_hashA commitment to the root request used for receipt-chain continuity and idempotency.
statuscompleted or no_action.
route_executedThe exact subset of khanoor, docflow, and resolve that ran.
khanoor, docflow, resolveTyped outputs for executed hops; downstream outputs remain null after a benign early stop.
receipt_chainOrdered hop receipts binding the tenant commitment, correlation id, input/output hashes, and previous receipt hash.
root_attestationThe ML-DSA-65 signed root completion record when gateway signing is configured.
Retry behavior. Repeating the same tenant, Idempotency-Key, and request body returns the same root result with Idempotency-Replayed: true. Reusing the key for different input is rejected.
Live evidence. On 9 August 2026, synthetic no-charge requests exercised the deployed Phala route through all three hops and the benign one-hop exit. The gateway replayed the same terminal bytes for an idempotent retry, verified the signed root, and rejected tampered evidence.

Safe failure

The workflow stops at the first failed, timed-out, tenant-mismatched, or invalid-receipt hop. It does not invent output or continue downstream.

Partial-failure responses identify failed_hop, a redacted failure.kind, completed_hops, and the valid receipt prefix accumulated before the stop. Raw input and internal error detail are not returned.


Pricing

The workflow uses the existing Paseo entitlement boundary. It currently has no separate usage meter, surcharge, Stripe SKU, or x402 SKU. The published Paseo rate card remains the source for existing Paseo offerings; it does not establish a dedicated workflow charge.