Giter Club home page Giter Club logo

node_acl_sequelize's Introduction

Node Acl Sequelize Backend

acl-sequelize

npm version Build Status codecov Known Vulnerabilities License

Sequelize is an SQL ORM that supports many sql servers (mysql, mariadb, sqlite, postgres and mssql) OptimalBits/node_acl.

Features & Documentation

For ACL general use please see OptimalBits/node_acl. For Sequelize general use please see Sequelize Docs.

Installation

Using npm:

npm install acl
npm install sequelize
npm install [DIALECT] #One of the supported Sequelize dialects
npm install acl-sequelize

Getting Started

    Acl       = require('acl');
    Sequelize = require('sequelize'),
    AclSeq    = require('acl-sequelize');
    db        = new Sequelize( 'DB', 'USER', 'PASSWORD'),    
    acl       = new Acl(new AclSeq(db, { prefix: 'acl_' }));

Extra Options

The second parameter sent to the backend constructor can have supports the following options -

prefix - prefix for table names in the database default ''

defaultSchema - Sequlize Schema settings for all buckets with no specific schema default schema has two columns key: Primary STRING, value: STRING

schema - Object with Sequlize Schema settings per bucket (meta|parents|permissions|resources|roles|users ) to override default schema

Creating tables manually

ACL-Sequelize will automatically register and sync needed schemes if for some reason you need to register your own tables and the schema override parameters are not good enough you can register the schemes yourself before instiating the backend. ACL-Sequelize will use the existing schema instead of adding a new one (Register schema should follow prefix+bucket_name convention and have key, value columns)

Testing

Test setup

The test database connection settings are in the test/runner.js. The current setting expect a local mysql server with passwordless root account and test database.

Running tests

npm test

Changelog

See changelog file

Security issues

This project participates in the Responsible Disclosure Policy program for the Node.js Security Ecosystem. see security.md for more info

Known Issues

  • default schema limit each column 255 chars, if you have a lot of resources / permissions / complex hierarchy, You'll probably need to set your own schema with higher limit.
  • node ACL has a race condition bug I would avoid setting multiple permissions until the issue is resolved
  • I haven't done any performance tweaks, this can probably be implemented in a much more efficient way using relational schema and JOINS, but I'm note sure node ACL API is flexible enough to make it beneficial

P.S Thanks for Robert Kaufmann III [email protected] who originally registered the npm module.

node_acl_sequelize's People

Contributors

yonjah avatar deksden avatar dependabot[bot] avatar itgitchina avatar robottokauf3 avatar trshafer avatar

Stargazers

韩亮 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.