sentinelphp / redact
PII redaction library for JSON payloads and strings
v1.0.1
2026-04-27 12:16 UTC
Requires
- php: >=8.2
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0 || ^12.0
README
PII redaction library for JSON payloads and strings.
Installation
composer require sentinelphp/redact
Usage
use SentinelPHP\Redact\PiiRedactor; $redactor = new PiiRedactor(); // Redact PII from a string $text = "Contact me at john@example.com or 555-123-4567"; $redacted = $redactor->redactString($text); // Result: "Contact me at [EMAIL REDACTED] or [PHONE REDACTED]" // Redact PII from JSON data $data = [ 'user' => [ 'email' => 'john@example.com', 'phone' => '555-123-4567', 'credit_card' => '4111-1111-1111-1111', ], ]; $redacted = $redactor->redact($data);
Built-in Patterns
- Credit Cards: Visa, Mastercard, Amex, Discover
- Email Addresses: Standard email format
- Phone Numbers: US phone formats
- SSN: US Social Security Numbers
- API Keys: Common API key formats (Stripe, Bearer tokens)
Custom Patterns
$redactor = new PiiRedactor(); // Add a custom pattern $redactor->addPattern('custom_id', '/ID-\d{6}/', '[ID REDACTED]'); // Remove a default pattern $redactor->removePattern('phone');
Field Path Redaction
Redact specific fields by their JSON path:
$redactor = new PiiRedactor(); $redactor->addFieldPath('user.password'); $redactor->addFieldPath('*.secret'); $data = ['user' => ['password' => 'secret123']]; $redacted = $redactor->redact($data); // Result: ['user' => ['password' => '[REDACTED]']]
License
GPL v3 — see LICENSE for details