lucajackal85/pii-sanitizer-symfony
PII Sanitizer for Symfony helps detect and redact personally identifiable information in logs, requests, and stored data. Configure sanitization rules to protect sensitive user data and support GDPR and privacy compliance.
Architecture fit. The release is for pii-sanitizer-symfony, a Symfony bundle — not a Laravel package. Symfony bundles rely on config/bundles.php registration, a Bundle subclass, DI extension classes, and services.yaml compiler passes. Laravel has no equivalent bundle lifecycle; it uses service providers, facades, and package discovery. Direct install into a Laravel app is therefore only meaningful if (a) there is a framework-agnostic core (pii-sanitizer) that does the actual detection/redaction, and (b) we treat the Symfony bundle as reference glue rather than a dependency. Confirm this before anything else.
Integration feasibility. v0.2.0 is a namespace rename to Jackal\PiiSanitizer\Bundle — a breaking change shipped on a minor version, permissible only because the package is still 0.x. Any consumer must update use statements, service IDs/aliases, services.yaml references, compiler-pass wiring, and IDE/static-analysis baseline. For a Laravel effort this is low-impact if we never adopted 0.1.x; it is a red flag about API stability if we did. A Laravel adapter built against the core library is unaffected by bundle-internal renames — which argues strongly for depending on the core, not the bundle.
Technical risk.
Key questions.
Stack fit. Two viable paths:
PiiSanitizerServiceProvider in-house with config publishing, container bindings, and a facade. Insulates us from bundle-level churn entirely.Migration path. With no prior assessment and no evidenced adoption, start clean at v0.2.0 and skip 0.1.x entirely. If any prototype exists against the old namespace, the delta is mechanical: use statements, config/bundles.php entry, services.yaml service definitions and aliases, any custom compiler passes or tagged-service lookups, plus a Composer autoload dump and a static-analysis re-baseline. Budget half a day, and treat it as a dry run for how much future rename churn will cost us.
Compatibility. Pin exact 0.x versions and commit composer.lock. Verify PHP constraint against our runtime and confirm no Symfony framework packages get pulled transitively into the Laravel app (composer why symfony/* after install). If we later publish our adapter internally, its constraint should be on the core library, not the bundle.
Sequencing.
Maintenance. We own the Laravel adapter, so its upkeep is ours regardless of upstream. The namespace rename — a breaking change on a minor version in a 0.x line — signals that upstream APIs are still in motion. Keep the adapter under ~200 lines with the core surface isolated to one class so future renames are a single-file change.
Support. Single-maintainer OSS with no SLA. For a compliance control that is an unacceptable single point of failure: require a second, independent control (log-sink-side scrubbing at the collector, or an allowlist-based field filter) so a broken dependency doesn't silently become a data leak. Prefer fail-closed on the sanitizer path.
Scaling. Sanitization is CPU-bound pattern matching over request bodies, queue payloads, and log lines. Cost scales with payload volume, not request count, so large file uploads and verbose stack traces dominate. Benchmark p95 latency at realistic payload sizes; apply size caps and sampling on high-volume debug logs. Watch memory on very large bodies.
Failure modes.
composer update — the direct consequence of the namespace rename; prevented by exact pins plus a lockfile and a dependency-update CI gate.Ramp-up. Low technical ramp-up: small API surface, one integration point. The real lead time is review — security and compliance sign-off on the detection rules, the fail-open/closed policy, and audit sampling will dominate the timeline. Rough estimate: 1–2 engineer-days for the adapter and tests, plus 1–2 weeks elapsed for compliance review before production enablement on regulated data.
How can I help you explore Laravel packages today?