Add scan_roles config for role-based PII/secrets filtering (#52)
authorStefan Gasser <redacted>
Tue, 20 Jan 2026 19:07:03 +0000 (20:07 +0100)
committerGitHub <redacted>
Tue, 20 Jan 2026 19:07:03 +0000 (20:07 +0100)
commit7cbf33c2dce90ecd4968c91a557e564268d38307
treeb2653289eeb0e72ee58176b1db845a4bca145e2e
parent879fd9da06fb80149cb6961dbabe7755f948e84b
Add scan_roles config for role-based PII/secrets filtering (#52)

Allows configuring which message roles to scan for PII and secrets.
By default all roles are scanned (existing behavior). When scan_roles
is set, only messages with matching roles are sent to Presidio.

Use case: Skip scanning large system prompts to reduce API calls and
avoid false positives on app-controlled content.

- Add role field to TextSpan type
- OpenAI extractor populates role from message
- PII detector filters by scan_roles before Presidio calls
- Secrets detector filters by scan_roles before detection
config.example.yaml
src/config.ts
src/masking/extractors/openai.test.ts
src/masking/extractors/openai.ts
src/masking/types.ts
src/pii/detect.ts
src/secrets/detect.ts
git clone https://git.99rst.org/PROJECT