laravel-chronicle/filament
Filament plugin for Laravel Chronicle that surfaces audit logs in your admin panel. Browse, search, filter, and inspect recorded model events and field-level changes, with a dedicated resource for reviewing activity history and debugging data updates.
->visible()), so a crafted direct invocation could still trigger verify/export/report handlers. Execution-time authorization is now re-checked on every gated action, using the same gate as visibility, so the two can never disagree. Note the vendor's own calibrated severity — there was no ledger mutation path, no synchronous decrypted data exposure (exports run through a queued job), and the one write path (GDPR erasure) already enforced execution-time authorization. This is hardening, not breach remediation; it should not be escalated as an incident.ExecutionTimeGuardTest, which bypasses visibility exactly as a crafted request would and asserts denial (notification sent, no work performed) for every gated action, plus a structural tripwire pinning the exact set of registered actions. That converts "we fixed it" into "this class of gap cannot silently reappear" — a meaningfully stronger commitment to put in front of a security reviewer or auditor.composer update. Low cost, low risk, real (if modest) risk reduction — an easy yes, but not a reason to interrupt a release freeze.Consider adoption when:
Look elsewhere when:
On 1.5.0 specifically: adopters with custom actions registered against the resource must add their own execution-time denial tests — the tripwire now expects each gated action to refuse at execution. That is the one piece of follow-up work the upgrade creates.
For executives: This release is a security hardening update to our audit-ledger plugin, and it is deliberately framed as low-urgency. The gap it closes was narrow: admin panel buttons were hidden from unauthorized users but the underlying handlers did not re-check permission when called directly. The vendor is explicit that no ledger entry could be altered, deleted, or reordered, no decrypted data was returned to an unauthorized caller, and the highest-risk action (GDPR erasure, the only write path) already had the check. We should take the update for the hardening, but it does not warrant an incident review or a release-freeze exception. The upgrade is a one-line dependency bump with no API or config changes, and authorized users see no difference. Strategically, the more valuable signal is that the vendor now ships an automated test that fails if any future action is added without an execution-time permission check — that is a durable control we can point to in security questionnaires and audits, and it materially reduces the chance of this class of regression recurring.
For engineering: composer update laravel-chronicle/filament, no migrations or config changes. Every gated action now re-checks its gate at execution using the same gate as its ->visible(), removing the render-time/execution-time divergence. New ExecutionTimeGuardTest reaches real handlers with the gate forced off and asserts denial plus no side effects; a structural tripwire pins the registered action set and fails with guidance when a new action appears. Action required: if we have custom actions registered against the resource, add denial tests for them or the enforcement test will fail. Recommend scheduling in the next routine dependency window rather than as a hotfix.
How can I help you explore Laravel packages today?