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

Pathwell Bundle Laravel Package

guilhermednt/pathwell-bundle

A Symfony bundle that brings PathWell password-policy validation to your app, detecting keyboard-walk patterns and weak password topologies. Enforce stronger credentials with configurable rules and straightforward integration.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict up front: the package is mislabeled in the request. It is a Symfony Bundle, not a Laravel package. There is no Laravel service provider, no Illuminate\Validation integration, and the package depends on symfony/framework-bundle and the Symfony DI container. For a Laravel codebase this is a reference implementation to be ported, not a dependency to be installed. Treat the 0-star / 0-dependent / score-0.03 signal as "unvetted third-party code."

Architecture fit

  • PathWell is a password topology policy: each password is mapped to a keyboard-transition topology class, and passwords whose topology falls in the most common (top-N) classes are rejected. The logic is pure, deterministic, CPU-only string transformation plus a set lookup — architecturally simple and cheap to embed.
  • The packaging is the problem. A Symfony bundle assumes kernel boot, container compilation, and the Symfony validator constraint model. Laravel's validation pipeline (Rule objects, Validator::extend, Fortify/Jetstream/Breeze hooks) is a different contract. Direct installation is not viable.
  • Favorable only if the organization runs Symfony today; in that case the bundle's shape (a validator constraint plus a DI-configured topology set) is exactly right.

Integration feasibility

  • Feasible, but as an extract-and-reimplement, not an install. Scope is small: a char→key map per layout, a delta-to-symbol transform, a hash/set membership test, and a configurable top-N corpus.
  • Feasibility hinges on whether the algorithm lives in a framework-agnostic core or is entangled with Symfony services. If entangled, we own the port.
  • Effort estimate: 1 engineer, ~1–2 weeks for port + parity tests, +1 week for rollout instrumentation and UX copy.

