Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Safely Delete Laravel Package

konnco/filament-safely-delete

A Filament plugin that makes deleting records safer by adding confirmation safeguards to the delete action, helping prevent accidental data loss in your admin panels. Quick to install and easy to drop into existing resources and tables.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Unchanged: the package is a thin Filament panel plugin that registers a service provider and swaps/augments Filament's default DeleteAction with a guarded variant. It lives entirely in the presentation/admin layer and does not touch Eloquent models, migrations, or domain services.
  • Still architecturally "safe" to adopt — low coupling, no schema changes, no data-layer opinions — and still delivers accidental-deletion friction, not recoverability. Not a substitute for soft deletes, audit logging, or authorization policies. Frame it to stakeholders as a UX guardrail, not a data-protection control.
  • Fit remains strongest where teams already run Filament 2.x as their internal admin surface.

Integration feasibility

  • Mechanically trivial: composer require konnco/filament-safely-delete, register in the PanelProvider, replace the stock delete action where needed. Sub-day POC for a Filament-fluent engineer.
  • 0.3.2 materially improves the feasibility answer for Laravel 10 (PR #9), which was previously a likely blocker. Confirm the composer.json constraint actually permits Laravel 10.x on our PHP minor, and re-run the install in a scratch panel rather than trusting the PR title.
  • The release does not address Filament 3. The version-alignment question is now narrower but still the gating one: Laravel 10 yes, Filament 3 no evidence.

Technical risk

  • Staleness / abandonment (medium-high, downgraded from high): 0.3.2 is the first release in roughly a year, and it includes a first-time external contributor (@thyseus, two functional PRs). That is a mild positive signal on responsiveness and bus factor — but the release is maintenance-grade (dependency widening, CI metadata bumps, one behavior tweak), not a sign of active feature investment. Still 34 stars / 0 dependents: no downstream validation. Treat as low-activity rather than definitively abandoned.
  • Framework drift (high, unchanged): Filament 3 changed the action API materially and moved to Livewire 3. Nothing in 0.3.2 suggests v3 support. A v2-pinned plugin on a v3 panel will fail to boot, silently fail to override the action, or collide with other plugins decorating DeleteAction.
  • False sense of safety (medium): The guard shapes the UI; it is not an enforcement control against intent or automation. Must never be presented to auditors or leadership as a deletion/retention control.
  • New — guard is bypassable in test environments (medium): PR #3 skips validation when the app runs in the testing environment. This is convenient for existing suites but means our own automated checks cannot assert that the guard blocks deletion; the code path we most want to protect is the one disabled under test. Verify exactly what "validation" means here (server-side rule vs. modal input check) — it implies a server-side validation hook exists, which partly answers the earlier open question, but it also means the guard's real behavior is only observable in staging/production.
  • Surface area is small (mitigating): likely a few hundred lines; forking or reimplementing remains cheap, capping downside.

Key questions

  • Which Filament major does the target panel run? 0.3.2 widens Laravel support to 10 but gives no Filament 3 signal — this remains the go/no-go question.
  • What precisely does the new testing-environment skip disable — the whole guard, or only an input validation rule? Does it key off APP_ENV or the testing environment name (i.e., can it be inadvertently triggered in a staging config)?
  • Is the guard enforced server-side (action authorization/halt/validation) or purely client-side (countdown UI)? PR #3 hints at validation, but confirm.
  • Does it cover bulk delete, relation-manager deletes, and global/table actions, or only the row-level delete?
  • How does it interact with soft-deletable models, DeleteAction policies, and existing confirmation modals — stack or replace?
  • Are the new contributors likely to continue? Is there any signal of a Filament 3 branch or issue triage?
  • What is the actual business driver — misclick prevention for junior admins, or compliance-grade deletion control?

Integration Approach

Stack fit

  • Best fit is now explicitly Laravel 9/10 + Filament 2.x + PHP 8.1+. If the target panel is Filament 3.x, still assume a port is required before adoption.
  • Poor fit where deletion is a regulated/audited operation — no immutable deletion trail; pair with soft deletes and an audit log regardless.

Migration path

  • Adoption is a plugin registration plus per-resource action substitution — reversible in a single commit. Removal is equally cheap (revert registration, restore stock DeleteAction). Low lock-in remains the strongest argument for a time-boxed trial.
  • If a Filament 3 port is needed, fork the MIT source internally rather than waiting upstream; the native alternative (custom DeleteAction with requiresConfirmation() and a modal schema) remains a well-trodden pattern and may be cheaper than owning a fork.

Compatibility

  • Validate explicitly against: Filament major, Laravel minor (10 now plausibly supported — verify the constraint, don't infer it), Livewire version, PHP version, and any other plugin overriding DeleteAction.
  • Test on three model classes: standard, soft-deletable, and one with a restrictive delete policy.
  • Add a fourth check specific to 0.3.2: run the panel in a non-testing environment (staging) to confirm the guard actually engages, since testing-env validation is now skipped by design.

Sequencing

  1. Spike (1–2 days): Install in a scratch panel on the target stack; confirm boot, action override, and guard behavior. Include a Laravel 10 + Filament 2 confirmation and an explicit Filament 3 negative check.
  2. Compatibility matrix: Three-model test plus bulk-delete and relation-manager coverage; document the testing-environment bypass.
  3. Build-vs-fork decision gate: If incompatible with our Filament version, choose internal fork or native reimplementation — do not ship an unported dependency.
  4. Pilot: One low-risk resource in staging (not testing env), then production, behind a feature flag where possible.
  5. Rollout & docs: Expand resource-by-resource; document scope and non-coverage (bulk deletes, API/console deletes, test-env bypass).
  6. Exit criteria: Define triggers now — Filament upgrade, upstream inactivity resuming past a defined threshold, or native Filament capability superseding it.

Operational Impact

Maintenance

  • Runtime maintenance is still near-zero; ownership maintenance is the burden. One patch release does not change the operating assumption: budget a named owner and a fork-internal policy.
  • The 0.3.2 bump to Laravel 10 compatibility slightly extends the useful life, but nothing here reduces the Filament-major upgrade risk — this package will still be among the first things to break on a Filament 3 migration.

Support

  • Community-only and thin (34 stars, 0 dependents). The arrival of external contributors is encouraging but not a support channel. Internal engineering remains the escalation path; the documented fallback is "swap to native DeleteAction."
  • Do not let stakeholders infer vendor SLAs from the new release cadence.

Scaling

  • Negligible performance footprint: no queries, no schema, no background work — it shapes a modal.
  • Scaling concern remains organizational: per-resource opt-in becomes configuration sprawl as teams/resources grow. Standardize via a base resource or trait if adoption spreads.

Failure modes

  • Silent regression (now harder to detect): After a Filament or package upgrade the plugin may fail to override the action, reverting to unguarded delete with no error — and because validation is skipped in the testing environment, a unit/feature test asserting the guard blocks deletion will not catch this. Mitigate with a staging smoke test (Playwright/Dusk against a real environment) rather than a PHPUnit assertion.
  • Boot failure: Hard incompatibility surfaces as a panel boot exception — noisy but safe.
  • Guard bypass: Client-side-only guards are defeated by keyboard/automation; document as UX-only.
  • Coverage gaps: Bulk delete, relation managers, and API/console deletes remain unguarded.
  • Plugin collision: Another table plugin overriding DeleteAction can silently win; test the composed panel, not the plugin in isolation.
  • New — environment-dependent behavior: The testing-env skip introduces a behavioral divergence between test and production. Confirm the trigger condition so it cannot fire in staging or a misconfigured production environment.

Ramp-up

  • Engineering: hours for a Filament-fluent developer; a day or two if a Filament 3 port is required. Add a small amount of time to understand the testing-env bypass before writing any regression tests around the guard.
  • Admin users: a short note on the countdown behavior is sufficient.
  • Product/risk stakeholders: the important ramp-up stays conceptual — this is misclick friction, not a deletion control; soft deletes plus audit logging remain the actual safety net.

TPM recommendation (revised): 0.3.2 is a maintenance release that removes the Laravel 10 blocker and shows early signs of life (first external contributor, two functional PRs). It does not change the strategic picture: no Filament 3 support, no downstream validation, thin value surface, and now a test-environment gap that weakens our ability to regression-test the guard. Keep the default path — use it as a short-lived stopgap or reference implementation, or fork the MIT source under internal ownership — and invest the real safety budget in soft deletes, authorization policies, and audit trails. Re-evaluate only if upstream ships Filament 3 support or a release cadence resumes.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource