The pipeline
1. Capture — two paths
Both paths land on the same ingest queue; the difference is only how activity gets there. Transcript watcher (coding assistants). Claude Code (CLI) and Claude Desktop write a transcript of every session to disk. The Enfors watcher — a single dependency-free Python process, installed to run at login on macOS (LaunchAgentai.enfors.watcher) or Windows
(Scheduled Task EnforsWatcher) — tails those files and, when a turn completes, uploads it
to data.enfors.ai/api/ledger/transcript. It reads files only: no proxy, no TLS
interception, no certificate, and it is not in your network path.
Gateway (agent SDKs). Agent SDKs (e.g. the OpenAI SDK) and other tools call the Enfors
gateway (llm.enfors.ai, built on LiteLLM) directly. The
gateway is model-agnostic (Anthropic, OpenAI, Gemini, Bedrock, Azure…), tags each request
with identity headers (x-enfors-agent-id, x-enfors-agent-name, x-enfors-execution-id),
and does nothing but transport — it captures the call and enqueues it via its own callback
(/api/ledger/intake) while the client waits only on the model.
The watcher replaces the earlier mitmproxy approach for the coding assistants — no local
proxy, no TLS interception, and no certificate to trust. See
Deployment & Security for the full IT/CISO detail.
2. Reconstruct (the backend)
A FIFO queue feeds a worker that:- Reconstructs each captured turn into a decision with reasoning steps, findings, evidence, and artifacts.
- Classifies the outcome and work type, and computes quality metrics.
- Scrubs PII from stored records, offloading large payloads to object storage.
- Writes the relationship graph (best-effort, retried).
- Runs the insight engine and updates Features, Epics, and Pulse reports.
3. Serve (read surfaces)
Everything you see is served byenfors-api:
- The Enfors UI (authenticated SPA).
- The MCP server — an OAuth-secured endpoint that lets external AI clients query Enfors and render branded views. See MCP Server.
- The Data API — audit and analyse endpoints. See API Reference.
Where data lives
Decision ledger
The canonical record of every decision, with extracted columns for fast filtering and
structured blobs for the full audit trail.
See The Decision Ledger.
Relationship graph
Agents, decisions, subjects, evidence, steps, findings, and artifacts, for traversal and
the Explore canvas.
See Evidence & the Logic Trace.
The components
Everything is scoped to tenant, workspace, and user, enforced at the database with
Row-Level Security. See Tenancy, Privacy & PII.