{"_id":"@db-lab/casbin-mongodb-adapter","_rev":"6-d5e70722a753f25441ab2dcbd594a8d0","time":{"created":"2021-12-01T07:09:08.024Z","1.2.4-beta":"2021-12-01T07:09:08.244Z","modified":"2022-04-05T03:16:46.138Z"},"name":"@db-lab/casbin-mongodb-adapter","dist-tags":{"latest":"1.2.4-beta"},"versions":{"1.2.4-beta":{"name":"@db-lab/casbin-mongodb-adapter","version":"1.2.4-beta","description":"Pure MongoDB adapter for Casbin","main":"build/main/index.js","typings":"build/main/index.d.ts","module":"build/module/index.js","repository":{"type":"git","url":"git+https://github.com/dblab-devs/casbin-mongodb-adapter.git"},"license":"MIT","keywords":[],"scripts":{"describe":"npm-scripts-info","build":"run-s clean && run-p build:*","build:main":"tsc -p tsconfig.json","build:module":"tsc -p tsconfig.module.json","fix":"run-s fix:*","fix:prettier":"prettier \"src/**/*.ts\" --write","fix:tslint":"tslint --fix --project .","test":"run-s build test:*","test:lint":"tslint --project . && prettier \"src/**/*.ts\" --list-different","test:unit":"nyc --silent ava","watch":"run-s clean build:main && run-p \"build:main -- -w\" \"test:unit -- --watch\"","cov":"run-s build test:unit cov:html && open-cli coverage/index.html","cov:html":"nyc report --reporter=html","cov:send":"nyc report --reporter=lcov && codecov -t 5d8459b0-3a7f-43cf-a0fb-eafd95ddbd87","cov:check":"nyc report && nyc check-coverage --lines 100 --functions 100 --branches 100","doc":"run-s doc:html && open-cli build/docs/index.html","doc:html":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --out build/docs","doc:json":"typedoc src/ --exclude **/*.spec.ts --target ES6 --mode file --json build/docs/typedoc.json","doc:publish":"gh-pages -m \"[ci skip] Updates\" -d build/docs","version":"standard-version","reset":"git clean -dfx && git reset --hard && npm i","clean":"trash build test","prepare-release":"run-s reset test cov:check doc:html version doc:publish"},"scripts-info":{"info":"Display information about the package scripts","build":"Clean and rebuild the project","fix":"Try to automatically fix any linting problems","test":"Lint and unit test the project","watch":"Watch and rebuild the project on save, then rerun relevant tests","cov":"Rebuild, run tests, then create and open the coverage report","doc":"Generate HTML API documentation and open it in a browser","doc:json":"Generate API documentation in typedoc JSON format","version":"Bump package.json version, update CHANGELOG.md, tag release","reset":"Delete all untracked files and reset the repo to the last commit","prepare-release":"One-step: clean, build, test, publish docs, and prep a release"},"engines":{"node":">=8.9"},"dependencies":{"logdown":"^3.3.1","sha.js":"^2.4.11"},"peerDependencies":{"@db-lab/casbin":"^5.11.5-beta","mongodb":"^3.6.9"},"devDependencies":{"@db-lab/casbin":"^5.11.5-beta","mongodb":"^3.6.9","@bitjson/npm-scripts-info":"^1.0.0","@bitjson/typedoc":"^0.15.0-0","@istanbuljs/nyc-config-typescript":"^1.0.1","@types/mongodb":"^3.6.8","@types/mongodb-memory-server":"^2.3.0","@types/tmp":"^0.1.0","ava":"^3.15.0","codecov":"^3.8.1","cz-conventional-changelog":"^3.3.0","gh-pages":"^2.0.1","mongodb-memory-server":"^6.9.3","npm-run-all":"^4.1.5","nyc":"^15.1.0","open-cli":"^5.0.0","prettier":"^1.18.2","standard-version":"^6.0.1","trash-cli":"^3.0.0","tslint":"^5.18.0","tslint-config-prettier":"^1.18.0","tslint-immutable":"^6.0.1","typescript":"^3.5.3"},"ava":{"failFast":true,"files":["build/main/**/*.spec.js"]},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"prettier":{"singleQuote":true},"nyc":{"extends":"@istanbuljs/nyc-config-typescript","exclude":["**/*.spec.js"]},"gitHead":"793909c68f6ecf146021d3d3261b34b4792f95de","bugs":{"url":"https://github.com/dblab-devs/casbin-mongodb-adapter/issues"},"homepage":"https://github.com/dblab-devs/casbin-mongodb-adapter#readme","_id":"@db-lab/casbin-mongodb-adapter@1.2.4-beta","_nodeVersion":"14.17.1","_npmVersion":"6.14.13","dist":{"integrity":"sha512-AWMVLLD57WcScBUgHBoaA3DS91hrsUTpSycnS6P7Tbi+qCxAdhFA8ixjmOXvIbIJGDQUxp1+FkfXsqK2zTfDiw==","shasum":"560a228bedff5892cba3deec76f90f7a0481a883","tarball":"https://registry.npmjs.org/@db-lab/casbin-mongodb-adapter/-/casbin-mongodb-adapter-1.2.4-beta.tgz","fileCount":29,"unpackedSize":62777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpx+UCRA9TVsSAnZWagAAI40P/A2EIEe6NjsFQ2am/Rda\nntdUc4z4Oig36SpygLLNwA7gT6jj0oqJaBCzay8sCYbREkJZdZOSD5kK+pdr\nnADOALH1BtUgUxel+2CG4Fs8qA+T45qd79Rzm/Oo3KcEUMalMGu7+tLAfx5T\neVmceh6m9ChJ1259PQtCWjqB908Ql1MgUPOTIaEFZ7kxH5NYj/ZKuQO1NYSt\n6y2XbAl3Rq9O+QJhAjXxfI8m5LUiluD3BcWOAu0FYpkIKLBKpfMIL0extSSd\nP44VD/AFz1FJXrydQ8eLjWHbgBePlW4noind6eykcIJG9MseUPKN50D+589P\nFOfjallykPCzR0LN1yGZjJo70V1Ug4AjWZVOPrevkuWAmcYskfA600xsCbu9\nxwr9B813ctvroysjXtfai1j5lO7wIc5GHFpL1O3sLyICDM/SF31ZzQo4j5pZ\nx3Suti1vPkYn/Cf7C01XBNVGV7Zh/+XD2NVRNXYVXR8K2fcAIn5XuOYPPRqG\nAHihfW7lfeswbo/9sksx4Am/Cl/bgyarUUxCPQ4DMO2oZLc+PPjyyJzQDuMI\nZm6TPYxTzFCRvAgvurgbn90yyWgeAS/smxjqHKNBs9ZZMxJMMEN1gDjm2g/t\nUbSHftsZKNjXhFiePyppyL17kdg5ZNCbuDWiphTwXz0rJuWfx3XSFh5qQ80l\nV2MV\r\n=rFts\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICHVxKz8GjAQBopHDbXu/01gVHFAKMsmzGTSt78ol/z7AiBU0qvGi/TTE1JUpNJ4G474t5xVsUin3YuVuWxNIhPU1w=="}]},"_npmUser":{"name":"swail13","email":"issam.elkhalfaoui@smarter-it.com"},"directories":{},"maintainers":[{"name":"swail13","email":"issam.elkhalfaoui@smarter-it.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/casbin-mongodb-adapter_1.2.4-beta_1638342548088_0.06633028999669843"},"_hasShrinkwrap":false}},"maintainers":[{"name":"swail13","email":"issam.elkhalfaoui@smarter-it.com"}],"description":"Pure MongoDB adapter for Casbin","homepage":"https://github.com/dblab-devs/casbin-mongodb-adapter#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/dblab-devs/casbin-mongodb-adapter.git"},"bugs":{"url":"https://github.com/dblab-devs/casbin-mongodb-adapter/issues"},"license":"MIT","readme":"casbin-mongodb-adapter\r\n===\r\n\r\nMongoDB policy storage, implemented as an adapter for [node-casbin](https://github.com/casbin/node-casbin).\r\n\r\n<a href=\"https://img.shields.io/npm/v/casbin-mongodb-adapter\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/npm/v/casbin-mongodb-adapter\" alt=\"NPM Version\" />\r\n</a>\r\n<a href=\"https://img.shields.io/npm/dm/casbin-mongodb-adapter\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/npm/dm/casbin-mongodb-adapter\" alt=\"NPM Version\" />\r\n</a>\r\n<a href=\"https://img.shields.io/gitter/room/casbin/lobby\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/gitter/room/casbin/lobby\" alt=\"Build\" />\r\n</a>\r\n<a href=\"https://img.shields.io/codacy/grade/8b44237b493644e788bf0b175708095b/master\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/codacy/grade/8b44237b493644e788bf0b175708095b/master\" alt=\"Code Quality\" />\r\n</a>\r\n<a href=\"https://img.shields.io/circleci/build/github/juicycleff/casbin-mongodb-adapter/master\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/circleci/build/github/juicycleff/casbin-mongodb-adapter/master\" alt=\"Build\" />\r\n</a>\r\n<a href=\"https://img.shields.io/codecov/c/gh/juicycleff/casbin-mongodb-adapter\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/codecov/c/gh/juicycleff/casbin-mongodb-adapter\" alt=\"Build\" />\r\n</a>\r\n<a href=\"https://img.shields.io/gitter/room/casbin/lobby\" target=\"_blank\">\r\n  <image src=\"https://img.shields.io/gitter/room/casbin/lobby\" alt=\"Build\" />\r\n</a>\r\n\r\n## Getting Started\r\n\r\nInstall the package as dependency in your project:\r\n\r\n```bash\r\nnpm install --save casbin-mongodb-adapter\r\n```\r\n\r\nRequire it in a place, where you are instantiating an enforcer ([read more about enforcer here](https://github.com/casbin/node-casbin#get-started)):\r\n\r\n```javascript\r\nimport {newEnforcer, Enforcer} from 'casbin';\r\nimport { MongoAdapter } from 'casbin-mongodb-adapter';\r\nimport * as path from 'path';\r\n\r\nasync function myFunction() {\r\n  const model = path.resolve(__dirname, 'casbin-files/rbac_model.conf');\r\n\r\n  const adapter = await MongoAdapter.newAdapter({\r\n    uri: 'mongodb://localhost:27017',\r\n    collection: 'casbin',\r\n    database: 'node-casbin-official'\r\n  });\r\n\r\n  const e = await newEnforcer(model, adapter);\r\n\r\n  await e.loadPolicy();\r\n\r\n  // Check the permission.\r\n  e.enforce('alice', 'data1', 'read');\r\n\r\n  // Modify the policy.\r\n  // await e.addPolicy(...);\r\n  // await e.removePolicy(...);\r\n\r\n  // Save the policy back to DB.\r\n  await e.savePolicy();\r\n}\r\n```\r\n\r\nThat is all what required for integrating the adapter into casbin.\r\nCasbin itself calls adapter methods to persist updates you made through it.\r\n\r\n## Configuration\r\n\r\nYou can pass mongodb-specific options when instantiating the adapter:\r\n\r\n```javascript\r\nimport { MongoAdapter } from 'casbin-mongodb-adapter';\r\n\r\nconst adapter = await MongoAdapter.newAdapter({\r\n  uri: 'mongodb://localhost:27017',\r\n  collection: 'casbin',\r\n  database: 'node-casbin-official',\r\n  option: {\r\n    ...mongoOptions\r\n  }\r\n});\r\n```\r\n\r\nAdditional information regard to options you can pass in you can find in [mongodb documentation](https://mongodb.github.io/node-mongodb-native/)\r\n\r\n## License\r\n\r\n[Apache-2.0](./LICENSE)\r\n","readmeFilename":"README.md"}