| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- export type IApiRateLimitConfig = {
- method: string,
- maxRequests: number,
- usersPerIpProspection?: number,
- }
- export type IApiRateLimitEndpointMap = {
- [endpoint: string]: IApiRateLimitConfig
- }
- export const DEFAULT_MAX_REQUESTS = 500;
- export const DEFAULT_DURATION_SEC = 60;
- export const DEFAULT_USERS_PER_IP_PROSPECTION = 5;
- const MAX_REQUESTS_TIER_1 = 5;
- const MAX_REQUESTS_TIER_2 = 20;
- const MAX_REQUESTS_TIER_3 = 50;
- const MAX_REQUESTS_TIER_4 = 100;
- // default config without reg exp
- export const defaultConfig: IApiRateLimitEndpointMap = {
- '/_api/v3/healthcheck': {
- method: 'GET',
- maxRequests: 60,
- usersPerIpProspection: 1,
- },
- '/installer': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_1,
- usersPerIpProspection: 1,
- },
- '/login': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_1,
- usersPerIpProspection: 100,
- },
- '/login/activateInvited': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_2,
- },
- '/register': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_1,
- usersPerIpProspection: 20,
- },
- '/user-activation/register': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_1,
- usersPerIpProspection: 20,
- },
- '/_api/login/testLdap': {
- method: 'POST',
- maxRequests: MAX_REQUESTS_TIER_2,
- usersPerIpProspection: 1,
- },
- '/_api/check_username': {
- method: 'GET',
- maxRequests: MAX_REQUESTS_TIER_3,
- },
- };
- // default config with reg exp
- export const defaultConfigWithRegExp = {
- '/forgot-password/.*': {
- method: 'ALL',
- maxRequests: MAX_REQUESTS_TIER_1,
- },
- '/user-activation/.*': {
- method: 'GET',
- maxRequests: MAX_REQUESTS_TIER_1,
- },
- '/attachment/[0-9a-z]{24}': {
- method: 'GET',
- maxRequests: MAX_REQUESTS_TIER_4,
- },
- '/download/[0-9a-z]{24}': {
- method: 'GET',
- maxRequests: MAX_REQUESTS_TIER_4,
- },
- '/share/[0-9a-z]{24}': {
- method: 'GET',
- maxRequests: MAX_REQUESTS_TIER_4,
- },
- };
|