typeorm-adapter
    TypeScript icon, indicating that this package has built-in type declarations

    1.4.2 • Public • Published

    TypeORM Adapter

    NPM version NPM download codebeat badge CI Coverage Status Gitter

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

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

    • MySQL
    • PostgreSQL
    • MariaDB
    • SQLite
    • MS SQL Server
    • Oracle
    • WebSQL
    • MongoDB

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

    Installation

    npm install typeorm-adapter
    

    Simple Example

    import { newEnforcer } from 'casbin';
    import TypeORMAdapter from 'typeorm-adapter';
    
    async function myFunction() {
        // Initialize a TypeORM adapter and use it in a Node-Casbin enforcer:
        // The adapter can not automatically create database.
        // But the adapter will automatically and use the table named "casbin_rule".
        // I think ORM should not automatically create databases.  
        const a = await TypeORMAdapter.newAdapter({
            type: 'mysql',
            host: 'localhost',
            port: 3306,
            username: 'root',
            password: '',
            database: 'casbin',
        });
    
    
        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 TypeORMAdapter from 'typeorm-adapter';
    
    async function myFunction() {
        // Initialize a TypeORM adapter and use it in a Node-Casbin enforcer:
        // The adapter can not automatically create database.
        // But the adapter will automatically and use the table named "casbin_rule".
        // I think ORM should not automatically create databases.  
        const a = await TypeORMAdapter.newAdapter({
            type: 'mysql',
            host: 'localhost',
            port: 3306,
            username: 'root',
            password: '',
            database: 'casbin',
        });
    
    
        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.

    Install

    npm i typeorm-adapter

    Homepage

    casbin.org

    DownloadsWeekly Downloads

    1,340

    Version

    1.4.2

    License

    none

    Unpacked Size

    38.5 kB

    Total Files

    13

    Last publish

    Collaborators

    • chalin
    • hsluoyz
    • nodece
    • zxilly