{"_id":"@cognitiveproof/softbinding-api-plugin-redis-rate-limit","name":"@cognitiveproof/softbinding-api-plugin-redis-rate-limit","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@cognitiveproof/softbinding-api-plugin-redis-rate-limit","version":"1.0.0","description":"Redis-backed rate limit store plugin for the C2PA Soft Binding Resolution API server","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","typecheck":"tsc --noEmit","test":"jest"},"dependencies":{"@cognitiveproof/softbinding-api-plugin-types":"^1.0.0","ioredis":"^5.11.1","rate-limit-redis":"^5.0.0"},"devDependencies":{"@types/jest":"^30.0.0","express-rate-limit":"^8.5.2","jest":"^30.4.2","ts-jest":"^29.4.11","typescript":"^5.3.3"},"gitHead":"9ad98a64ca17474e8154258c8a269fadfb7e44d1","_id":"@cognitiveproof/softbinding-api-plugin-redis-rate-limit@1.0.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-BOgIpiOyPO4WFvsMQRc0KV+/A5xu1YgTjMYJlvJJBEuHXJr2AWOdNnHuX71XoeL24VYf0rb8BhZwMh3sXc9VXw==","shasum":"69c4354065c9aeeae46c5667689c126a9790b84c","tarball":"https://registry.npmjs.org/@cognitiveproof/softbinding-api-plugin-redis-rate-limit/-/softbinding-api-plugin-redis-rate-limit-1.0.0.tgz","fileCount":5,"unpackedSize":5043,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID2Rjpj5TmY4stc5IgMtYUfVnDa5BFMKvo//CqMA1kLFAiBiJ8A1EtuL79gZZiL8O/PlBeCs/k5BOXxPRMmzcNWgGw=="}]},"_npmUser":{"name":"mrappard","email":"mrappard@gmail.com"},"directories":{},"maintainers":[{"name":"mrappard","email":"mrappard@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/softbinding-api-plugin-redis-rate-limit_1.0.0_1781197017850_0.8122218407949178"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T16:56:57.697Z","1.0.0":"2026-06-11T16:56:58.032Z","modified":"2026-06-11T16:56:58.221Z"},"maintainers":[{"name":"mrappard","email":"mrappard@gmail.com"}],"description":"Redis-backed rate limit store plugin for the C2PA Soft Binding Resolution API server","license":"MIT","readme":"# @cognitiveproof/softbinding-api-plugin-redis-rate-limit\n\nRedis-backed `RateLimitStorePlugin` for [`@cognitiveproof/softbinding-api-server`](https://github.com/mrappard/c2pa-soft-binding-server) — the C2PA Soft Binding Resolution API server.\n\n`createServer()` rate-limits `/v1` routes via [`express-rate-limit`](https://express-rate-limit.mintlify.app/), which by default tracks counters in-memory — fine for a single instance, but each replica tracks its own counters separately. This plugin provides a shared [`rate-limit-redis`](https://github.com/express-rate-limit/rate-limit-redis) store (backed by [`ioredis`](https://github.com/redis/ioredis)) so multiple server instances/replicas share the same rate limit counters.\n\n## Install\n\n```bash\nnpm install @cognitiveproof/softbinding-api-server @cognitiveproof/softbinding-api-plugin-redis-rate-limit\n```\n\n## Usage\n\n```ts\nimport { createServer } from '@cognitiveproof/softbinding-api-server';\n\nconst app = createServer({\n  rateLimitStore: '@cognitiveproof/softbinding-api-plugin-redis-rate-limit',\n});\n```\n\nOr pass the package name via the `RATELIMIT_STORE_PLUGIN` environment variable and omit the `rateLimitStore` option entirely.\n\nTo pass options (instead of relying on `REDIS_URL`), import and call the plugin directly:\n\n```ts\nimport { createServer } from '@cognitiveproof/softbinding-api-server';\nimport createRedisRateLimitStore from '@cognitiveproof/softbinding-api-plugin-redis-rate-limit';\n\nconst app = createServer({\n  rateLimitStore: createRedisRateLimitStore({\n    url: 'redis://my-redis:6379',\n    prefix: 'softbinding-rl:',\n  }),\n});\n```\n\n## Configuration\n\n| Option   | Env var     | Default                  | Description                                |\n| -------- | ----------- | ------------------------ | ------------------------------------------ |\n| `url`    | `REDIS_URL` | `redis://localhost:6379` | Redis connection string                    |\n| `prefix` | —           | `rl:`                    | Prefix for rate limit keys stored in Redis |\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md","_rev":"1-06bfe5a957dfef1eda1ce193b2b9d4ce"}