Socket
Socket
Sign inDemoInstall

@nearform/udaru-core

Package Overview
Dependencies
71
Maintainers
34
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @nearform/udaru-core

A policy based authorization module


Version published
Weekly downloads
11
Maintainers
34
Install size
6.83 MB
Created
Weekly downloads
 

Readme

Source

Udaru

npm travis coveralls snyk

Udaru is a Policy Based Access Control (PBAC) authorization module. It supports Organizations, Teams and User entities that are used to build the access model. The policies attached to these entities define the 'Actions' that can be performed by an entity on various 'Resources'.

See the Udaru website for complete documentation on Udaru.

udaru-core is a lower level library that's primarily used by udaru-hapi-plugin and udaru-hapi-16-plugin, but can also be used directly for other purposes.

Install

To install via npm:

npm install @nearform/udaru-core

Usage

Simple example taken from examples/list-orgs.js:

const udaru = require('@nearform/udaru')()
udaru.organizations.list({}, (err, orgs) => {
  if (err) {
    console.error(err)
  } else {
    console.log(orgs)
  }

  udaru.db.close()
})

Hooks

Hooks are registered using the udaru.hooks.add method and allow you to listen to specific events in udaru.

Each udaru method exposes a namespaced hook (e.g.: the udaru.authorize.isUserAuthorized method exposes the authorize:isUserAuthorized hook).

The hook is a node-style callback with three arguments: the method arguments, the method result values and a callback to invoke once done.

If the hook returns a promise, the execution will await its completion.

Hooks errors or rejections are ignored unless the hooks.propagateErrors configuration variable is set to true.

Simple example taken from examples/hooks.js:

const udaru = require('@nearform/udaru')()

udaru.hooks.add('authorize:isUserAuthorized', function (error, args, result, done) {
  if (error) {
    console.error(`Authorization errored: ${error}`)
    return done(error)
  }

  console.log(`Access to ${args[0]} got access: ${result[0].access}`)
  done()
})

udaru.authorize.isUserAuthorized('resource', 'action', 'uid', 'oid', cb) {
  console.log(err, cb.access)
  udaru.db.close()
})

License

Copyright nearForm Ltd 2017. Licensed under MIT.

Keywords

FAQs

Last updated on 11 Oct 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc