Data Privacy & Redaction
Data stays local: redaction
faultgate reads your traces in memory and writes no trace payloads anywhere. Rules, policy, bands and the local Laya judge never send anything off the machine.
Two things can leave the machine: the trace an API judge (litellm:) reads, and the reasons that end up in your terminal, --json report, CI logs and PR comments. Both are masked by default. Set the mode with --redact <mode>:
--redact |
Masks | Needs |
|---|---|---|
builtin (default) |
emails, credit cards (Luhn-checked), US SSNs, phone numbers, IPv4/IPv6, API keys, bearer tokens, JWTs | nothing (stdlib regex) |
presidio |
the above plus Presidio’s recognisers: person names, locations, more | pip install 'faultgate[pii]' and a spaCy model |
off |
nothing |
Rules always see the raw values. An identity policy has to compare the real customer id. Only what leaves the machine is masked:
step 2: update_profile.email '<EMAIL>' != session enduser.id '<EMAIL>'
The report’s redaction field records which mode ran. On the 30 real benchmark traces from make demo-real, the built-in masker finds 81 emails, 39 phone numbers and 69 JWT access tokens. It changes none of the text in the shipped FAULTLINE traces.
For the redaction flag on the command line, see the CLI Reference. For what goes into a CI comment and audit pack, see CI & GitHub Action Integration.