Challenge · 01
A stale-permission window: revokes can land mid-session inside a 15-minute token.
Resolution
A fresh ACL lookup on every request, behind a 60-second cache; the token TTL is only the fallback floor.
Case / 2025.07 · Platform · DevOps
ABAC-gated RAG for an internal knowledge fabric
Self-hosted RAG across runbooks, postmortems, API docs, contracts and financials — zero leak budget, immutable audit trail, persona-gated retrieval.
Zero RBAC leaks across 14 months · 87% query satisfaction · ~40 hours of review time recovered per quarter.



/ 01 · Stakes
A platform-engineering org had a knowledge problem hiding inside an access problem: runbooks, postmortems, API specs, contracts, board materials and comp bands — six functions, four sensitivity tiers, one sprawling corpus.
Two SaaS RAG tools were killed by procurement because the corpus couldn’t leave their cloud. Engineers were grepping across Confluence, GitHub and the VDR every time they needed to remember why a service was decommissioned.
/ 02 · Approach
Documents are normalized, PII is redacted with natural phrasing preserved, and a T1–T4 tier tag is written alongside each embedding for its whole life in the store.
Every query carries the asker’s tier and attributes. The candidate set is filtered before dense and BM25 retrieval fire, then a cross-encoder reranks.
ACLs can change inside a token’s lifetime, so gate 2 re-fetches current permissions and drops anything that no longer passes.
Every citation in the model’s answer is checked against the asker’s allow-list. An out-of-tier or fabricated reference withholds the answer with a trace ID.
Every request, allowed or refused, is written to S3 Object Lock in compliance mode with 7-year retention — not even the root account can delete it.
/ 03 · Challenges
Challenge · 01
Resolution
A fresh ACL lookup on every request, behind a 60-second cache; the token TTL is only the fallback floor.
Challenge · 02
Resolution
Ingest-time scanning with redaction and named-entity recovery, so sentences stay readable and the redaction state travels with the chunk.
Challenge · 03
Resolution
An over-refusal budget of 5% or less, tracked weekly and sampled by the GRC team; none missed in audit across 14 months.
/ 04 · Outcomes
/ 05 · Evidence
Deployed single-tenant on the customer’s own cloud. SOC 2 Type II audited. The audit ledger has been exported directly by external auditors across two full cycles.