How seeden/rbac works
This library provides hierarchical role-based access control for Node.js. An application configures roles, action/resource permissions, and grants, then initializes RBAC; the library creates and stores those entities and links grants into role hierarchies. Authorization checks traverse a role’s grants and match permissions, with role instances offering convenience methods. The default backend is in-memory; custom storage can implement the documented Storage contract. The RBAC excerpt is partial, so only clearly evidenced call relationships are shown.
Main entry points: RBAC.js RBAC · Storage.js Storage Contract · Role.js Role · Base.js Base Entity
Components 9
RBAC API
- RBAC
src/RBAC.js
Roles And Permissions
- Base Entity
src/Base.js - Role
src/Role.js - Permission
src/Permission.js
Authorization
- Grant Traversal
src/RBAC.js
Storage
- Storage Contract
src/Storage.js - Memory Storage
src/Memory.js
Other components
- Application
- Custom Storage
Connections 16
- Application → RBAC: configures and queries
- RBAC → Role: creates
- RBAC → Permission: creates
- Role → Base Entity: extends
- Permission → Base Entity: extends
- Base Entity → RBAC: adds or removes
- Role → RBAC: delegates checks
- RBAC → Memory Storage: defaults to
- RBAC → Storage Contract: uses contract
- Memory Storage → Storage Contract: implements
- Custom Storage → Storage Contract: implements
- RBAC → Grant Traversal: checks hierarchy
- Grant Traversal → Storage Contract: reads grants
- Grant Traversal → Permission: matches permission
- RBAC → Storage Contract: adds roles and permissions
- RBAC → Storage Contract: grants or revokes