liberusoftware/roles-permissions-api
A Laravel package that exposes roles and permissions over a REST API. Manage role assignments, permission checks, and access control from any frontend or service, with ready-made endpoints and configurable middleware for your application's authorization layer.
Architecture fit. The package is scoped narrowly as a presentation adapter — a delivery-layer shim that exposes roles and permissions over HTTP on top of a separate domain module. That is a defensible hexagonal/ports-and-adapters boundary, and it is the right shape if we are already committing to the liberusoftware module family. It is the wrong shape if we are not: an adapter without its domain counterpart is not installable in any meaningful sense, and adopting it implies adopting the sibling module-roles-permissions domain package, its persistence assumptions, and its release cadence. We should treat the unit of evaluation as the module family, not this package in isolation.
Integration feasibility. Mechanically this is a standard Laravel package: Composer install, service-provider auto-discovery, presumably publishable config and routes, and middleware-gated endpoints. None of that is hard. The difficulty is evidentiary: with zero stars, zero dependents, and no public integration reports, there is no proof that the package resolves against any public Laravel version, that its route registration survives a real app's middleware stack, or that its API contract is versioned. We would be the first integrator, which means we absorb the discovery cost.
Technical risk.
NOASSERTION) — blocking. This is not a style nit. An unrecognized license means we cannot assert redistribution or derivative-work rights, and legal will not clear it for a commercial product. Resolve before any code is written.2026-10-26 last-release date is either a forward-dated tag, a mistagged build, or a repository metadata error. Any of the three undermines confidence in the release process and complicates pinning a trustworthy version.Key questions for the maintainer.
Stack fit. Only viable on Laravel with Composer and the liberusoftware module ecosystem. There is no framework-agnostic path here — the adapter is bound to Laravel's container, routing, and middleware contracts. If any part of our stack is outside that ecosystem (Symfony components, a separate auth service, a non-Eloquent permission store), the adapter becomes a translation layer we have to write ourselves, at which point its value collapses.
Migration path. Do not position this as a replacement for spatie/laravel-permission or Laravel Gate/Policy. It is an edge concern — the HTTP surface for authorization administration — not the authorization decision engine. Two realistic paths:
A third path — installing the adapter beside an existing permission system — should be rejected. Two admin APIs over two permission stores produces drift and, eventually, a privilege-escalation incident.
Compatibility. Unknown and unverified. Assume nothing about Laravel 11/12 support until CI is inspected. Treat the constraint as "unknown, must be proven in a spike," not "probably fine."
Sequencing.
composer.json constraints, the test suite, and GitHub Actions. Kill the evaluation if there is no automated test coverage.Maintenance. Assume we own it. Zero dependents and a single maintainer mean upstream fixes arrive on the vendor's schedule, if at all. Budget for a standing fork with a documented rebase procedure, and expect that procedure to be exercised rarely enough that it becomes expensive. Add the fork to the dependency-review queue so it does not silently rot.
Support. No community, no Stack Overflow corpus, no third-party tutorials. Support is a direct line to one vendor, with no SLA. Internal runbooks must be written by us, from the spike, because there is no external documentation to fall back on. Escalation path for a production authorization bug is: our on-call engineer, then the vendor, then the fork.
Scaling. The adapter itself is thin — request routing, serialization, and middleware — so it will not be the throughput bottleneck. Scaling pressure lands where it always does: the permission lookup path and its cache. Confirm that role/permission resolution is cached and that mutations invalidate correctly; on a hot authorization path, an uncached per-request permission query will dominate latency long before the adapter does. Statelessness is assumed; verify no session or in-process state is held in the adapter layer, or horizontal scaling breaks.
Failure modes.
route:list on every upgrade.Ramp-up. Modest for a Laravel-fluent engineer — a day or two to read the routes, middleware, and dependency wiring. The real cost is not learning the package, it is the surrounding ceremony: license clearance, the fork, the spike, the OpenAPI snapshot, and the runbook. Call it 3–4 engineer-weeks to production-grade adoption, versus 2–3 weeks to build an equivalent adapter in-house against our existing permission core — with no license encumbrance, no fork to steward, and full control of the contract. On the evidence available, building is the better trade unless the license clears cleanly and the domain module proves genuinely load-bearing for us.
How can I help you explore Laravel packages today?