feat: base64 uploads, reusable forms, Discord roles, and UX improvements #66

Merged
naomi merged 8 commits from fix/base64 into main 2026-02-20 20:32:52 -08:00
Showing only changes of commit f40f917bc5 - Show all commits
+20 -1
View File
@@ -12,8 +12,27 @@ import { AuditAction, AuditCategory } from "@library/shared-types";
const rateLimitPlugin: FastifyPluginAsync = async (app) => { const rateLimitPlugin: FastifyPluginAsync = async (app) => {
await app.register(fastifyRateLimit, { await app.register(fastifyRateLimit, {
max: 100, max: async (request) => {
// Try to get user from JWT
try {
await request.jwtVerify();
// Authenticated users get higher limits
return 500;
} catch {
// Unauthenticated users get lower limits
return 100;
}
},
timeWindow: "1 minute", timeWindow: "1 minute",
allowList: async (request) => {
// Bypass rate limiting entirely for admin users
try {
await request.jwtVerify();
return request.user?.isAdmin === true;
} catch {
return false;
}
},
errorResponseBuilder: (request) => { errorResponseBuilder: (request) => {
// Log rate limit exceeded event // Log rate limit exceeded event
AuditService.log({ AuditService.log({