LapitapDocs
v2 Boson/Concepts

Roles & permissions

How v2 decides who can see and do what.

v2 replaces numeric codes with string permission keys grouped by area, e.g. sales.create, buyins.void, system.settings.manage.

Principles#

  • The server decides. Hiding a button is a convenience; every API route checks the key.
  • Row-level scope. Writes respect the same outlet restrictions as reads — you cannot change a record you could not see.
  • Grant only what you hold. An administrator can give a role only keys they hold themselves, and can manage only users whose role is within their own permissions.
  • System roles are protected. Built-in roles cannot be edited away by name tricks.
  • * is break-glass. The only unrestricted key; reserved for the owner.

Coming from v1#

v1's numeric codes (120, 175, 999…) do not exist in v2. Each v2 installation starts with its own roles; build them from the keys listed in Permission keys.