{"id":44540,"library":"casbin-redis-adapter","title":"casbin-redis-adapter","description":"Redis adapter for node-casbin, version 1.0.4 (stable). Provides policy storage in Redis for Casbin authorization. Requires peer dependency casbin ^5.9.0. Ships TypeScript definitions. Supports configurable Redis connection options via NodeRedis client opts. Differs from other adapters (e.g., MySQL, PostgreSQL) by leveraging Redis for fast, in-memory policy storage. Release cadence is low; last update was 2021.","status":"active","version":"1.0.4","language":"javascript","source_language":"en","source_url":"https://github.com/node-casbin/redis-adapter","tags":["javascript","typescript"],"install":[{"cmd":"npm install casbin-redis-adapter","lang":"bash","label":"npm"},{"cmd":"yarn add casbin-redis-adapter","lang":"bash","label":"yarn"},{"cmd":"pnpm add casbin-redis-adapter","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for enforcer integration; version ^5.9.0","package":"casbin","optional":false}],"imports":[{"note":"Default export does not exist; use named import.","wrong":"import NodeRedisAdapter from 'casbin-redis-adapter'","symbol":"NodeRedisAdapter","correct":"import { NodeRedisAdapter } from 'casbin-redis-adapter'"},{"note":"newAdapter is a static async factory method; constructor is not exposed.","wrong":"new NodeRedisAdapter(options)","symbol":"newAdapter","correct":"NodeRedisAdapter.newAdapter(options)"},{"note":"Interface is exported for type checking.","wrong":"type IConnectionOptions = { host: string; port: number }","symbol":"IConnectionOptions","correct":"import { IConnectionOptions } from 'casbin-redis-adapter'"}],"quickstart":{"code":"import { newEnforcer } from 'casbin';\nimport { NodeRedisAdapter } from 'casbin-redis-adapter';\nimport { join } from 'path';\n\nasync function main() {\n  const model = join(__dirname, 'model.conf');\n  const adapter = await NodeRedisAdapter.newAdapter({\n    host: process.env.REDIS_HOST ?? '127.0.0.1',\n    port: parseInt(process.env.REDIS_PORT ?? '6379', 10)\n  });\n  const enforcer = await newEnforcer(model, adapter);\n  const allowed = await enforcer.enforce('alice', 'data1', 'read');\n  console.log('Allowed:', allowed);\n}\nmain().catch(console.error);","lang":"typescript","description":"Initialize Casbin enforcer with Redis adapter for policy storage and enforce a permission check."},"warnings":[{"fix":"Implement custom retry logic or use Redis client with auto-reconnect options.","message":"NodeRedisAdapter does not support automatic reconnection; connection failures may cause runtime errors.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Replace `new NodeRedisAdapter(...)` with `await NodeRedisAdapter.newAdapter(...)`.","message":"The constructor is deprecated; use NodeRedisAdapter.newAdapter() instead.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Ensure casbin version is between 5.9.0 and 6.0.0.","message":"Requires casbin peer dependency version ^5.9.0; incompatible with casbin 4.x or 6.x.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use a different adapter or implement custom Redis client with sentinel/cluster support.","message":"The adapter does not support Redis Sentinel or Cluster configurations; only single-node Redis.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.4':12 '2021':63 '5.9.0':26 'adapt':4,6,42 'author':21 'cadenc':57 'casbin':2,10,20,25 'casbin-redis-adapt':1 'client':37 'configur':31 'connect':33 'definit':29 'depend':24 'differ':39 'e.g':43 'fast':50 'in-memori':51 'javascript':64 'last':60 'leverag':47 'low':59 'memori':53 'mysql':44 'node':9 'node-casbin':8 'noderedi':36 'opt':38 'option':34 'peer':23 'polici':15,54 'postgresql':45 'provid':14 'redi':3,5,18,32,48 'releas':56 'requir':22 'ship':27 'stabl':13 'storag':16,55 'support':30 'typescript':28,65 'updat':61 'version':11 'via':35","created_at":"2026-06-07T12:50:38.113056+00:00","updated_at":"2026-06-07T12:50:38.113056+00:00","problems":[{"fix":"Use `import { NodeRedisAdapter } from 'casbin-redis-adapter'`","cause":"Importing default export instead of named import.","error":"TypeError: NodeRedisAdapter.newAdapter is not a function"},{"fix":"Run `npm install casbin@^5.9.0`","cause":"Missing peer dependency casbin.","error":"Error: Cannot find module 'casbin'"},{"fix":"Start Redis server or check connection options.","cause":"Redis server is not running or host/port incorrect.","error":"ConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:6379"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://casbin.org","github":"https://github.com/node-casbin/redis-adapter","docs":null,"changelog":null,"pypi":null,"npm":"casbin-redis-adapter","openapi_spec":null,"status_page":null,"smithery":null,"categories":["security"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}