mphpmaster/laravel-nova-blueprint-permission
Blueprint-style permission management for Laravel Nova: define roles and permissions declaratively, attach them to Nova resources, and keep access control consistent from one centralized interface. Built for teams that want readable, version-friendly authorization setup.
laravel-shift/blueprint so one YAML draft emits Nova resources plus policies wired to spatie/laravel-permission. This is the decision it informs best — do we write Nova resources and permission scaffolding by hand, generate them, or adopt a generator like this one? Because it sits in require-dev, trials are cheap and fully reversible, which lowers the bar for a spike.blueprint:build + git diff --exit-code CI pattern is a governance decision worth making regardless of vendor: it makes drafts the only place Nova resources are authored.viewAny <model> vs index <model>) across every resource is a durable decision this package supports — and one you can keep even if you drop the package.Consider it only when all of these hold:
spatie/laravel-permission with default-ish config (default guard, standard table names).3.0.0 release whose only notes are a compare link, bus factor is the dominant risk.Look elsewhere when:
models: / migrations: / policies: sections; without that substrate it delivers nothing.^2.0 and defer.To executives: This is not a platform bet. It's a small, dev-only code generator that removes repetitive work when standing up admin screens in our Laravel/Nova back office — roles, permissions, and policies scaffolded from a single version-controlled spec instead of hand-written per model. Cost of trying it is a short, time-boxed spike; cost of walking away is zero because it never ships to production. The honest caveat: it is a 3-star, single-maintainer package with no published changelog for its latest major version. I recommend we treat it as a reference implementation and pattern source — adopt the draft-as-source-of-truth and CI drift-check workflow outright, and decide on the dependency itself only after a one-sprint spike. Recommendation: explore, don't standardize.
To engineering: composer require --dev. Confirm a Nova resource and its policy land in app/Nova/ with the expected permission gates from one existing draft. Two things to verify before we go further: (1) the guard referenced in generated policies matches auth.guards, and (2) every generated file's path, because "it didn't generate" is usually drafts in the wrong directory — Blueprint reads drafts/ at the project root. Pin ^3.0 only after reading the 2.0→3.0 compare link; otherwise pin ^2.0. Keep customizations in published stubs and traits, never in vendor or generated files. If the generator proves brittle, we fall back to an in-house stub set — the output shape is the valuable part, not the package.
How can I help you explore Laravel packages today?