Skip to content

v0.7.0

Choose a tag to compare

@jaspertey jaspertey released this 11 Oct 23:11
31c881e

Built on mod

Concierge is now built on mod: one command wires its pages into your app. This release also brings early, opt-in parts of 0.8. An app that leaves the new mode key unset behaves exactly as on 0.6.

Upgrading

  • A new concierge_accounts table arrives with php artisan migrate. If you published concierge's migrations into your app, copy the new create_concierge_user_accounts_table migration from the package's database/migrations alongside them.
  • Workspace apps should declare their mode. Add 'mode' => 'workspaces' to config/concierge.php. Until 1.0, concierge infers it from models.workspace, and php artisan about shows a deprecation line until you add the key.

Added

  • Concierge declares its Inertia pages and frontend wiring to mod: the @tey/concierge alias, its TypeScript paths and its Tailwind source.
    • php artisan mod:install inertia --dry-run shows the edits, and mod:install inertia applies them. That replaces the hand-written alias, paths and source.
    • It works whether concierge is installed from Packagist or symlinked from a path repository.
    • You still import concierge.css yourself, until #81. (#17, #70, #76)
  • php artisan concierge:pages writes concierge's Inertia wrapper pages into your own resources/js/pages/Concierge, placed by your app's mod layout. A React app is told which .tsx stubs to supply. (#62)
  • App-wide mode, early and opt-in ('mode' => 'app').
    • Invitations and roles apply to the whole app, with no workspace model, through EstablishOwner, InviteUser, ChangeUserRoles and RemoveUser.
    • The last owner can never be removed, demoted or deleted.
    • App-wide invitations can't be resent or revoked yet (#79).
    • It completes in 0.8. (#19, #65, #69)
  • Starter kit teams, early and opt-in ('workspaces' => ['engine' => 'kit']).
    • Concierge reads a kit's teams, members and roles through an adapter and never writes the kit's tables.
    • php artisan concierge:import-members copies an existing pivot into concierge's own engine.
    • Protect kit routes with the kit's EnsureTeamMembership for now (#80). (#20, #68)
  • The Users pages for app-wide mode, early: UsersPage, UserPage and InviteUserPage.
    • They have search, role and status filters, plus Concierge::userColumns() for your own columns.
    • UpdateUser edits a user's name and email.
    • Your controllers supply the props and links until concierge ships routes (#28). (#43, #75, #77)
  • Deactivation, early.
    • DeactivateUser and RestoreUser take a user's access away and give it back, keeping their roles and history.
    • A deactivated user is refused at sign-in.
    • The concierge.active middleware signs out existing sessions and refuses API tokens without deleting them. (#44, #74)

Changed

  • Concierge requires tey/mod ^0.6.1. Mod lists the pages recipe as mod:concierge/pages (it was mod:concierge-pages); php artisan concierge:pages is unchanged. (#70, #76)
  • AcceptInvitationMetadata gains an optional appName, so existing code keeps working (#75).

What's Changed

  • Require tey/mod and ship concierge:pages by @jaspertey in #62
  • Add the mode key and prepare the core for app-wide mode by @jaspertey in #65
  • Add app-wide mode: accounts, AccountPolicy, AppScope and the user actions by @jaspertey in #69
  • Read starter kit teams through an adapter, and import existing pivots by @jaspertey in #68
  • Move to mod 0.6: vendor scaffold, stack-keyed stubs, package pages and wiring by @jaspertey in #70
  • Add contributor guidance for coding agents by @jaspertey in #71
  • Add app-wide user deactivation and restore by @jaspertey in #74
  • Add app-wide Users pages by @jaspertey in #75
  • Declare the frontend to mod without the in-app guard by @jaspertey in #76
  • Add UpdateUser for app-wide profile edits by @jaspertey in #77
  • Move 0.7 to Shipped in the roadmap by @jaspertey in #78

Full Changelog: v0.6.0...v0.7.0