bestora/laravel-filament-activity-log
A Filament plugin for browsing and managing activity logs—track model changes, user actions, and events in a dedicated panel resource with filtering, timelines, and easy integration into your Laravel admin.
Architecture fit: The package is a Filament plugin for activity-log inspection. v0.0.3 strengthens fit with Filament admin panels by linking activity subjects to their resource edit pages, rendering model diffs in a dedicated “Changes” section, and expanding locale coverage. It remains a presentation-layer extension over an existing activity-log data model, likely Spatie laravel-activitylog, rather than a new persistence layer.
Integration feasibility: Moderate and mostly configuration-driven. Existing Filament resources can resolve subject links automatically; child models without their own resource can use HasCustomActivityResource to map to a parent resource. The diff section reuses the properties view and is hidden when no diff exists, limiting UI impact. The main integration work is verifying resource resolution, authorization, and the new column-visibility default.
Technical risk: Early-stage package risk remains because this is v0.0.3. The visible-by-default “Changes” column is a behavioral change that may surprise existing users; the new resources.hide_properties_column_by_default config option provides a rollback path. Link rendering depends on resolvable subject resources and may expose links to records the viewing user cannot edit unless Filament authorization is correctly enforced. Diff rendering can also surface sensitive old/new values if activity properties are not curated.
Key questions:
HasCustomActivityResource behave for soft-deleted or missing parent records?true?changes key?Stack fit: Suitable for Laravel applications using Filament admin panels and an existing activity-log model. It adds value where operators need to inspect who changed what, jump to the affected record, and review old → new values without leaving the activity view.
Migration path: From v0.0.2 or an unassessed baseline, publish/update package config, decide whether to preserve the prior UI by setting resources.hide_properties_column_by_default to true, and verify translated labels after the locale update. For child models, add HasCustomActivityResource only where subject records should link to a parent resource edit page.
Compatibility: Treat as early-stage semver. Validate PHP, Laravel, Filament, and activity-log dependency constraints in a non-production environment before rollout. Pay particular attention to Filament resource URL generation, policy checks, and localization caching.
Sequencing:
hide_properties_column_by_default according to desired UX.HasCustomActivityResource mappings for child models where needed.Maintenance: Low-to-moderate. The package surface is small, but v0.0.x releases may continue to change defaults and configuration. Track release notes for behavioral changes such as the new column default.
Support: Improved by broader locale coverage for the changes key, reducing missing-translation reports. Support burden will concentrate on subject-link resolution failures, permission expectations, and confusion around the new visible-by-default column.
Scaling: Activity tables and diff sections can grow with audit volume and payload size. Ensure the underlying activity table is paginated/indexed and that large diffs are truncated or curated. Link generation adds per-row resource resolution overhead, so monitor performance on high-volume activity lists.
Failure modes: Links silently not rendered when subjects are unresolvable; links pointing to resources the viewer cannot edit; deleted or soft-deleted subjects; missing parent mappings for child models; unexpected column clutter after upgrade; sensitive values appearing in diffs; stale translation caches. Tests cover the no-resolvable-subject link case, but authorization and data-redaction behavior should be explicitly validated.
Ramp-up: Low for teams already familiar with Filament resources and activity logs. Teams new to the package need a short orientation on config publication, the HasCustomActivityResource trait, and how subject resolution maps activity records to Filament edit pages.
How can I help you explore Laravel packages today?