Technical risk

  • License (highest risk): GPL-3.0 is copyleft. Internal/SaaS use is generally not "distribution," but embedding it in anything shipped to customers (on-prem, SDK, appliance, white-label) triggers source-disclosure obligations for the derivative work. Requires legal review before engineering investment. A clean-room reimplementation of the algorithm (ideas aren't copyrightable; the specific code is) is a legitimate mitigation path.
  • Abandonment: last release 2022-06-27, single maintainer, no dependents. Likely PHP 7.4 / Symfony 4–5 era constraints; PHP 8.2+ and Symfony 6/7 compatibility unverified.
  • Correctness: no evidence of parity against the published PathWell corpus or test vectors. A subtly wrong topology map silently weakens the policy.
  • Scope creep: PathWell is a supplement to, not a replacement for, NIST SP 800-63B-aligned controls (breach-list/HIBP blocking, length minimums, no forced composition/rotation). Positioning it as the primary password policy is a compliance and UX risk.

Key questions

  1. Is there a standalone, framework-agnostic core library, or is the algorithm welded to the bundle?
  2. What is the topology corpus — size, provenance, license of the data itself, and is top-N configurable?
  3. Which keyboard layouts are mapped? US-QWERTY only implies false accepts/rejects for international users.
  4. Where does the topology set live (file, DB, cache)? Per-request DB hit would be unacceptable in the auth path.
  5. Test coverage, and does it reproduce published PathWell results?
  6. Actual Composer constraints: PHP version, Symfony version, security advisory history.
  7. What is the measured user-rejection rate at our chosen top-N on our own credential corpus?

Integration Approach

Stack fit

  • Laravel (our stated stack): poor as a dependency, good as a specification. Do not attempt to boot symfony/framework-bundle inside Laravel. Instead, build a thin internal package: a PathWell service (topology map + cached set) exposed as a Laravel Rule object and a PasswordPolicy config block, wired into registration, password-reset, and password-change flows only — never login.
  • Symfony: good fit. Composer install, register the bundle, configure the corpus, attach the constraint to the relevant form types.

Migration path

  1. Legal gate — resolve GPL exposure first. Decide: internal-only use (likely acceptable) vs. clean-room reimplementation (safer for any distributed artifact).
  2. Reference port — reimplement the topology transform; do not copy GPL source. Use the bundle's behavior as the acceptance oracle.
  3. Parity harness — a fixture suite of ~10k generated + real-world-shaped passwords asserting identical accept/reject outcomes against the reference. This is the single most valuable artifact; it de-risks correctness permanently.
  4. Wrap — expose as a Laravel Rule and a config-driven policy; keep the corpus loadable from a versioned artifact, cached in memory/OPcache at boot.

Compatibility

  • Pin explicitly: PHP 8.2+, Laravel 10/11. Verify the bundle's own constraints only to inform the port; they will not be inherited.
  • Align with the existing auth stack (Fortify/Breeze/Jetstream) at the validation layer, not the controller layer, so all four password entry points inherit the rule automatically.
  • Ensure the error message is localizable and actionable ("choose a less predictable pattern"), not the raw topology string.

Sequencing

  1. Legal/license review (blocking gate).
  2. Feasibility spike: confirm algorithm extractability; 3-day timebox.
  3. Build core + parity fixtures.
  4. Shadow mode: run the rule in log-only mode on real registration traffic for 2–4 weeks; measure the would-be rejection rate and inspect false positives.
  5. Tune top-N against measured friction; set a target rejection band (e.g., 5–15%).
  6. Enforce behind a feature flag, cohort by cohort, with a help-center article shipped in the same release.
  7. Pair with breach-list checking; document PathWell as an additive control.

Operational Impact

Maintenance

  • Upstream is effectively dormant. Budget for full ownership of a fork or reimplementation: dependency bumps, PHP/Laravel major upgrades, and corpus refreshes are ours. Low absolute cost (small surface area) but non-zero and permanent.
  • The topology corpus is the real maintenance burden — it needs periodic regeneration from our own breached/observed credential data to stay relevant.
  • GPL: any internal fork stays internal; any distributed derivative must be published. Keep the reimplementation path clean if distribution is plausible.

Support

  • No vendor, no community, no dependents to consult. All documentation is ours to write. Expect zero external answers to production issues.
  • Runbooks required: how to rotate the corpus, how to disable the rule, how to diagnose a user's rejection without logging the plaintext password (log the topology class, never the credential).

Scaling

  • Negligible. A per-check hash-set lookup on an already-in-memory corpus; only fires on registration/change events, which are low-QPS relative to logins. Compute cost is noise.
  • The only scaling trap is loading the corpus per request — must be a boot-time/cached artifact, not a DB read. Verify the port does this even if the reference implementation didn't.

Failure modes

  • Corpus unavailable/corrupt → decide fail-open (accept, alert) vs. fail-closed (block registration). Recommend fail-open on registration with a P1 alert; blocking all signups because a JSON file is missing is worse than a temporarily weaker policy. Never fail in a way that locks users out of password reset.
  • Layout mismatch → international keyboards and Dvorak/AZERTY users generate topologies that either falsely match common classes or never match at all. Document the supported layout and measure rejection rates per locale.
  • Over-blocking → top-N too aggressive causes signup abandonment and helpdesk tickets that never surface as "password policy" complaints. Shadow mode is the mitigation; hard-cap the rejection rate.
  • Silent weakening → a subtly wrong key map accepts qwerty123 while dashboards look healthy. The parity fixture suite is the control.
  • Password leakage in telemetry → any logging of topology strings must be reviewed; topology strings are a lossy but real credential fingerprint.

Ramp-up

  • Low-to-moderate. The algorithm is a day's reading; the difficulty is (a) GPL clearance, (b) parity validation, (c) UX/copy and rollout tuning.
  • Realistic plan: 1 engineer, ~2 weeks to a shadow-mode release, ~1 month to enforced rollout with data-driven tuning. No specialist skills required beyond standard PHP and Laravel validation experience.
  • Recommend against adoption only if: the organization ships distributed software under a proprietary license and legal rejects the clean-room path — in that case, substitute a breach-list-only policy and lose little, since PathWell is a supplementary control rather than a baseline requirement.
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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route