introduce rate limit variables

main
Philipp Schmid 2023-04-05 11:04:59 +02:00
parent 415eb2194f
commit 129336c168
1 changed files with 9 additions and 8 deletions

View File

@ -67,15 +67,16 @@ export default class ChatServer {
this.app.use(express.json({ limit: '1mb' }));
this.app.use(compression());
if (process.env.DISABLE_RATE_LIMIT !== 'true') {
const { default: rateLimit } = await import('express-rate-limit'); // esm
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
});
const rateLimitWindowMs = process.env.RATE_LIMIT_WINDOW_MS ? parseInt(process.env.RATE_LIMIT_WINDOW_MS, 10) : 15 * 60 * 1000; // 15 minutes
const rateLimitMax = process.env.RATE_LIMIT_MAX ? parseInt(process.env.RATE_LIMIT_MAX, 10) : 100; // limit each IP to 100 requests per windowMs
this.app.use(limiter);
}
const { default: rateLimit } = await import('express-rate-limit'); // esm
const limiter = rateLimit({
windowMs: rateLimitWindowMs,
max: rateLimitMax,
});
this.app.use(limiter);
this.app.get('/chatapi/health', (req, res) => new HealthRequestHandler(this, req, res));
this.app.get('/chatapi/session', (req, res) => new SessionRequestHandler(this, req, res));