jacopo/authentication-sentry
Laravel authentication integration for Cartalyst Sentry. It provides a Sentry-backed user provider and auth guard so applications can use Sentry users, credentials, and permissions through Laravel’s native authentication system.
What the package actually is. jacopo/authentication-sentry is a fork of Cartalyst's Sentry 2 (PHP 5.3+), an authentication + ACL bundle that predates Laravel's native Guard/Provider contracts. It bundles user management, groups, permission inheritance, login throttling, session/remember-token persistence, and its own schema into a single library, exposed to Laravel through a service provider and Sentry facade. The repository redirects to intrip/sentry, confirming this is a downstream patch of an upstream that has been deprecated for roughly a decade in favour of Sentinel.
Architecture fit. Poor for anything modern, plausible only for a legacy estate. Sentry assumes Laravel 4-era conventions: a service provider with string class bindings, its own persistence layer over the Illuminate\Database query builder rather than Eloquent models, its own migrations, and a Sentry::authenticate() style API that sits alongside rather than inside Laravel's auth system. It does not implement Illuminate\Contracts\Auth\Guard or Authenticatable, so it will not compose cleanly with middleware, gates, policies, or Auth::user() in any Laravel ≥5.x application. The ACL model itself (users → groups → permissions with inheritance) is sound and was widely copied; the problem is the delivery mechanism, not the conceptual model.
Integration feasibility. Low on a current stack, moderate on a frozen one. Concretely:
composer.json constraint set will pin illuminate/support and Symfony 2.x components circa 2012–2014. Those packages are not installable on PHP 7.4, let alone 8.x, and the transitive dependency tree cannot be resolved without --ignore-platform-reqs plus patching.users, groups, users_groups, permissions, users_permissions, groups_permissions, persistences, and throttle tables. Adopting it in a greenfield app means designing your user model around its assumptions, which is the inverse of what you want.Hash::make-compatible, so if the endgame is a move to native auth, credential migration is a non-issue.Technical risk. High, and concentrated in security. This is authentication and authorization code — the highest-blast-radius surface in the application — and it is:
Note that the high opportunity score (4.16) alongside a 0.23 quality score is a classic artifact: opportunity metrics reward absence of competing packages, and here the absence reflects that the niche is dead, not underserved.
Key questions before committing engineering time:
cartalyst/sentry? Every diverged file is code you own and must maintain.spatie/laravel-permission plus native guards satisfy it?Recommendation up front: do not adopt this for new development. Reserve it for a legacy system where it is already load-bearing, and scope any work as containment plus exit, not integration.
Stack fit.
Migration path (the realistic use of this package). If you are on Sentry today, treat the fork as a pinned artifact and migrate off it in phases:
"replace" / path-repository entries so Composer resolution is deterministic. Assume Packagist availability is not guaranteed.AuthService and AclService interfaces and wrap every Sentry:: call site behind them. This is the single highest-value step and is framework-agnostic. Instrument call sites to see which of Sentry's features are actually exercised — in most estates, throttling and permission inheritance are 80% of the value and the rest is dead code.Compatibility notes. Expect to need --ignore-platform-reqs or a patched composer.json, and expect the Symfony 2 component tree to conflict with anything else modern in the lock file. In a legacy app this is tolerable; in a monorepo with modern services it is not.
Sequencing for a legacy assessment (2–3 weeks of TPM + one senior engineer):
composer.lock contents, whether it installs cleanly today. This is the go/no-go.spatie/laravel-permission is the default target; estimate by call-site count, not LOC.Do not sequence a fresh Laravel integration around this package. If the requirement is "authentication plus ACL," the current answer is native guards plus an RBAC package, and the delta in effort is measured in days against years of unpatched security exposure.
Maintenance. Effectively zero upstream throughput: no release cadence, no issue triage, no security policy, no maintainer with a public commitment. Two stars and zero dependents means the community-support channel is empty. The practical consequence is that your team is the maintainer — BSD-3-Clause permits it, and internal forking is the only viable mitigation. Budget for named ownership, not "the platform team will look at it."
Support. No vendor, no SLA, no advisory feed. The upstream documentation for Sentry 2 survives only in archived form; expect to read the source to answer behavioural questions, particularly around permission inheritance edge cases and throttle reset semantics. This is fine for a stable legacy app and unacceptable for anything with an uptime commitment.
Scaling characteristics. Sentry resolves permissions through database queries against the group/permission join tables, and writes a row per login attempt to throttle. Left unmodified it will:
hasAccess() check — permission caching is mandatory above low traffic, and the cache invalidation logic is yours to write because the package predates Laravel's cache tags being idiomatic;throttle and persistences unboundedly without a pruning job, which the package does not ship;None of this is exotic; all of it is work the package does not do for you.
Failure modes, ranked by impact.
Ramp-up. Steep and shrinking. Developers who worked with Laravel 4-era facades in 2013 are now ~10+ years into their careers; the pool who can read Sentry fluently without documentation is small and shrinking every year. Realistic ramp-up for a competent Laravel developer on the seam-wrapped code is 1–2 days; on the internals of the package itself, closer to a week, and that knowledge is non-transferable to any current framework. This is the quiet cost: every hour of Sentry expertise is an hour that does not compound.
Bottom line for the roadmap. The correct investment is containment: freeze the artifact, wrap it behind interfaces, and fund the exit. Do not fund adoption. The 0.23 quality score is the honest signal; the 4.16 opportunity score is measuring an empty room.
How can I help you explore Laravel packages today?