The platform

Enforcement runs in your environment. Never in ours.

Governance products commonly enforce by sitting in the traffic between your agents and your tools. FaburAI is built the other way around: we produce policy, and your own environment enforces it.

How it works

FaburAI is never in the request path.

That is a specific architectural statement, so it is worth setting out precisely what it means.

FaburAI compiles your governance rules into policy and publishes it. A decision point inside your own environment retrieves that policy and evaluates every call locally. The governed request goes from your agent, through the decision point, to your tool — entirely inside your network.

Your applicationAI agent

Unchanged. It calls the tool as it always has, carrying the identity of the user it is acting for.

Your environmentDecision point

Evaluates the call against current policy, in place. Allow or deny, with the reason recorded.

Your environmentTool or data system

Receives the call only when the decision is allow. A denial never reaches it at all.

FaburAIOut of band

Publishes the policy the decision point retrieves, and receives payload-free decision records. Never a hop in the call itself.

A denied call never reaches the tool, and the denial comes back naming the rule that refused it — so a developer debugging their agent gets an answer rather than a mystery.

Data boundary

What leaves your network, exactly.

A short answer, set out in full, because it is usually the first thing a security architect wants to establish.

Leaves your environment

  • Decision records: which agent, which tool, which target, allow or deny, which policy matched, and when.
  • Health and version of the enforcement component, so you can see your own fleet.

Sent asynchronously in small batches. The request path never waits on FaburAI.

Never leaves your environment

  • Request payloads — the arguments your agent sent.
  • Response payloads — the rows, files, or records returned.
  • Your data, in any form. FaburAI governs access to it and never handles it.

When a call is allowed, data flows directly between your agent and your tool.

The control loop

Policy changes reach the edge without a restart.

  1. Author

    Describe the policy in plain language. FaburAI drafts the structured rule — the roles, tools and columns it binds to — for you to review and correct.

  2. Approve

    Policies move through draft, review, approved, published. Nothing that has not been approved can reach enforcement, so no rule governs traffic without a human having signed off on it.

  3. Publish

    Approved policies are compiled together with the context they need: role definitions, column sensitivity labels, and the rules for identifying the governed object in a request.

  4. Take effect

    The decision point picks up the new policy on a short interval and swaps it in place — no restart, no dropped connections, no maintenance window.

Adoption path

Turn enforcement on one server at a time.

A new policy layer rarely goes in front of production traffic in blocking mode on day one. Enforcement mode is set per MCP server, so one deployment can run a mix.

Observe

Every call is evaluated and recorded. Nothing is ever blocked. Use it to learn what your agents actually do before you write a single rule.

Simulate

The platform records what it would have denied and lets the traffic through. This is how you size the blast radius of a policy before it can break anything.

Enforce

A denial goes back to the agent with the reason attached. Battle-tested servers can run here while newly onboarded ones are still in simulate.

Granularity

Policy binds to columns, not just to tools.

Tool-level governance answers whether an agent may call a tool. Data owners generally need to go a level further, down to what the call can reach.

What FaburAI policy can bind to
DimensionWhat it means
User roleThe role of the person the agent is acting for, taken from your existing enterprise identity provider rather than re-keyed by hand.
AI actorThe agent or application making the call, identified from the provenance it carries.
MCP serverThe registered server, which also carries its own enforcement mode.
ToolThe specific operation, and whether it reads, writes or deletes.
Table and columnThe governed target, identified from the request itself — including columns referenced through a query rather than named directly.
SensitivityLabels applied at discovery — PII, PHI, GDPR, SOX, HIPAA — so a rule can say "no PII" without enumerating every column.

Deny overrides allow. An explicit deny on a sensitive column cannot be widened by a broader allow rule somewhere else in the policy set.

Design principles

The choices behind the architecture.

Each of these was settled deliberately, and the alternatives we considered are documented alongside them.

Policy is published, not proxied

FaburAI produces governance policy and makes it available. It does not carry your traffic, so it cannot become a bottleneck or an outage in your critical path.

Decisions are made where the work happens

The decision point runs alongside the tools it governs, inside your environment. Evaluation is local, which is why it keeps working when we are unreachable.

Your environment initiates every connection

Policy is retrieved outbound and decision records are sent outbound. Nothing connects inbound to you, so on-premises deployments open no firewall holes for us.

Governance state is isolated from the workload

The catalog, the policy model and the decision record live in their own tenant boundary, separate from the tools being governed. Blast radius stays contained.

One product, every deployment model

The same codebase runs as hosted SaaS, in your own cloud account, or fully on-premises on Kubernetes. Self-hosting does not mean a lesser product or a reduced feature set.

Talk to us

See the architecture in detail.

If your team is evaluating how to govern AI access to enterprise data and tools, we are glad to walk through how this works in your environment.