@aax/gatekeeper
v1.0.86
Published
Permission library for aaX
Downloads
193
Maintainers
Keywords
Readme
GateKeeper
Permission library for allaboutXpert
🔧 Installation
npm i @aax/gatekeeper🎬 Getting started
Let's demonstrate usage with a few examples:
import {
Action,
Entity,
GateKeeper,
RisksAction,
Scope
} from "@aax/gatekeeper";
// Get the permission set from your user token.
// Refer to the License API or a decoded
// token for correct keys to query
const token = user.token.perms;
const gk = new GateKeeper(token);
if (gk.can(RiskAction.RISKS_CLOSE, Scope.ALL, Entity.RISKS)) {
// This user has the permission to close ALL risks
}
if (gk.can(RiskAction.RISKS_ESCALATE)) {
// This person has the right to escalate risks
// NOTE: There is no datascope being enforced on this query
// so it will only be used for instances where you
// want to e.g. show a button or meny entry
}
if (gk.can(Action.VIEW, Scope.ALL, Entity.Risks)) {
// This user has the permuission view ALL risks
}The library will not throw any Errors so try/catch blocks are not necessary. That being said when NODE_ENV=development the library will throw an Error but only as a warning that you have used the library incorrectly so keep an eye out on your consoles.
Full set of examples.
// Extended with scope
// console.log(gk.can(RisksAction.RISKS_CLOSE, Scope.ALL, Entity.RISKS));
// console.log(gk.can(RisksAction.RISKS_CLOSE, Scope.OWN, Entity.RISKS));
// Extended without scope
// console.log(gk.can(RisksAction.RISKS_ESCALATE));
// Entity with scope
// console.log(gk.can(Action.VIEW, Scope.ALL, Entity.RISKS));
// console.log(gk.can(Action.VIEW, Scope.OWN, Entity.RISKS));
// Entity without scope
// console.log(gk.can(Action.VIEW, Entity.RISKS));Publish your new changes
Version eg: major.minor.patch
You are now done and want to publish your changes to the component library, based on the type of change you made, you'll want to use one of these commands
Run npm run publish:patch when you make backwards compatible bug fixes.
Run npm run publish:minor when you add functionality in a backwards compatible manner.
Run npm run publish:major when you make incompatible API changes.
Process to follow
- Test your changes from one of the apps.
- Create a PR with your changes.
- Once approved, you can then Publish via one of the above publish commands.
- Once a new version of the library was created, you can now update all apps to reference the new component library version.
