juliomotol/filament-password-confirmation
Adds password confirmation to Filament actions and pages, prompting users to re-enter their password before sensitive operations. Simple setup via a reusable action or page trait to protect critical admin panel tasks.
Architecture fit
juliomotol/filament-password-confirmation is a Filament panel plugin that reintroduces a password-confirmation ("sudo mode") gate in front of sensitive panel actions — the pattern GitHub/Stripe use before account-level changes. Architecturally it is a thin, additive layer: a service provider, a Livewire/Filament action or middleware hook, and a modal view. It does not own domain data, does not require schema changes, and does not intercept application models. That makes it a low-coupling fit for any Filament-based admin surface.
v1.2.0 adds a revealable() affordance to the confirmation password input. This is a UX-only, opt-in, additive change — it does not alter the confirmation flow, the gating logic, or any published config. The remaining changelog items are a typo fix and a Dependabot bump of dependabot/fetch-metadata (CI-only, no runtime artifact). Net technical delta of this release: negligible risk, small usability improvement.
Integration feasibility
High. Standard composer require followed by plugin registration in the target PanelProvider. No migrations, no queue workers, no external services, no new environment variables implied by this release. A developer familiar with Filament should complete a first integration in well under a day, most of which is deciding which actions should be gated rather than wiring the package.
Technical risk
@lloricode is a first-time contributor here). Small surface area mitigates this — the code is likely forkable in an afternoon.Key questions
revealable() on by default or strictly opt-in? (Confirmation: opt-in, per the PR — but verify against docs.)Stack fit Requires a Laravel + Filament panel. Fits cleanly alongside existing Filament plugins (Spatie permissions, Shield, etc.) since it does not touch the authorization layer. If our admin surface is Filament-based, this is close to a drop-in; if we are on Nova or a custom Blade admin, it is not applicable.
Migration path Greenfield: register the plugin, enable the gate on a small set of high-risk actions first (user impersonation, API key issuance, role changes, billing settings), then expand. There is nothing to migrate — no data model, no stored state beyond a session flag. Rollback is uninstalling the package and removing the plugin registration line.
Upgrading from v1.1.0 to v1.2.0 is a patch-level composer bump with no code changes required on our side. revealable() is opt-in; existing integrations behave identically after upgrade.
Compatibility Validate the declared Filament/PHP constraint matrix against our pinned versions before merging — this is the single gating check. Laravel version support should be confirmed but is unlikely to be the blocker. CI for the package is Dependabot-driven, which is a reasonable signal for dependency hygiene but is not a substitute for a test suite covering the confirmation flow.
Sequencing
revealable() enabled, run an accessibility pass on the reveal toggle.Maintenance Low ongoing burden, but non-zero. Expect to track Filament majors as the dominant maintenance cost. The package's small footprint means we can vendor/fork it if the maintainer goes dormant — a reasonable contingency given the bus factor. Dependabot activity in the repo is a positive hygiene signal, though the v1.2.0 bump is to the CI action, not to runtime dependencies, so it should not be read as a security patch.
Support No commercial support; community-only via GitHub issues. Internal support burden falls on whoever owns the Filament panel. Document the gate's TTL and scope in the runbook so on-call can answer "why did my action get blocked" without spelunking the code.
Scaling Runtime cost is effectively zero — a session check plus an occasional modal render. No database writes in the confirmation path beyond standard session persistence. At scale, the only consideration is session store behavior: if we run a multi-node setup with a shared Redis session, the confirmation flag propagates correctly; sticky-session or in-memory session drivers could cause confusing re-prompts.
Failure modes
Ramp-up Minimal. Any Filament-competent developer is productive in under a day. The real ramp-up is policy, not code: agreeing which actions require confirmation, what the TTL should be, and how SSO users are treated. Drive that decision before the first production deploy — retrofitting a bypass policy after users are blocked is more expensive than specifying it up front.
How can I help you explore Laravel packages today?