sequelize-acl

    0.3.7 • Public • Published

    Node Acl Sequelize Backend

    sequelize-acl

    npm version Build Status codecov Known Vulnerabilities License

    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 sequelize-acl

    Getting Started

        Acl       = require('acl');
        Sequelize = require('sequelize'),
        AclSeq    = require('sequelize-acl');
        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

    Sequelize-acl 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. Sequelize-acl 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 rok3@rok3.me who originally registered the npm module.

    Install

    npm i sequelize-acl

    DownloadsWeekly Downloads

    16

    Version

    0.3.7

    License

    MIT

    Unpacked Size

    68 kB

    Total Files

    15

    Last publish

    Collaborators

    • ccckblaze