liberusoftware/api-access-api
Laravel package for managing API access control. Register API clients, issue and revoke access tokens, define scopes and permissions, and authorize incoming requests through a clean, configurable layer that plugs into your existing auth and middleware setup.
Architecture fit. The name (module-api-access-api) and description ("API Access api presentation adapter") place this in a hexagonal / ports-and-adapters modular Laravel ecosystem: domain logic for API access control lives in a sibling core package, and this package is the HTTP delivery layer — routes, controllers, form requests, API resources, middleware, and service-provider bindings. That shape is a good fit for a platform that already organises Laravel code into modules with a shared kernel and a common module registration convention. It is a poor fit for a conventional app/Http Laravel codebase, where the adapter's value (pre-built controllers and bindings) is offset by importing a foreign directory convention, config namespace, and migration set.
The critical structural fact is that this package is a layer, not a product. It almost certainly cannot be adopted standalone: it will require the underlying api-access domain package, its contracts, and likely one or two shared Liberu support packages at compatible versions. Because that dependency set shows zero dependents and no visible release history for siblings, the first evaluation task is dependency-graph resolution, not code review.
Integration feasibility. Mechanically low effort: Composer install, Laravel package discovery, publish config and migrations, register middleware on route groups. Realistically the work is in the unknowns — whether migrations are additive or assume an existing credential/scope schema, whether the adapter owns the authorization decision or delegates to Laravel policies / a permissions package, and whether the endpoints are a stable public contract or an internal convenience API.
Technical risk. Several independent red flags compound:
| Risk | Signal | Consequence |
|---|---|---|
| Licensing | NOASSERTION |
No confirmed right to use, modify, or redistribute. Blocks commercial deployment pending legal review. |
| Adoption | 0 stars, 0 dependents | No field validation, no third-party bug surface, no answered issues. First production user absorbs all defects. |
| Bus factor | Single vendor, no visible contributors | Effectively fork-and-own; assume no upstream fixes. |
| Release hygiene | Last release dated in the future / non-standard stamp | Suggests automated or placeholder tagging; semver intent unknown; API surface may shift without notice. |
| Security surface | Auth/authorization adapter with no audit trail | Highest-severity class of package to adopt unseen. |
Key questions for the maintainer / spike.
Stack fit. Adopt only if the platform is Laravel 10+ on PHP 8.2+ and either already consumes Liberu modules or is willing to adopt their module conventions wholesale. The natural use case is a service that must expose governance over API consumers — issuing and revoking credentials, managing scopes, answering "may this consumer call this endpoint." If the need is merely authenticating first-party clients, Sanctum or Passport is a smaller, better-supported answer; this package only earns its keep when the consumer/scope model is a real domain concern.
Migration path. From nothing: greenfield — no migration cost, highest uncertainty. From an incumbent (Sanctum tokens, Passport, custom middleware): run side-by-side. Issue new credentials through the adapter while legacy tokens remain valid, enforce both middleware stacks on overlapping route groups, and log a decision comparison (legacy verdict vs. adapter verdict) until divergence is zero. Cut over one route group at a time, never the whole surface at once.
Compatibility. Pin exact versions in composer.json — do not rely on floating constraints given unknown semver discipline. Verify illuminate/* bounds against the host application, check extra.laravel.providers for auto-discovery, and diff published config keys and migration table names against existing ones before running migrate. Namespace collisions on config keys are the most common quiet failure in modular Laravel packages.
Sequencing.
NOASSERTION before any engineering hour is spent. If unresolved, stop.ApiAccessGateway) so application code never touches its Eloquent models or facades. This is non-negotiable given the maintenance risk and makes a later swap to a first-party implementation a contained change.Maintenance. Assume full ownership. With zero dependents and no visible issue history, there is no upstream triage to lean on; every defect is yours. Budget roughly 10–15% of one engineer's capacity for the first two quarters to stabilise, plus a recurring slice for Laravel major upgrades, since the adapter will need to track framework internals (middleware signatures, routing, rate limiter API).
Support. No community, no SLA, no documented escalation. Internal on-call becomes the support tier for anything touching authentication and authorization — the domain where incident severity is highest and diagnosis is slowest. Require runbooks for key issuance failure, revocation propagation delay, and "endpoint returned 200 but should have returned 403."
Scaling. The adapter itself should be stateless; the cost profile is dominated by per-request credential lookup and scope resolution. Expect at least one database read per authenticated call. Mitigate with hashed-key indexed lookups, a short-TTL cache on credential → scope mapping with explicit invalidation on revocation, and rate limiting at the edge rather than in-package. Validate that revocation is not cache-deferred beyond an acceptable window — this is the most common scaling shortcut that turns into a security incident.
Failure modes, ranked.
NOASSERTION provenance. Mitigate with the blocking legal gate.migrate in staging.Ramp-up. One engineer, roughly one to two weeks to productive contribution — assuming documentation exists. Assume it does not: plan for source-reading, and have that engineer produce the missing docs as the deliverable of the audit spike. Team-wide familiarity is not required if the anti-corruption layer holds.
Recommendation. Do not adopt on the strength of the package alone — the score, adoption, and licensing signals do not support it. Treat it as a reference implementation: a three-day audit plus a fork into internal ownership is defensible if the API-access domain is genuinely on the roadmap and the license resolves cleanly. If either the license or the dependency graph fails the gate, build the delivery layer in-house against a maintained foundation (Sanctum plus a scope model); that path costs perhaps two to three weeks more and removes the entire single-vendor and licensing risk class. Decision gate: license clarity, green test suite, complete dependency resolution, and a working pilot endpoint — all four, or no-go.
How can I help you explore Laravel packages today?