CouchDB policy storage, implemented as an adapter for node-casbin.
NPM:
npm install casbin-couchdb-adapter --save
Yarn:
yarn add casbin-couchdb-adapter
import { newEnforcer } from 'casbin'; import { CouchdbAdapter } from 'casbin-couchdb-adapter'; import { join } from 'path'; async function myFunction() { // Initialize a CouchdbAdapter adapter and use it in a Node-Casbin enforcer: const adapter = await CouchdbAdapter.newAdapter("http://admin:password@localhost:5984"); // The location of your Casbin model configuration file const model = join(__dirname, 'casbin_conf/model.conf'); const enforcer = await newEnforcer(model, adapter); // Check the permission. enforcer.enforce('alice', 'data1', 'read'); // Modify the policy. // await enforcer.addPolicy(...); // await enforcer.removePolicy(...); // Save the policy back to DB. await enforcer.savePolicy(); }
You need to create a database named "casbin" and a document like this:
{ "_id": "policies", "value": [] }
CouchdbAdapter.newAdapter() takes the following parameters as an object to establish the connection with couchdb-server
databaseUrl: string = "http://{admin}:{password}@{ip}:{port}"
This project is under Apache 2.0 License. See the LICENSE file for the full license text.