SkillAgentSearch skills...

Palisade

Role-based security, authorization, and filtering utilities for thinky and RethinkDB

Install / Use

/learn @shastajs/Palisade
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align='center'> <img src='https://cloud.githubusercontent.com/assets/425716/12656327/86aafe0c-c5b2-11e5-8de8-b6a7f0552397.png' width='400'/> <p align='center'>Role-based security, authorization, and filtering utilities for Thinky/RethinkDB</p> </p>

Install

One command and you're ready to secure your data:

npm install palisade --save

Now, check out the documentation to get started!

Example

The documentation has more detailed examples, but here's a quick peek:

ES6

// your thinky connection instance
import db from 'connections/thinky'
import palisade, { screenDeep } from 'palisade'

const User = db.createModel('User', {
  id: String,
  name: String,
  birthday: Date,
  times: {
    created: Date
  }
})

// Anyone can list and read users and their public fields (id and name)
// Users can update themselves, but only their own birthday
// Admins can create, update, replace, or delete any user
palisade(User, {
  document: {
    read: ['public'],
    create: ['admin'],
    update: ['admin', 'self'],
    replace: ['admin'],
    delete: ['admin']
  },
  read: {
    id: ['public'],
    name: ['public'],
    birthday: ['admin', 'self'],
    times: {
      created: ['admin']
    }
  },
  write: {
    id: ['admin'],
    name: ['admin'],
    birthday: ['admin', 'self'],
    times: {
      created: ['admin']
    }
  }
})

ES5

// your thinky connection instance
var db = require('connections/thinky');
var palisade = require('palisade');
var screenDeep = palisade.screenDeep;

var User = db.createModel('User', {
  id: String,
  name: String,
  birthday: Date,
  times: {
    created: Date
  }
});

// Anyone can list and read users and their public fields (id and name)
// Users can update themselves, but only their own birthday
// Admins can create, update, replace, or delete any user
palisade(User, {
  document: {
    read: ['public'],
    create: ['admin'],
    update: ['admin', 'self'],
    replace: ['admin'],
    delete: ['admin']
  },
  read: {
    id: ['public'],
    name: ['public'],
    birthday: ['admin', 'self'],
    times: {
      created: ['admin']
    }
  },
  write: {
    id: ['admin'],
    name: ['admin'],
    birthday: ['admin', 'self'],
    times: {
      created: ['admin']
    }
  }
});
View on GitHub
GitHub Stars21
CategoryDevelopment
Updated6y ago
Forks4

Languages

JavaScript

Security Score

75/100

Audited on Mar 31, 2019

No findings