diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 483f8e54c..8e9cdf3bb 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -145,36 +145,6 @@ export const PROJECTS = { name: "The new name of the project.", autoCapitalization: "Disable or enable auto-capitalization for the project." }, - INVITE_MEMBER: { - projectId: "The ID of the project to invite the member to.", - emails: "A list of organization member emails to invite to the project.", - usernames: "A list of usernames to invite to the project." - }, - REMOVE_MEMBER: { - projectId: "The ID of the project to remove the member from.", - emails: "A list of organization member emails to remove from the project.", - usernames: "A list of usernames to remove from the project." - }, - GET_USER_MEMBERSHIPS: { - workspaceId: "The ID of the project to get memberships from." - }, - UPDATE_USER_MEMBERSHIP: { - workspaceId: "The ID of the project to update the membership for.", - membershipId: "The ID of the membership to update.", - roles: "A list of roles to update the membership to." - }, - LIST_IDENTITY_MEMBERSHIPS: { - projectId: "The ID of the project to get identity memberships from." - }, - UPDATE_IDENTITY_MEMBERSHIP: { - projectId: "The ID of the project to update the identity membership for.", - identityId: "The ID of the identity to update the membership for.", - roles: "A list of roles to update the membership to." - }, - DELETE_IDENTITY_MEMBERSHIP: { - projectId: "The ID of the project to delete the identity membership from.", - identityId: "The ID of the identity to delete the membership from." - }, GET_KEY: { workspaceId: "The ID of the project to get the key from." }, @@ -213,6 +183,42 @@ export const PROJECTS = { } } as const; +export const PROJECT_USERS = { + INVITE_MEMBER: { + projectId: "The ID of the project to invite the member to.", + emails: "A list of organization member emails to invite to the project.", + usernames: "A list of usernames to invite to the project." + }, + REMOVE_MEMBER: { + projectId: "The ID of the project to remove the member from.", + emails: "A list of organization member emails to remove from the project.", + usernames: "A list of usernames to remove from the project." + }, + GET_USER_MEMBERSHIPS: { + workspaceId: "The ID of the project to get memberships from." + }, + UPDATE_USER_MEMBERSHIP: { + workspaceId: "The ID of the project to update the membership for.", + membershipId: "The ID of the membership to update.", + roles: "A list of roles to update the membership to." + } +}; + +export const PROJECT_IDENTITIES = { + LIST_IDENTITY_MEMBERSHIPS: { + projectId: "The ID of the project to get identity memberships from." + }, + UPDATE_IDENTITY_MEMBERSHIP: { + projectId: "The ID of the project to update the identity membership for.", + identityId: "The ID of the identity to update the membership for.", + roles: "A list of roles to update the membership to." + }, + DELETE_IDENTITY_MEMBERSHIP: { + projectId: "The ID of the project to delete the identity membership from.", + identityId: "The ID of the identity to delete the membership from." + } +}; + export const ENVIRONMENTS = { CREATE: { workspaceId: "The ID of the project to create the environment in.", diff --git a/backend/src/server/routes/v1/project-membership-router.ts b/backend/src/server/routes/v1/project-membership-router.ts index d2ed649db..001775d96 100644 --- a/backend/src/server/routes/v1/project-membership-router.ts +++ b/backend/src/server/routes/v1/project-membership-router.ts @@ -9,7 +9,7 @@ import { UsersSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; -import { PROJECTS } from "@app/lib/api-docs"; +import { PROJECT_USERS } 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"; @@ -30,7 +30,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.GET_USER_MEMBERSHIPS.workspaceId) + workspaceId: z.string().trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIPS.workspaceId) }), response: { 200: z.object({ @@ -142,8 +142,8 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - workspaceId: z.string().trim().describe(PROJECTS.UPDATE_USER_MEMBERSHIP.workspaceId), - membershipId: z.string().trim().describe(PROJECTS.UPDATE_USER_MEMBERSHIP.membershipId) + workspaceId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.workspaceId), + membershipId: z.string().trim().describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.membershipId) }), body: z.object({ roles: z @@ -164,7 +164,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider ) .min(1) .refine((data) => data.some(({ isTemporary }) => !isTemporary), "At least one long lived role is required") - .describe(PROJECTS.UPDATE_USER_MEMBERSHIP.roles) + .describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.roles) }), response: { 200: z.object({ diff --git a/backend/src/server/routes/v2/identity-project-router.ts b/backend/src/server/routes/v2/identity-project-router.ts index a4068053f..476b09343 100644 --- a/backend/src/server/routes/v2/identity-project-router.ts +++ b/backend/src/server/routes/v2/identity-project-router.ts @@ -7,7 +7,7 @@ import { ProjectMembershipRole, ProjectUserMembershipRolesSchema } from "@app/db/schemas"; -import { PROJECTS } from "@app/lib/api-docs"; +import { PROJECT_IDENTITIES } 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"; @@ -64,8 +64,8 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) } ], params: z.object({ - projectId: z.string().trim().describe(PROJECTS.UPDATE_IDENTITY_MEMBERSHIP.projectId), - identityId: z.string().trim().describe(PROJECTS.UPDATE_IDENTITY_MEMBERSHIP.identityId) + projectId: z.string().trim().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.projectId), + identityId: z.string().trim().describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.identityId) }), body: z.object({ roles: z @@ -85,7 +85,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) ]) ) .min(1) - .describe(PROJECTS.UPDATE_IDENTITY_MEMBERSHIP.roles) + .describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles) }), response: { 200: z.object({ @@ -122,8 +122,8 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) } ], params: z.object({ - projectId: z.string().trim().describe(PROJECTS.DELETE_IDENTITY_MEMBERSHIP.projectId), - identityId: z.string().trim().describe(PROJECTS.DELETE_IDENTITY_MEMBERSHIP.identityId) + projectId: z.string().trim().describe(PROJECT_IDENTITIES.DELETE_IDENTITY_MEMBERSHIP.projectId), + identityId: z.string().trim().describe(PROJECT_IDENTITIES.DELETE_IDENTITY_MEMBERSHIP.identityId) }), response: { 200: z.object({ @@ -159,7 +159,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) } ], params: z.object({ - projectId: z.string().trim().describe(PROJECTS.LIST_IDENTITY_MEMBERSHIPS.projectId) + projectId: z.string().trim().describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.projectId) }), response: { 200: z.object({ diff --git a/backend/src/server/routes/v2/project-membership-router.ts b/backend/src/server/routes/v2/project-membership-router.ts index 96471dc2c..a9592faab 100644 --- a/backend/src/server/routes/v2/project-membership-router.ts +++ b/backend/src/server/routes/v2/project-membership-router.ts @@ -2,7 +2,7 @@ import { z } from "zod"; import { ProjectMembershipsSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; -import { PROJECTS } from "@app/lib/api-docs"; +import { PROJECT_USERS } from "@app/lib/api-docs"; import { writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -22,11 +22,11 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - projectId: z.string().describe(PROJECTS.INVITE_MEMBER.projectId) + projectId: z.string().describe(PROJECT_USERS.INVITE_MEMBER.projectId) }), body: z.object({ - emails: z.string().email().array().default([]).describe(PROJECTS.INVITE_MEMBER.emails), - usernames: z.string().array().default([]).describe(PROJECTS.INVITE_MEMBER.usernames) + emails: z.string().email().array().default([]).describe(PROJECT_USERS.INVITE_MEMBER.emails), + usernames: z.string().array().default([]).describe(PROJECT_USERS.INVITE_MEMBER.usernames) }), response: { 200: z.object({ @@ -77,11 +77,11 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider } ], params: z.object({ - projectId: z.string().describe(PROJECTS.REMOVE_MEMBER.projectId) + projectId: z.string().describe(PROJECT_USERS.REMOVE_MEMBER.projectId) }), body: z.object({ - emails: z.string().email().array().default([]).describe(PROJECTS.REMOVE_MEMBER.emails), - usernames: z.string().array().default([]).describe(PROJECTS.REMOVE_MEMBER.usernames) + emails: z.string().email().array().default([]).describe(PROJECT_USERS.REMOVE_MEMBER.emails), + usernames: z.string().array().default([]).describe(PROJECT_USERS.REMOVE_MEMBER.usernames) }), response: { 200: z.object({