find · fix · prove — for enterprise AI · runs locally · exit 0 or 1

Permissions don't travel
with your data.

When documents are copied into a RAG or agent index, their access controls get left behind. People change teams, sharing gets revoked, an embedding model gets upgraded — and the index quietly keeps serving what it learned on day one. raggate finds every chunk an identity can retrieve but shouldn't, fixes it in place — non-destructively and reversibly — and re-runs the gate to prove zero leaks. Every verdict ships with replayable evidence.

Why your permission system can't see it

Nothing changed in your authz. Everything changed in reach.

Authorization engines answer "can X read Y?" — and keep answering correctly while retrieval quietly changes which Y come back. Three regressions we plant in our benchmark corpus, and catch on every run:

revoked · still indexed

The employee who left the project

Bob loses project access on Monday. The project's chunks were embedded last month. His queries still surface them — the index never heard about the revocation.

gate result: 0 → 6 leaks the moment permissions change
cross-tenant · similarity trap

The two customers with identical contracts

Tenant A's pricing query is a near-perfect match for tenant B's pricing template. Pure vector similarity doesn't know what a tenant is.

gate result: 6 leaks, both directions, pre-existing
pipeline change · silent regression

The embedding upgrade

A "better" embedding model reaches further semantically. Permissions untouched — and documents that were unreachable yesterday are in answers today.

gate result: 10 forbidden docs newly reachable, ACLs unchanged
What you get

A verdict. A fix. And proof the fix worked.

Most tools hand you a finding and leave the cleanup to you. raggate closes the loop: it generates a remediation plan, applies it against your index with your approval — query-time pre-filter first, never a destructive delete by default — then re-runs the gate and asserts zero leaks. Every action is reversible with one command, and the before/after is written to the same replayable evidence stream.

raggate run --db out/gate.db --snapshot acl/v2.yaml --scenarios scenarios/
gate run against snapshot v2 (final_k=5, tau=0.3)
  S1: 6 scenarios, 6 leaked · revoked access, stale index
  S2: 6 scenarios, 6 leaked · cross-tenant recall
  S3: 4 scenarios, 4 leaked · public-then-private doc
  NEG: 10 scenarios, 0 leaked · zero false positives
  LEAK [S1] bob@acme → acme-atlas-01
evidence: 260 records → out/evidence.jsonl
VERDICT: FAIL — access regression detected (exit 1 · blocks the pipeline)
Regression testing, not probing
Deterministic replay of scenario queries as real identities against your ACL ground truth — same inputs, same verdict, every run. Not LLM-judged red-teaming.
Replay-complete evidence
Every retrieved chunk becomes one JSONL record — who asked, what came back, the authorization decision, the policy version. Re-derive any verdict months later without re-running retrieval. IDs and decisions only; never document content.
Made for CI
Exit 1 on any leak. Gate embedding upgrades, chunking changes, re-ranker swaps, ACL syncs — every change to the pipeline, not just the first launch.
A report you can put in front of anyone
Single-file HTML: verdict banner, per-scenario evidence, access-surface diff. Opens from file://, no server, nothing leaves your machine.
How to try

Bring your own snapshot. Run it where your data lives.

Export a permission snapshot

A point-in-time YAML of who-can-read-what, pulled from your source of truth — Drive, SharePoint, Lark, GitLab, your IdP, or your authz service. Open spec, one file, raggate validate-snapshot checks it before anything runs.

Point the gate at your index

Ingest your corpus (or adapt your retriever behind one interface: retrieve(query, identity, top_k)). Write scenarios: identities, queries, and what they must never see.

Get the verdict — and keep the evidence

raggate run exits 0 or 1. Wire it into CI so every pipeline change re-proves the access boundary. Evidence and reports accumulate as your audit trail.

Local-first, by design. The CLI runs entirely in your environment. Your documents, your ACLs, and your identities never leave it — a product that verifies leak-prevention shouldn't start by asking you to leak. Only redacted evidence summaries are ever optional to share.
Pricing

Priced per protected pipeline. Test as often as you like.

A pipeline is one retrieval index / knowledge base / agent app — its own corpus, retriever config, permission snapshots, and scenarios. Environments don't count extra. Runs are unlimited: a gate should never charge you for testing more.

Design Partner Pilot
$2.5k–$7.5k
60–90 days · fixed scope · start here
  • Prove zero-leak rollout against your real ACLs, embeddings & retrieval stack
  • Your scenarios + our planted-leak suite
  • Full per-query evidence + audit-ready report
  • Runs entirely in your environment
Request a pilot
Production
from $750
per month · after your pilot
  • CI gate on every change
  • Access-surface diff across configs
  • Report history & run archive
  • Local license, air-gapped OK
  • Priced by pipeline / repo / corpus / environment
Talk to us
Enterprise
Custom
annual · unlimited scale
  • SSO, private deployment
  • Audit package & evidence retention
  • Permission-source connectors
  • Dedicated support
Talk to us

Just want to try the CLI? — Developer Sandbox, $249/mo

One pipeline, non-production, community support. The full gate and evidence reports, for kicking the tires. Most teams start with the pilot instead — it answers the question your security review actually asks.

Get the Sandbox

A pipeline = one retrieval index / knowledge base / agent app. Environments don't count extra; runs are unlimited — a gate should never charge you for testing more. Today every button reaches a human who responds fast.

Get started

Book a pilot — or ask us anything.

Tell us what you're shipping and who blocks you at launch. We reply from a human, fast. Nothing here touches your corpus or ACLs.

A human reads every one — usually same day. Prefer email? [email protected]