diff --git a/server/utils/RateLimiter.ts b/server/utils/RateLimiter.ts index 9aa6a2e16..f18eb5175 100644 --- a/server/utils/RateLimiter.ts +++ b/server/utils/RateLimiter.ts @@ -1,6 +1,7 @@ import { IRateLimiterStoreOptions, RateLimiterRedis, + RateLimiterMemory, } from "rate-limiter-flexible"; import env from "@server/env"; import Redis from "@server/redis"; @@ -14,11 +15,17 @@ export default class RateLimiter { static readonly rateLimiterMap = new Map(); + static readonly insuranceRateLimiter = new RateLimiterMemory({ + points: env.RATE_LIMITER_REQUESTS, + duration: env.RATE_LIMITER_DURATION_WINDOW, + }); + static readonly defaultRateLimiter = new RateLimiterRedis({ storeClient: Redis.defaultClient, points: env.RATE_LIMITER_REQUESTS, duration: env.RATE_LIMITER_DURATION_WINDOW, keyPrefix: this.RATE_LIMITER_REDIS_KEY_PREFIX, + insuranceLimiter: this.insuranceRateLimiter, }); static getRateLimiter(path: string): RateLimiterRedis {