Governance Control Matrix
Every request that passes through Talon enters through one of five entry paths. This matrix is the single source of truth for which governance controls run on each path, which limitations are by design (and why), and how parity across paths is enforced so the posture cannot silently drift.
Audience: operators preparing audits, contributors adding new entry paths, and reviewers assessing claims made in RoPA / Annex IV exports.
Entry paths
| # | Path | How it is invoked | What Talon sees |
|---|---|---|---|
| 1 | Agent runner | talon run, cron triggers, webhooks | Full prompt, attachments, tool calls, response |
| 2 | LLM gateway | talon serve --gateway (OpenAI-compatible HTTP proxy) | Full request/response bodies in transit |
| 3 | MCP server | talon serve → POST /mcp (embedded tools) | Full tool arguments and results; tools execute in-process |
| 4 | MCP proxy | talon serve --proxy-config (upstream MCP vendors) | Full tool arguments and results in transit |
| 5 | Graph adapter | POST /v1/graph/events (LangGraph, LangChain, SDKs) | Governance events only — content never transits Talon |
Control × path matrix
Legend: ✅ enforced · ⚠️ limited by design (see notes) · — not applicable
| Control | Agent runner | LLM gateway | MCP server | MCP proxy | Graph adapter |
|---|---|---|---|---|---|
| Policy evaluation (OPA) | ✅ | ✅ | ✅ | ✅ | ✅ |
| PII classification — input | ✅ prompt + attachments | ✅ request body | ✅ tool args | ✅ tool args | ⚠️ N/A (1) |
| PII classification — output | ✅ response | ✅ response body | ✅ tool result | ✅ tool result | ⚠️ N/A (1) |
Data-flow evidence (data_flow) | ✅ every egress | ✅ every egress | ✅ every tools/call |