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.
Architecture fit: The package is a Laravel-native compliance module that plugs into Filament for administration and relies on filagora/filagora-core for access checks, retention rules, contributor registration, and settings. It fits well if the platform already uses Laravel + Filament and the Filagora core package. The domain model is broad: DSAR workflow, cookie consent, policy versioning, retention, export/erasure orchestration, audit, and mail/events. For a TPM, the main architectural value is that it centralizes privacy operations behind services (PrivacyRequests, CookieConsent, PolicyAcceptance) rather than requiring every feature team to implement DSAR logic. The package is opinionated but extensible via swappable models, contributor registration, configurable abilities, and optional CMS/entitlements integrations.
Integration feasibility: Feasible for a Laravel/Filament stack, but this is a v0.1.0 first release with a pre-1.0 core dependency (filagora/filagora-core ^0.2.1). Treat it as an early-adopter integration, not a drop-in commodity. The package provides migrations and a schema snapshot for filagora:adopt, which helps adoption on an existing site, but schema compatibility must be validated against our database. The Filament screens are valuable for operations teams, but the package does not appear to provide end-user-facing request submission or cookie consent UI; those likely need to be built or integrated separately. Frontend integration points are services and events, so the product surface may need custom UI work.
Technical risk: Primary risks are pre-1.0 API churn, tight coupling to core, incomplete contributor registration leading to incomplete export/erasure, and operational misconfiguration (mail, routes, retention windows, anonymizer columns, legal hold). Export/erasure runs through contributors and an anonymizer in one transaction; that is good for consistency, but a single failing contributor can block erasure. Retention failures are reported and mailed but do not stop other rules, which is resilient but requires monitoring. Export files are deleted after a configured number of days while requests are kept; storage location, access control, and deletion guarantees need verification. The default anonymizer replaces configured identity columns; if the configuration misses a field, PII may remain.
Key questions:
v0.1.0 and filagora-core ^0.2.1? Are breaking changes expected before 1.0?PrivacyContributor implementations discovered/registered, and how do we verify coverage across all data stores?filagora-entitlements required for production authorization?filagora:adopt handle schema drift if our existing tables differ from the snapshot?Stack fit: Strong fit for Laravel + Filament + Filagora core. The package requires only core and treats filagora-entitlements as optional. If we already use Filament for back-office operations, the admin screens reduce build effort for privacy requests, cookie groups, policy versions, audit, and KPI reporting. If we do not use Filament, the services and events are still usable headless, but much of the release’s value is in the admin UI.
Migration path: Start with a staging installation pinned to v0.1.0 and core ^0.2.1. Run the package migration or filagora:adopt against a copy of production schema. Validate the eight tables, indexes, and model mappings. Configure filagora-compliance.models only if we need custom models. Register contributors for each system that holds personal data. Configure anonymize.attributes carefully and test erasure against representative users. Configure settings (dsar_request_email, cookie_policy_page, privacy_page), named routes for mail links, and mail enablement. Build any missing frontend surfaces (DSAR form, cookie banner, policy acceptance) against the provided services. Roll out in phases: admin-only first, then internal DSAR handling, then public request intake, then automated retention.
Compatibility: Confirm Laravel, PHP, Filament, and Filagora core versions. The package declares a core dependency but not necessarily upper bounds for Filament/Laravel in the notes; verify composer.json. The optional CMS listener for cookie policy versions only applies if filagora/filagora-cms is installed. The schema snapshot is a compatibility aid but not a guarantee; test against our actual schema. Plan for pre-1.0 upgrades by isolating package-specific code behind our own service wrappers where practical.
Sequencing:
PrivacyContributor classes; test export/erasure coverage.filagora:compliance:prune, monitoring for retention failures, export storage lifecycle, audit review process.Maintenance: Expect active maintenance during the pre-1.0 period. Track core and package releases, especially breaking changes to services, abilities, config keys, and schema. Custom models and contributors become our maintenance surface. Filament upgrades may require plugin updates. The single migration for eight tables simplifies initial install but may complicate selective schema changes later; use the swappable models and migration strategy carefully.
Support: Clarify vendor support for v0.1.0. If this is community-supported or early-stage, we need internal ownership for Laravel/Filament debugging and compliance correctness. Legal/compliance teams must own policy content, retention windows, and DSAR response timelines. The package provides tooling, not legal advice.
Scaling: Database load is modest for typical DSAR volumes, but export generation can be heavy if contributors scan large datasets. Run exports asynchronously if the package does not already queue them; verify. Retention pruning runs daily and may process many records; monitor duration and failures. Export file storage grows with request volume; the delete_export_after_days setting controls file retention, but request records remain. Audit tables will grow; confirm whether they are pruned.
Failure modes: Retention rule failure is reported and mailed but does not stop other rules; ensure the DSAR mailbox is monitored. Export generation failure should be visible to staff and audited. Erasure is transactional across contributors and anonymizer; a failure blocks erasure and may require manual remediation. Legal hold blocks fulfillment, which is correct but must be applied reliably. Mail failures or misconfigured routes could violate notification requirements; test and monitor. Incomplete contributor registration is the highest-risk failure mode because it can produce incomplete exports or leave PII behind after erasure.
Ramp-up: Operations staff need training on the Filament screens, status transitions, legal hold, rejection, reply, export download, and audit review. Engineering needs familiarity with Laravel service bindings, Filament plugins, contributor patterns, and the core package’s access/retention APIs. Compliance/legal needs to define retention windows, policy versioning workflow, DSAR mail content, and approver roles. Plan a staged ramp-up: read-only audit and KPI review first, then supervised DSAR handling, then production autonomy.
How can I help you explore Laravel packages today?