From fbebeaf38f1c978c758765acf1b0f9288a251c6b Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 19 Sep 2024 01:08:11 +0800 Subject: [PATCH] misc: added rate limiter --- .../src/server/routes/v2/group-project-router.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/backend/src/server/routes/v2/group-project-router.ts b/backend/src/server/routes/v2/group-project-router.ts index 2418cb0e9..69f309e55 100644 --- a/backend/src/server/routes/v2/group-project-router.ts +++ b/backend/src/server/routes/v2/group-project-router.ts @@ -8,6 +8,7 @@ import { ProjectUserMembershipRolesSchema } from "@app/db/schemas"; import { PROJECTS } from "@app/lib/api-docs"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types"; @@ -17,6 +18,9 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => method: "POST", url: "/:projectSlug/groups/:groupSlug", onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: writeLimit + }, schema: { description: "Add group to project", security: [ @@ -138,6 +142,9 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => method: "DELETE", url: "/:projectSlug/groups/:groupSlug", onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: writeLimit + }, schema: { description: "Remove group from project", security: [ @@ -172,6 +179,9 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => method: "GET", url: "/:projectSlug/groups", onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: readLimit + }, schema: { description: "Return list of groups in project", security: [ @@ -226,6 +236,9 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) => method: "GET", url: "/:projectSlug/groups/:groupSlug", onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + config: { + rateLimit: readLimit + }, schema: { description: "Return project group", security: [