androsamp/filament-resource-lock
EditRecord pages, leveraging Livewire’s reactivity and Filament’s component ecosystem. The package extends Filament’s existing patterns (e.g., Concerns, Resources/Columns) without forcing architectural changes.RichEditor, Select). This reduces the need for third-party diff libraries or custom implementations.HasResourceLocks to the model.InteractsWithResourceLock to the EditRecord page.ResourceLockColumn in the list table.filament-resource-lock.release) for soft unlocks.wire:navigate) and Livewire’s reactivity. Broadcast mode requires minimal Echo setup (e.g., publishing JS assets and configuring channels).resource_locks and optionally resource_lock_audits), which can be scoped to specific models or shared globally. Migrations are published but not run by default, giving control over schema changes.heartbeat) avoid this dependency but trade off latency (~10s refresh vs. real-time).max_entries_per_resource), but misconfiguration risks bloating the database.HasAuditDiffPreview, adding maintenance overhead for non-standard UI components.APP_URL correctness. Misconfigured URLs may break unlock flows, especially in multi-tenant or dynamic-domain environments.auth()->user()->can() for actions like save_and_unlock. Teams using custom permission systems (e.g., Gates, Policies) may need to adapt or extend the package.max_entries_per_resource need adjustment?HasAuditDiffPreview implementations?save() in EditRecord pages? If yes, audit functionality may need explicit reintegration.composer dump-autoload may be needed after local code changes.)APP_URL mismatches?EditRecord pages to identify candidates for locking (e.g., high-conflict resources like Users, Orders).heartbeat) on a single resource to validate core locking behavior.config/filament-resource-lock.php to use broadcast mode.EditRecord pages. Custom Livewire components outside Filament are unaffected.save() hooks, which may conflict with existing model observers or listeners. The package provides explicit guidance for overriding save() while preserving audit functionality.BROADCAST_DRIVER in .env.composer require androsamp/filament-resource-lock
php artisan filament-resource-lock:install
php artisan migrate
config/filament-resource-lock.php for TTL, storage driver, and permissions.heartbeat and broadcast modes in staging.HasResourceLocks to models and InteractsWithResourceLock to EditRecord pages.ResourceLockColumn in list tables for visibility.HasResourceAudit to pages requiring history.save() if needed (see README).max_entries_per_resource) or custom diff support for non-standard fields.How can I help you explore Laravel packages today?