RBAC built-in
Three roles. Project routes gated. UI mirrors server.
Admin / Operator / Viewer, scoped per project. The backend is authoritative, while the useCan(slug, action) hook mirrors the policy in the dashboard so users do not see controls their role cannot use. Admins own schedule-definition CRUD; operators can run commands and control existing schedules; viewers read ordinary project data, while sensitive surfaces such as the audit log remain admin-only.
Mockup of the dashboard view for this feature. Live-reloading and themed to match your dashboard.
Ships with
- Backend as source of truth
- UI gates match server policy
- Debounced 'Permission denied' toast on any 403
- Per-project membership + last-admin protection