diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts index 94a15f94bb..c893b60baf 100644 --- a/packages/backend/src/server/api/RateLimiterService.ts +++ b/packages/backend/src/server/api/RateLimiterService.ts @@ -4,12 +4,13 @@ import Redis from 'ioredis'; import { DI } from '@/di-symbols.js'; import type Logger from '@/logger.js'; import { LoggerService } from '@/core/LoggerService.js'; -import type { IEndpointMeta } from './endpoints.js'; import { bindThis } from '@/decorators.js'; +import type { IEndpointMeta } from './endpoints.js'; @Injectable() export class RateLimiterService { private logger: Logger; + private disabled = false; constructor( @Inject(DI.redis) @@ -18,13 +19,17 @@ export class RateLimiterService { private loggerService: LoggerService, ) { this.logger = this.loggerService.getLogger('limiter'); + + if (process.env.NODE_ENV !== 'production') { + this.disabled = true; + } } @bindThis public limit(limitation: IEndpointMeta['limit'] & { key: NonNullable }, actor: string) { return new Promise((ok, reject) => { - if (process.env.NODE_ENV === 'test') ok(); - + if (this.disabled) ok(); + // Short-term limit const min = (): void => { const minIntervalLimiter = new Limiter({