{"repo":"onury/accesscontrol","free":true,"listed":false,"github":"https://github.com/onury/accesscontrol","clone":"git clone https://github.com/onury/accesscontrol.git","description":"Role and Attribute based Access Control for Node.js","language":"TypeScript","stars":2326,"topics":["access-control","abac","rbac","roles","permissions","attributes","acl","nodejs","security","authorization"],"license":"MIT","category":"security-tools","readme_excerpt":"This module is ESM 🔆. Please read this . 📖 &nbsp; Full documentation & guides: &nbsp; onury.io/accesscontrol Role and Attribute Based Access Control for Node.js Many [RBAC][rbac] (Role-Based Access Control) implementations differ, but the basics are widely adopted since they simulate real-life role (job) assignments. But as data gets more complex, you need to define policies on resources, subjects, even environments — this is [ABAC][abac] (Attribute-Based Access Control). Merging the best of both (see this [NIST paper][nist-paper]), AccessControl implements RBAC basics and ABAC conditions, ownership, and mandatory gates. [!TIP] v3 adds a real policy engine: conditions, enforced ownership, custom actions, require() gates, groups/categories, async checks and audit events. &nbsp;✨ What's new in v3 → &nbsp;·&nbsp; ⬆️ Migrating from v2 → Core Features - Chainable, friendly API — e.g. ac.can(role).createOwn(resource) . - Role hierarchical inheritance with deny-overrides (deny always wins). - Conditions ( .where() ) — declarative ABAC with a readable expression syntax. - Enforced ownership — own actually verifies the record belongs to the user. - Custom actions beyond CRUD via .action() / .do() . - require() gates — mandatory restrictions at global / category / resource scope. - Groups & categories ( / ) — bounded bulk grants; the safe alternative to . - Async checks + custom condition functions ( defineCondition , grantedAsync ). - Events — an access audit stream, plus change / e","default_branch":null,"files":null,"tree":[],"storefront":"/r/onury","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/onury/accesscontrol/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}