faultgate 0.3.1 · fixes from the first outside test, 180 real tau2-bench runsRead the changelog →
faultgate docs

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.