{"_id":"@247cl/casbin-mongodb-adapter","name":"@247cl/casbin-mongodb-adapter","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"@247cl/casbin-mongodb-adapter","version":"2.0.0","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/247CL/casbin-mongodb-adapter.git"},"license":"MIT","keywords":[],"scripts":{"build":"run-p build:*","build:main":"tsc -p tsconfig.json","build:module":"tsc -p tsconfig.module.json","watch":"run-s clean build:main && run-p \"build:main -- -w\" \"test:unit -- --watch\"","doc":"run-s doc:html && open-cli build/docs/index.html","reset":"git clean -dfx && git reset --hard && npm i"},"engines":{"node":">=8.9"},"dependencies":{"logdown":"^3.3.1","sha.js":"^2.4.12"},"peerDependencies":{"casbin":"^5.17.0","mongodb":"^6.0.0"},"devDependencies":{"@types/node":"^24.1.0","@types/semver":"^7.7.0","@types/tmp":"^0.2.6","ava":"^6.4.1","casbin":"^5.38.0","mongodb":"^6.18.0","mongodb-memory-server":"^10.1.4","npm-run-all":"^4.1.5","open-cli":"^8.0.0","typescript":"^5.8.3"},"_id":"@247cl/casbin-mongodb-adapter@2.0.0","gitHead":"384357e3c2c88d088a94f18357bdcaa38ab2a4ad","bugs":{"url":"https://github.com/247CL/casbin-mongodb-adapter/issues"},"homepage":"https://github.com/247CL/casbin-mongodb-adapter#readme","_nodeVersion":"23.10.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-I9hCinCZYPf4Tj7Q2IQcfaLa7ZPrQMq+pXpH+vF6fVIp77/S94v4Xxd9UgY54HsaZuO+dTCRkCXtJrrhkeO8lw==","shasum":"427df9c72b1502c3f0f42e4feed58f09791c35c6","tarball":"https://registry.npmjs.org/@247cl/casbin-mongodb-adapter/-/casbin-mongodb-adapter-2.0.0.tgz","fileCount":18,"unpackedSize":52174,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDRQXW8LID0bw+Px6B7dgf+bSICCv6ATG8vxXzXGYA8CwIgfxZe8hRwZpIhgQ+3YvEC6CtIGk/f4bwyUqJFK6pvPkE="}]},"_npmUser":{"name":"laurentbs","email":"laurentbenameur@gmail.com"},"directories":{},"maintainers":[{"name":"laurentbs","email":"laurentbenameur@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/casbin-mongodb-adapter_2.0.0_1753638977640_0.8815071130617791"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-27T17:56:17.461Z","2.0.0":"2025-07-27T17:56:17.821Z","modified":"2025-07-27T17:56:18.176Z"},"maintainers":[{"name":"laurentbs","email":"laurentbenameur@gmail.com"}],"description":"Pure MongoDB adapter for Casbin","homepage":"https://github.com/247CL/casbin-mongodb-adapter#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/247CL/casbin-mongodb-adapter.git"},"bugs":{"url":"https://github.com/247CL/casbin-mongodb-adapter/issues"},"license":"MIT","readme":"casbin-mongodb-adapter\n===\n\nMongoDB policy storage, implemented as an adapter for [node-casbin](https://github.com/casbin/node-casbin).\n\n<a href=\"https://img.shields.io/npm/v/casbin-mongodb-adapter\" target=\"_blank\">\n  <image src=\"https://img.shields.io/npm/v/casbin-mongodb-adapter\" alt=\"NPM Version\" />\n</a>\n<a href=\"https://img.shields.io/npm/dm/casbin-mongodb-adapter\" target=\"_blank\">\n  <image src=\"https://img.shields.io/npm/dm/casbin-mongodb-adapter\" alt=\"NPM Version\" />\n</a>\n<a href=\"https://img.shields.io/gitter/room/casbin/lobby\" target=\"_blank\">\n  <image src=\"https://img.shields.io/gitter/room/casbin/lobby\" alt=\"Build\" />\n</a>\n<a href=\"https://img.shields.io/codacy/grade/8b44237b493644e788bf0b175708095b/master\" target=\"_blank\">\n  <image src=\"https://img.shields.io/codacy/grade/8b44237b493644e788bf0b175708095b/master\" alt=\"Code Quality\" />\n</a>\n<a href=\"https://img.shields.io/circleci/build/github/juicycleff/casbin-mongodb-adapter/master\" target=\"_blank\">\n  <image src=\"https://img.shields.io/circleci/build/github/juicycleff/casbin-mongodb-adapter/master\" alt=\"Build\" />\n</a>\n<a href=\"https://img.shields.io/codecov/c/gh/juicycleff/casbin-mongodb-adapter\" target=\"_blank\">\n  <image src=\"https://img.shields.io/codecov/c/gh/juicycleff/casbin-mongodb-adapter\" alt=\"Build\" />\n</a>\n<a href=\"https://img.shields.io/gitter/room/casbin/lobby\" target=\"_blank\">\n  <image src=\"https://img.shields.io/gitter/room/casbin/lobby\" alt=\"Build\" />\n</a>\n\n## Getting Started\n\nInstall the package as dependency in your project:\n\n```bash\nnpm install --save casbin-mongodb-adapter\n```\n\nRequire it in a place, where you are instantiating an enforcer ([read more about enforcer here](https://github.com/casbin/node-casbin#get-started)):\n\n```javascript\nimport {newEnforcer, Enforcer} from 'casbin';\nimport { MongoAdapter } from 'casbin-mongodb-adapter';\nimport * as path from 'path';\n\nasync function myFunction() {\n  const model = path.resolve(__dirname, 'casbin-files/rbac_model.conf');\n\n  const adapter = await MongoAdapter.newAdapter({\n    uri: 'mongodb://localhost:27017',\n    collection: 'casbin',\n    database: 'node-casbin-official'\n  });\n\n  const e = await newEnforcer(model, adapter);\n\n  await e.loadPolicy();\n\n  // Check the permission.\n  e.enforce('alice', 'data1', 'read');\n\n  // Modify the policy.\n  // await e.addPolicy(...);\n  // await e.removePolicy(...);\n\n  // Save the policy back to DB.\n  await e.savePolicy();\n}\n```\n\nThat is all what required for integrating the adapter into casbin.\nCasbin itself calls adapter methods to persist updates you made through it.\n\n## Configuration\n\nYou can pass mongodb-specific options when instantiating the adapter:\n\n```javascript\nimport { MongoAdapter } from 'casbin-mongodb-adapter';\n\nconst adapter = await MongoAdapter.newAdapter({\n  uri: 'mongodb://localhost:27017',\n  collection: 'casbin',\n  database: 'node-casbin-official',\n  option: {\n    ...mongoOptions\n  }\n});\n```\n\nAdditional information regard to options you can pass in you can find in [mongodb documentation](https://mongodb.github.io/node-mongodb-native/)\n\n## License\n\n[Apache-2.0](./LICENSE)\n","readmeFilename":"README.md","_rev":"1-29fb39c9cce2078cc7c067615589c877"}