filagora/filagora-logs
Filagora Logs is a Laravel package for recording and browsing application activity logs. It captures events and model changes, stores them in a searchable timeline, and provides configurable audit trails for admins and developers.
mail_log_retention_days (default 60, 0 keeps forever) gives you a configurable, auditable data-lifecycle control. That is a checkbox item in most vendor questionnaires ("how long do you retain email content?") and a defensible default you can quote in a DPA.EmailLog::forRecipient()), export/erasure hooks, and timed pruning. Adopting beats maintaining a bespoke email audit table with your own DSAR scripts.forRecipient() pairing gives you a working implementation instead of a spike.0 as explicit "keep forever" is the right shape for a policy reviewed by legal; check that your jurisdiction and contract terms agree with the default before shipping.forRecipient() matching semantics, what "erase" actually removes vs. anonymises) deserves a read of the source before you rely on it in a DSAR workflow.To executives: This release closes a gap that shows up in enterprise security reviews. We can now export or erase a person's email history on request and enforce a documented retention window (60 days by default, configurable) — the two questions legal and procurement ask most often about stored communications. It ships as an opt-in layer, so it costs nothing for customers who don't need it and becomes a credible paid-tier differentiator for those who do.
To engineering: The package registers EmailLogContributor with core's privacy registries, so export, erase, and prune all run through the host's existing pipeline — no bespoke DSAR endpoint, no coupling to filagora-compliance at install time. Retention is a single setting (mail_log_retention_days, default 60, 0 disables pruning). Two things to review before adoption: recipient matching reuses forRecipient() semantics (confirm it covers aliases and forwarded addresses), and the address must be captured before account anonymisation — make sure that ordering is enforced in our erasure flow and covered by a test. Given the v0.x version and the sensitivity of the surface, budget a short spike and a read of the contributor source rather than adopting blind.
How can I help you explore Laravel packages today?