filagora/filagora-compliance
Compliance add-on for Filagora that helps Laravel shops meet legal requirements with ready-made consent, policy, and GDPR-friendly tools. Lightweight and easy to integrate into existing Filagora storefronts.
filagora-core (and optionally filagora-entitlements and filagora-cms), it can be scheduled as a thin slice in an existing Filament-based product instead of a standalone initiative. The KPI widget (fulfilled within deadline, open requests, awaiting review) gives a ready-made operational dashboard, which is also a credible demo/screenshot asset.filagora:compliance:prune command with --dry-run, daily scheduling, and per-rule failure reporting (mailed to the DSAR address, non-blocking) lets a PM commit to "we respond within 30 days" and "we retain request data for X" with automated enforcement rather than a manual spreadsheet process. The distinction between deleting export files after N days while keeping the request is a policy decision the package supports directly.RetentionRuleRegistry means retention policy becomes one auditable place instead of ad-hoc cron jobs scattered across the codebase.CookieConsent::normalize() defines a clear precedence (cookie's own choice → its group's → default, required groups forced on), and requiresReconsent() supports the "we changed our cookie policy, ask again" flow. That is a product decision the PM can now specify precisely instead of debating.PrivacyContributor and UserAnonymizer interfaces mean new features (e.g. a new module storing personal data) can be made compliant without touching this package. That is a meaningful signal that compliance will not become a recurring tax on every future feature.filagora-entitlements is a suggestion rather than a hard requirement, and access funnels through core's AccessChecker. A PM can ship the module to all customers, or gate it behind a plan, without a code fork.Consider it when most of the following hold:
filagora/filagora-core ^0.2.1 already in place. This package requires core and is not standalone.Look elsewhere (or defer) when:
gates, kpis, routes, mail, retention, anonymize.attributes, models) is global; nothing here suggests per-tenant policy versions or per-tenant DSAR routing.ConfiguredColumnsAnonymizer replaces configured columns; the PM should confirm every identity-bearing table is either a contributor or covered by the anonymizer config before committing.For executives (one paragraph). We can stand up a defensible privacy-operations capability — request intake, tracked handling with deadlines, data export and erasure, an immutable-style audit trail, retention automation, and cookie/policy consent — by integrating a package into our existing application rather than commissioning a bespoke build. That converts a multi-month compliance project with ongoing maintenance cost into a contained integration with a visible operations dashboard, and it gives sales a concrete answer to the security and privacy questions that currently stall enterprise deals. The trade-off is that it is a young, first-release library: it provides the mechanics and the audit record, not legal certification, and it assumes our stack already runs on filagora-core and Filament.
For engineering (a few sentences). Adopt filagora/filagora-compliance ^0.1.0 alongside filagora/filagora-core ^0.2.1. It ships eight tables in one migration with an filagora:adopt schema snapshot for existing installs, swappable models via filagora-compliance.models, and two enums (PrivacyRequestStatus, PrivacyRequestType). All staff actions route through the PrivacyRequests service so they are audited and the requester is notified; services return refusals with reasons instead of throwing. Erasure runs contributors and the anonymizer in a single transaction. Retention is a daily scheduled command with --dry-run and per-rule failure isolation. Extension points are the PrivacyContributor and UserAnonymizer contracts — any new module holding personal data should implement a contributor rather than reaching into this package.
For the compliance/legal stakeholder. Request handling, legal hold (which blocks both export and erasure), rejection with recorded reasoning, staff replies, and a filterable operation audit are all in-product. Retention windows by request status and export-file expiry are configurable and enforced automatically. What it does not do: certify anything, propagate erasure to third-party processors, or replace your records of processing.
Key risks to name up front. First release (v0.1.0) — budget for upgrade churn and pin the version. Global, not per-tenant, configuration. Erasure completeness depends entirely on contributor and anonymizer coverage being verified before go-live. Mail delivery is on by default and configurable via mail.enabled — confirm the dsar_request_email routing before the first real request arrives.
How can I help you explore Laravel packages today?