Skip to content

Commit aa85957

Browse files
committed
ccfri-4492 - add RedisStore for rate limiter
1 parent f1c50da commit aa85957

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

backend/package-lock.json

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"path": "0.12.7",
6565
"puppeteer": "^23.5.0",
6666
"querystring": "0.2.0",
67+
"rate-limit-redis": "^4.2.0",
6768
"redlock": "^4.2.0",
6869
"strip-ansi": "^6.0.0",
6970
"uuid": "^8.3.2",

backend/src/app.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const changeRequestRouter = require('./routes/changeRequest');
3636
const pdfRouter = require('./routes/pdf');
3737
const canadaPostRouter = require('./routes/canadaPost');
3838
const connectRedis = require('connect-redis');
39+
const { RedisStore } = require('rate-limit-redis');
3940
const rateLimit = require('express-rate-limit');
4041

4142
const promMid = require('express-prometheus-middleware');
@@ -196,7 +197,7 @@ const limiter = rateLimit({
196197
limit: 100, // Limit each IP to 100 requests per `window` (here, per 15 minutes)
197198
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
198199
legacyHeaders: false, // Disable the `X-RateLimit-*` headers
199-
store: dbSession,
200+
store: dbSession ? new RedisStore({ sendCommand: (...args) => dbSession.client.call(...args) }) : undefined,
200201
});
201202
app.use('/api/canadaPost', limiter);
202203

0 commit comments

Comments
 (0)