feat: add role-based access control
This commit is contained in:
parent
c42b8e2904
commit
8ab9a9a497
21 changed files with 629 additions and 46 deletions
47
packages/db/src/rbac.ts
Normal file
47
packages/db/src/rbac.ts
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
export const permissions = [
|
||||
"dashboard.read",
|
||||
"servers.read",
|
||||
"servers.create",
|
||||
"servers.update",
|
||||
"servers.delete",
|
||||
"services.read",
|
||||
"services.create",
|
||||
"services.update",
|
||||
"services.delete",
|
||||
"domains.read",
|
||||
"domains.create",
|
||||
"domains.update",
|
||||
"domains.delete",
|
||||
"domains.check",
|
||||
"notes.read",
|
||||
"notes.create",
|
||||
"notes.update",
|
||||
"notes.delete",
|
||||
"users.read",
|
||||
"users.assignRoles",
|
||||
] as const;
|
||||
|
||||
export type Permission = (typeof permissions)[number];
|
||||
|
||||
export const roleDefinitions = [
|
||||
{
|
||||
id: "role_admin",
|
||||
name: "Admin",
|
||||
description: "Full access to monitoring data, users, roles, and permissions.",
|
||||
permissions: [...permissions],
|
||||
},
|
||||
{
|
||||
id: "role_editor",
|
||||
name: "Editor",
|
||||
description: "Can create and update monitoring resources, run checks, and read users.",
|
||||
permissions: permissions.filter((permission) => permission !== "users.assignRoles"),
|
||||
},
|
||||
{
|
||||
id: "role_viewer",
|
||||
name: "Viewer",
|
||||
description: "Read-only access to monitoring resources and users.",
|
||||
permissions: permissions.filter((permission) => permission.endsWith(".read")),
|
||||
},
|
||||
] as const;
|
||||
|
||||
export type RoleName = (typeof roleDefinitions)[number]["name"];
|
||||
Loading…
Add table
Add a link
Reference in a new issue