11 lines
739 B
TypeScript
11 lines
739 B
TypeScript
|
|
/** Roles the Ed25519 JWT `role` claim is expected to carry. Ordered highest-to-lowest privilege; PermissionService does not rely on the order, it is documentation only. */
|
||
|
|
export type AdminRole = 'Owner' | 'Administrator' | 'Editor' | 'Support' | 'ReadOnly';
|
||
|
|
/**
|
||
|
|
* Coarse-grained permission keys. Intentionally small and domain-agnostic -
|
||
|
|
* fine-grained, per-domain permissions stay server-side; the frontend only
|
||
|
|
* needs enough to hide/disable UI, never to be the source of truth for
|
||
|
|
* authorization.
|
||
|
|
*/
|
||
|
|
export type Permission = 'backoffice.read' | 'backoffice.write' | 'builder.read' | 'builder.write' | 'users.manage' | 'settings.manage';
|
||
|
|
export declare const ROLE_PERMISSIONS: Readonly<Record<AdminRole, readonly Permission[]>>;
|