Repository navigation
Added
php artisan concierge:installdetects the app, asks only what it can't detect, and sets concierge up, printing one line per step (#144).- It detects the starter kit (Vue, React, Svelte, Livewire or none), WorkOS AuthKit, the sign-in, the user model, any team or organisation model, and Spatie's setup.
- It asks whether to adopt a team model, which mode to use, and whether to turn on local login, each with a flag;
--no-interactiontakes the defaults. - It publishes and configures Spatie permission, writes
config/concierge.php, migrates and syncs roles. - It never rewrites models: one missing a contract gets the exact lines to add, and the command stops until you run it again.
- Running it again changes nothing that's already in place.
--dry-run --jsongives the plan.
- Default routes, controllers and policies, each overridable (#145). Named
concierge.*routes cover managing members (index, invite, member page, roles, suspend, reinstate, remove, transfer ownership, invitation resend and revoke) and accepting invitations.- They're registered only when concierge is set up, membership is on and
concierge.routes.enabledis true.concierge:installwrites'enabled' => true; the package default isfalse. - Override pieces through config (
routes.prefix,routes.middleware,routes.invitation_middleware,routes.home,routes.pages), by binding a controller subclass, or through Gate abilities (Tey\Concierge\Http\Abilities). An app's own ability definition always wins. - Pages render through the new
Contracts\PageResponder: Inertia when installed, JSON otherwise. - There are new page-prop builders (
MemberPage,InviteMemberPage,AcceptInvitationPage,RoleOptions), plusMembersIndex::row()androleBadges(). - With the routes on,
Concierge::invitationUrl()defaults toconcierge.invitations.show;invitationUrlUsing()still wins.
- They're registered only when concierge is set up, membership is on and
- Laravel Boost guidance (#146): a guideline and a
concierge-developmentskill, so coding agents use concierge's actions and routes instead of rebuilding them. A test fails if a command, option, action or event ships without being named in the skill. - Read-only Boost MCP tools
concierge-statusandconcierge-plan(#147). They're added to Boost's MCP server when Boost is installed, and they work before setup. Inviting, granting roles and creating owners stay withphp artisan concierge:*.
Changed
- Concierge registers nothing until it's set up (#142). Without the app's own
config/concierge.php(or with'setup' => false), it registers no migrations, routes, middleware, listeners, bindings or commands other thanconcierge:install. Socomposer require tey/conciergefollowed byphp artisan migratecreates no concierge tables.php artisan aboutshows the setup state.
Fixed
- The scaffolding tests are safe under
pest --parallel: each test process gets its own copy of the Testbench skeleton (#148).
Upgrading
- Existing apps: nothing changes. Your
config/concierge.phpmarks concierge as set up, so it registers exactly as before. Without arouteskey, the new routes stay off, no Gate abilities are defined, and invitation links still come only frominvitationUrlUsing(). - To adopt the default routes, copy the
routesblock from the package config intoconfig/concierge.phpwith'enabled' => true, runphp artisan concierge:pagesif you haven't, and remove your own routes and controllers for the same pages. Check thatroutes.prefixdoesn't clash with your paths; the default is no prefix, giving/membersand/invitations/{token}. Add rate limiting throughroutes.invitation_middleware(for examplethrottle:30,1). - With Laravel Boost, run
php artisan boost:installorboost:updateto pick up the guidance and tools. - Running
concierge:installon an app that's already set up is safe: it reports what's in place and changes nothing.
What's Changed
- Register nothing until concierge is set up by @jaspertey in #142
- Add concierge:install to detect the app and set concierge up by @jaspertey in #144
- Ship routes, controllers and policies by default, each overridable by @jaspertey in #145
- Add Laravel Boost guidelines and a concierge-development skill by @jaspertey in #146
- Add read-only concierge-status and concierge-plan tools to Laravel Boost by @jaspertey in #147
- Make the scaffolding tests safe under pest --parallel by @jaspertey in #148
- Release 0.10.0 by @jaspertey in #151
Full Changelog: v0.9.2...v0.10.0