The five surfaces
Why the surfaces are listed even when empty
A coverage report that silently omits the surface it doesn’t cover is worse than no report. It reads as complete, and the one number an auditor would have asked about is the one that isn’t there. So every surface is returned on every read, including the ones with nothing deployed. A surface with no control says so, in words, with the name of the thing that would fill it.Honesty about what each control did
Every audit row carries two fields that exist purely so a wall of verdicts can be read correctly months later:enforcement_status—enforcedmeans we were in the path and the call went the way the row says.advisorymeans we saw it and did not gate it. An egress node in observe mode and the browser extension only ever writeadvisory, because neither stopped anything.inspection—fullmeans policy ran on a real body.metadata_onlymeans we saw a connection and never decrypted it, so any verdict on that row came from the destination or the volume, never the content.blindmeans it was reconstructed after the fact from a vendor’s audit log.
What’s next
Egress node
A proxy you run. Two environment variables on a workload and every model call it makes is inventoried — in any language, with no code change.
Browser extension
Which AI sites your team uses, and optionally what kinds of sensitive data get typed into them.
Gateway
Point a base URL at EgisAI and every call through it is governed inline.
Enforcement matrix
Where the SDK prevents versus where it can only record.