Remove MySQL root password to match test configuration

Co-authored-by: nomeguy <85475922+nomeguy@users.noreply.github.com>
1 file changed
tree: 7c3db92b89eeb4b517a7e8e8a9d584b1d8b2abe5
  1. .github/
  2. examples/
  3. src/
  4. test/
  5. .eslintrc
  6. .gitignore
  7. .prettierrc
  8. docker-compose.yml
  9. jest.config.js
  10. LICENSE
  11. mysql_init.sql
  12. package.json
  13. README.md
  14. tsconfig.json
  15. yarn.lock
README.md

Sequelize Adapter

CI Coverage Status NPM version NPM download Discord

Sequelize Adapter is the Sequelize adapter for Node-Casbin. With this library, Node-Casbin can load policy from Sequelize supported database or save policy to it.

Based on Officially Supported Databases, the current supported databases are:

  • MySQL
  • PostgreSQL
  • SQLite
  • MSSQL

You may find other 3rd-party supported DBs in Sequelize website or other places.

Installation

npm install casbin-sequelize-adapter

Simple Example

import { newEnforcer } from 'casbin';
import { SequelizeAdapter } from 'casbin-sequelize-adapter';

async function myFunction() {
  // Initialize a Sequelize adapter and use it in a Node-Casbin enforcer:
  // The adapter can not automatically create database.
  // But the adapter will automatically create and use the table named "casbin_rule".
  // I think ORM should not automatically create databases.
  const a = await SequelizeAdapter.newAdapter({
    username: 'root',
    password: '',
    database: 'casbin',
    dialect: 'mysql',
  });

  const e = await newEnforcer('examples/rbac_model.conf', a);

  // Load the policy from DB.
  await e.loadPolicy();

  // Check the permission.
  await e.enforce('alice', 'data1', 'read');

  // Modify the policy.
  // await e.addPolicy(...);
  // await e.removePolicy(...);

  // Save the policy back to DB.
  await e.savePolicy();
}

Simple Filter Example

import { newEnforcer } from 'casbin';
import { SequelizeAdapter } from 'casbin-sequelize-adapter';

async function myFunction() {
  // Initialize a Sequelize adapter and use it in a Node-Casbin enforcer:
  // The adapter can not automatically create database.
  // But the adapter will automatically create and use the table named "casbin_rule".
  // I think ORM should not automatically create databases.
  const a = await SequelizeAdapter.newAdapter({
    username: 'root',
    password: '',
    database: 'casbin',
    dialect: 'mysql',
  });

  const e = await newEnforcer('examples/rbac_model.conf', a);

  // Load the filtered policy from DB.
  await e.loadFilteredPolicy({
    ptype: 'p',
    v0: 'alice'
  });

  // Check the permission.
  await e.enforce('alice', 'data1', 'read');

  // Modify the policy.
  // await e.addPolicy(...);
  // await e.removePolicy(...);

  // Save the policy back to DB.
  await e.savePolicy();
}

Getting Help

License

This project is under Apache 2.0 License. See the LICENSE file for the full license text.