Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/node-casbin/basic-adapter
A basic adapter supports pg, sqlite3, mysql, mysql2, oracledb and mssql.
https://github.com/node-casbin/basic-adapter
Last synced: about 2 months ago
JSON representation
A basic adapter supports pg, sqlite3, mysql, mysql2, oracledb and mssql.
- Host: GitHub
- URL: https://github.com/node-casbin/basic-adapter
- Owner: node-casbin
- License: apache-2.0
- Created: 2020-07-04T08:42:45.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-31T12:49:46.000Z (8 months ago)
- Last Synced: 2024-07-11T04:35:41.195Z (2 months ago)
- Language: TypeScript
- Homepage:
- Size: 298 KB
- Stars: 7
- Watchers: 2
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - node-casbin/basic-adapter - A basic adapter supports pg, sqlite3, mysql, mysql2, oracledb and mssql. (TypeScript)
README
# Basic Adapter
[![ci](https://github.com/node-casbin/basic-adapter/actions/workflows/ci.yml/badge.svg)](https://github.com/node-casbin/basic-adapter/actions/workflows/ci.yml)
[![NPM version][npm-image]][npm-url]
[![NPM download][download-image]][download-url][npm-image]: https://img.shields.io/npm/v/casbin-basic-adapter.svg
[npm-url]: https://npmjs.org/package/casbin-basic-adapter
[download-image]: https://img.shields.io/npm/dm/casbin-basic-adapter.svg
[download-url]: https://npmjs.org/package/casbin-basic-adapterBasic Adapter is a basic driver adapter for `Node-Casbin` which supports `pg`, `sqlite3`, `mysql`, `mysql2`, and `mssql`. With this library, `Node-Casbin` can load policy from or save policy to supported persistence systems.
## Drives
We currently support the following SQL systems:
- [x] pg
- [x] mysql
- [x] mysql2
- [x] sqlite3
- [ ] oracledb
- [x] mssql## Installation
```sh
npm i casbin-basic-adapter
```## Simple Example
```ts
import { newEnforcer } from 'casbin';
import { Client } from 'pg';
import { BasicAdapter } from 'casbin-basic-adapter';async function myFunction() {
// Initialize a Basic 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".
const a = await BasicAdapter.newAdapter('pg',
new Client({
user: 'postgres',
database: 'postgres',
password: 'postgres',
}));const e = await newEnforcer('examples/rbac_model.conf', a);
// Check the permission.
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
- [Node-Casbin](https://github.com/casbin/node-casbin)
## License
This project is under Apache 2.0 License. See the [LICENSE](LICENSE) file for the full license text.