Traffic analysis, audit and retention

Trace decisions, distinguish reports from enforcement and configure retention.

Role: deployment operator. These steps use the operator console. An ordinary hosted account exposes only its own keys and limits; request policy, protection-mode and masking changes from the operator.

Use reports to answer four separate questions: what was detected, which policy decided, what actually happened to the request, and where the evidence is stored. Report controls change the displayed sample; they do not enable or disable inspection.

Trace a request from client to decision

  1. Record the client’s Request ID, UTC time, tenant and application/model label; omit raw secrets.
  2. Open Request history → Router requests, select that tenant and time range, then search by request ID.
  3. Read sensitivity, classes, injection, tier, decision reason and policy/rule identity. Compare actual action and destination with the intended policy.
  4. Inspect content or replacement evidence only when stored and you have investigation permissions. Missing content is not proof of absent inspection.
  5. For grouped threats, open Injection alerts; use links back to the same audit record.

What the fields mean

FieldInterpretation
tenant / app / actorOrganization, application and initiator; display selection does not grant permissions.
sensitivity / data classes / severityPrivacy category, detected class IDs and threat criticality; different concepts.
tierCascade stage: 0 prefilter, 1 rules, 2 encoder, 3 LLM arbitration. Availability/version can limit stages.
injection_detectedDetected injection, not automatically proof of a blocked request.
action / reason / policy_id / rule_idDecision and winning rule; validate the final processing outcome separately.
perimeter / provider / modelActual route; model hints cannot lower privacy containment.
latency / P50 / P95 / P99Time and distribution percentiles; classifier latency is different from full model-response latency.
hash / original content / KEY_N mappingMetadata integrity, raw content and replacement dictionary are separate stores.

Reports, filters and live feed

Period, tenant, action, class, policy and app filters narrow the report. Clear filters to compare against a broader sample; recheck UTC time. Auto-refresh Off/None and live-feed Pause only affect this browser. Clear clears the visible feed buffer; durable audit remains. SSE reconnect may omit previous events, so investigations use persisted audit. No data and HTTP 503 are different outcomes.

Classifier Health requires available historical sources. Check its period, failure/fail-safe ratio and latency alongside the integration’s actual classifier status. A closed breaker means attempts are permitted; it does not prove every request succeeded. A circuit-open or fail-safe event should be investigated with its request ID.

Retention and content access

Store / controlWhat it retainsImportant boundary
Ring bufferRecent decision metadataMemory-limited and lost on restart; not long-term history.
PostgreSQL auditDurable decision history and analyticsRequires configured storage; reports/export can be unavailable without it.
Journal retention: max age in daysAutomatic pruning of audit records0 disables pruning, not logging. Pruning removes historical records; select the retention required by your organization.
Original-content storageCaptured request/answer content if enabledSeparate encryption/access and retention; cannot reconstruct text that was never captured.
Masking session TTLValue ↔ KEY_N mappingSeparate from audit retention; check storage and encryption status.
Chain verificationAvailable audit hash chainVerify the reported scope/pod; this is not automatically a global cross-replica integrity certificate.

Open Routing Audit → Journal retention → maximum age → Save to change the supported retention control. Re-read its status. Changing a report’s period does not change retention.

Routing Audit: persisted test-client request
Routing Audit: persisted test-client request
2026-10-15 · Actual staging application. Synthetic client, public definitions or aggregate test-stand metrics only; not customer statistics or a benchmark. Original pixels are unmodified; personal profile and private data excluded. Filtered to the owned synthetic client; one persisted record was verified.
  1. Search
  2. Filters
  3. Route / external result

Worker tasks and gateway calls

Request history separates Router requests from client tasks. A successful worker task is not evidence that a direct /v1 call passed policy. Correlate each source using its own IDs. Route preview checks a decision without calling a model; Playground Chat sends a real request and consumes budget. Content search, response and thinking require captured data and supported model output. Storage settings do not force a model to expose reasoning.

Detailed settings · FAQ · Audit section