feat: Put request rate limit at application server (#3857)

* feat: Put request rate limit at application server

This PR contains implementation for a blanket rate limiter at
application server level. Currently the allowed throughput is set high
only to be changed later as per the actual data gathered.

* Simplify implementation

1. Remove shutdown handler to purge rate limiter keys
2. Have separate keys for default and custom(route-based) rate limiters
3. Do not kill default rate limiter because it is not needed anymore due
   to (2) above

* Set 60s as default for rate limiting window

* Fix env types
This commit is contained in:
Apoorv Mishra
2022-08-11 15:40:30 +05:30
committed by GitHub
parent 593cf73118
commit 7eaa8eb961
9 changed files with 148 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
import { Context } from "koa";
import Redis from "@server/redis";
import { FileOperation, Team, User } from "./models";
export enum AuthenticationTypes {
@@ -297,3 +298,9 @@ export type Event =
| UserEvent
| ViewEvent
| WebhookSubscriptionEvent;
export type RateLimiterConfig = {
points: number;
duration: number;
storeClient: Redis;
};