fix(api): tighten guild emoji and sticker mutation limits (#2453)

This commit is contained in:
Hampus authored and GitHub committed 2026-09-04 17:58:08 +02:00
1 parent f4c1254d91
commit 84d7290ed9
3 files changed
+16 -6

No files matched your search

@@ -152,6 +152,7 @@ export function GuildEmojiController(app: HonoApp) {
app.delete(
'/guilds/:guild_id/emojis/:emoji_id',
RateLimitMiddleware(RateLimitConfigs.GUILD_EMOJI_DELETE),
RateLimitMiddleware(RateLimitConfigs.GUILD_EMOJI_DELETE_DAILY),
LoginRequired,
Validator('param', GuildIdEmojiIdParam),
Validator('query', PurgeQuery),
@@ -165,6 +165,7 @@ export function GuildStickerController(app: HonoApp) {
app.delete(
'/guilds/:guild_id/stickers/:sticker_id',
RateLimitMiddleware(RateLimitConfigs.GUILD_STICKER_DELETE),
RateLimitMiddleware(RateLimitConfigs.GUILD_STICKER_DELETE_DAILY),
LoginRequired,
Validator('param', GuildIdStickerIdParam),
Validator('query', PurgeQuery),
@@ -110,7 +110,7 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_EMOJI_CREATE: {
bucket: 'guild:emoji:create::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_EMOJI_BULK_CREATE: {
bucket: 'guild:emoji:bulk_create::guild_id',
@@ -118,7 +118,7 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_EMOJI_CLONE: {
bucket: 'guild:emoji:clone::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_EMOJI_UPDATE: {
bucket: 'guild:emoji:update::guild_id',
@@ -126,7 +126,11 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_EMOJI_DELETE: {
bucket: 'guild:emoji:delete::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_EMOJI_DELETE_DAILY: {
bucket: 'guild:emoji:delete:daily::guild_id',
config: {limit: 300, windowMs: ms('1 day')},
} as RouteRateLimitConfig,
GUILD_EMOJI_METADATA: {
bucket: 'guild:emoji:metadata::user_id',
@@ -138,7 +142,7 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_STICKER_CREATE: {
bucket: 'guild:sticker:create::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_STICKER_BULK_CREATE: {
bucket: 'guild:sticker:bulk_create::guild_id',
@@ -146,7 +150,7 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_STICKER_CLONE: {
bucket: 'guild:sticker:clone::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_STICKER_UPDATE: {
bucket: 'guild:sticker:update::guild_id',
@@ -154,7 +158,11 @@ export const GuildRateLimitConfigs = {
} as RouteRateLimitConfig,
GUILD_STICKER_DELETE: {
bucket: 'guild:sticker:delete::guild_id',
config: {limit: 20, windowMs: ms('10 seconds')},
config: {limit: 10, windowMs: ms('30 seconds')},
} as RouteRateLimitConfig,
GUILD_STICKER_DELETE_DAILY: {
bucket: 'guild:sticker:delete:daily::guild_id',
config: {limit: 300, windowMs: ms('1 day')},
} as RouteRateLimitConfig,
GUILD_STICKER_METADATA: {
bucket: 'guild:sticker:metadata::user_id',