@scispike/acl

1.0.0-rc.2 • Public • Published

access-control

DEPRECATION NOTE: Since the time this package was created, SciSpike has been acquired by Northscaler. There will be no further development on this module. Instead, development will continue at @northscaler/acl. You can see all of Northscaler's public Node.js modules at https://www.npmjs.com/search?q=%40northscaler.

This library allows you to maintain security information in access control lists (ACLs). There are four elements required in the determination of access:

  • principal: The actor, user or system attempting to perform some action on a securable.
  • securable: The thing being secured or the thing access to which is being controlled.
  • action: The action being performed on a securable. This library defines a minimal set of primitive actions, but you can define your own.
  • access control entry: the thing that binds the principal, securable and action together along with the "granted" boolean or some other strategy. Some systems call this a "permission", a "right" or a "grant" in the granting sense, and a "denial", an "antipermission", or a "negative permission" in the denying sense. We use a the more general term "access control entry", which can mean either a permission or a denial.

The primary export of this module is a class called Acl, which has interrogation methods grants & denies, as well as mutating methods like grant, ungrant, deny & undeny.

NOTE: In this implementation, a single denial vetos any number of grants.

It supports declarative or static security (think "granted" or "denied" as a simple boolean), as well as algorithmic or dynamic security (think "granted if today is a weekday" or something like that).

TL;DR

See the tests in src/test/unit/Acl.spec.js for usage.

TODO

Provide more content.

Dependents (1)

Package Sidebar

Install

npm i @scispike/acl

Weekly Downloads

0

Version

1.0.0-rc.2

License

MIT

Unpacked Size

43.4 kB

Total Files

8

Last publish

Collaborators

  • npm_scispike