SuperAwesome Permissions
-
NPM package:
@superawesome/permissions
-
Github:
https://github.com/SuperAwesomeLTD/permissions
Features
In lieu of a proper landing page, SuperAwesome Permissions features:
-
🛅 Controlled Access to Resources -
💅 Fine Grained Resource Attributes picking -
🛃 Dynamic Ownership Rules, hooked to your data layer -
🎭 Trivial conversion of Business Rules for Access Control to executing permissions (and vise versa). -
Straight-forward fusion of Role-Based Access Control, Attribute-Based Access Control and Whatever-You-Make-it Access control
-
🔭 Unlimited Scalability (lazy & eager ownership evaluation) -
🔧 Easy Integration with everything (REST, Graphql, SQL, NoSQL, APIs, Frontend, Games, anything) -
🐚 Zero dependencies with servers, services & other moving parts -
📐 Orthogonal / Aspect Oriented philosophy -
🎫 Permit is all you need to allow a user do an action on a resource
(^^ github needed to show icons ^^)
Contents
The actual generated docs are at npm run docs:serve
and coming soon at SuperAwesome Permissions Documentation. Go to the left, at the CompoDocs Nav Bar.
NOTE: THESE LINKS BREAK ON GITHUB! (^^^ read above ^^^)
Note: We also have native Nestjs Guard & Decorators empowering an Orthogonal / Aspect Oriented Architecture.
Versioning
The project follows semantic versioning which effectively means a new major version x.0.0 is released for breaking changes, minor 0.x.0 for new features and patch 0.0.x for fixes.
How to develop
Code
-
Simply do an
npm run test:watch
to develop and test at each change. -
With
npm run build:ts
you get a build of the library at/dist
. -
With
npm run build
you get a full build of library & docs at/dist
.
Documentation
End user docs reside at src/docs
& *.md.spec
files:
-
With
npm run docs:build
it builds docs atdist/docs
once. -
With
npm run docs:serve
it serves docs at http://127.0.0.1:8090 in non-watch mode. -
With
npm run docs:watch
it serves docs at http://127.0.0.1:8090 in watch & serve mode.
Docs generation
All *.md.spec.ts
files generate equivalent src/docs/generated/*.generated.md
Note: On watch mode it's sometimes slow to build & serve, especially initially. Just change & save the *.md.spec.ts
file to trigger generation & also refresh browser if its not refreshing automatically.