sentinelphp/redact

PII redaction library for JSON payloads and strings

Maintainers

Package info

github.com/SentinelPHP/Redact

Homepage

Issues

pkg:composer/sentinelphp/redact

Statistics

Installs: 0

Dependents: 1

Suggesters: 0

Stars: 0

v1.0.1 2026-04-27 12:16 UTC

This package is auto-updated.

Last update: 2026-04-27 12:21:48 UTC


README

Latest Version License

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