mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import {ms} from 'itty-time';
|
|
import type {RouteRateLimitConfig} from '../middleware/RateLimitMiddleware';
|
|
|
|
export const WebhookRateLimitConfigs = {
|
|
WEBHOOK_LIST_GUILD: {
|
|
bucket: 'webhook:list::guild_id',
|
|
config: {limit: 40, windowMs: ms('10 seconds')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_LIST_CHANNEL: {
|
|
bucket: 'webhook:list::channel_id',
|
|
config: {limit: 40, windowMs: ms('10 seconds')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_CREATE: {
|
|
bucket: 'webhook:create::channel_id',
|
|
config: {limit: 10, windowMs: ms('1 minute')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_GET: {
|
|
bucket: 'webhook:read::webhook_id',
|
|
config: {limit: 100, windowMs: ms('10 seconds')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_UPDATE: {
|
|
bucket: 'webhook:update::webhook_id',
|
|
config: {limit: 20, windowMs: ms('10 seconds')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_DELETE: {
|
|
bucket: 'webhook:delete::webhook_id',
|
|
config: {limit: 20, windowMs: ms('10 seconds')},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_EXECUTE: {
|
|
bucket: 'webhook:execute::webhook_id',
|
|
config: {limit: 60, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_MESSAGE_GET: {
|
|
bucket: 'webhook:message_get::webhook_id',
|
|
config: {limit: 60, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_MESSAGE_EDIT: {
|
|
bucket: 'webhook:message_edit::webhook_id',
|
|
config: {limit: 30, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_MESSAGE_DELETE: {
|
|
bucket: 'webhook:message_delete::webhook_id',
|
|
config: {limit: 30, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_GITHUB: {
|
|
bucket: 'webhook:github::webhook_id',
|
|
config: {limit: 200, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
WEBHOOK_INSTATUS: {
|
|
bucket: 'webhook:instatus::webhook_id',
|
|
config: {limit: 200, windowMs: ms('1 minute'), exemptFromGlobal: true},
|
|
} as RouteRateLimitConfig,
|
|
} as const;
|