archived_at timestamp). Fit for CRUD-heavy apps where historical data retention is needed without hard deletes.archivable trait (or manual archived_at column). Migration risk if models lack this structure.ArchiveAction callbacks.SoftDeletes trait if both are used (e.g., archived_at vs. deleted_at). Mitigation: Explicitly document trait conflicts in architecture decisions.archived_at could impact queries if not indexed. Recommendation: Add DB index for archived_at during migration.archived_at column/trait to models).archived_at filters under load.spatie/laravel-filament-resource-table lack archiving features.archived_at column to target models (if missing):
Schema::table('models', function (Blueprint $table) {
$table->timestamp('archived_at')->nullable()->after('deleted_at');
});
composer require okeonline/filament-archivable joelbutcher/laravel-archivable
app/Providers/Filament/PluginServiceProvider.php:
public function register(): void
{
$this->plugin(ArchivablePlugin::make());
}
public static function table(Table $table): Table
{
return $table
->actions([
ArchivableAction::make(),
])
->filters([
ArchivedFilter::make(),
]);
}
ArchiveAction but must use Filament’s action system.ArchivedFilter is static; dynamic filters require subclassing.okeonline/filament-archivable and joelbutcher/laravel-archivable for breaking changes.archived_at column.").archived_at column exists and is nullable.archived_at queries should be indexed:
Schema::table('models', function (Blueprint $table) {
$table->index('archived_at');
});
deleted_at; confirm archived_at behavior).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Plugin conflicts with Filament | Broken UI/table actions | Test in staging; isolate plugin in a feature branch. |
archived_at column missing |
Silent failure (no actions/filters) | Add pre-deployment DB checks. |
| Concurrent archiving race conditions | Data corruption (e.g., duplicate archived_at) | Use transactions or Laravel’s freshTimestamp(). |
| Large dataset filtering | Slow queries/timeouts | Add DB indexes; paginate archived results. |
| Plugin unmaintained | Security/vulnerability risks | Fork and maintain internally if critical. |
How can I help you explore Laravel packages today?