feat(api-docs): add error responses to API documentation

This commit is contained in:
Daniel Hougaard
2024-09-26 20:48:00 +04:00
parent 2d51ed317f
commit 7ac4b0b79f
39 changed files with 297 additions and 14 deletions

View File

@@ -7,7 +7,7 @@ import { daysToMillisecond } from "@app/lib/dates";
import { removeTrailingSlash } from "@app/lib/fn";
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { SanitizedDynamicSecretSchema } from "@app/server/routes/sanitizedSchemas";
import { DefaultResponseErrorsSchema, SanitizedDynamicSecretSchema } from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvider) => {
@@ -37,6 +37,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.CREATE.path)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
lease: DynamicSecretLeasesSchema,
dynamicSecret: SanitizedDynamicSecretSchema,
@@ -81,6 +82,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide
isForced: z.boolean().default(false).describe(DYNAMIC_SECRET_LEASES.DELETE.isForced)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
lease: DynamicSecretLeasesSchema
})
@@ -134,6 +136,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.RENEW.environmentSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
lease: DynamicSecretLeasesSchema
})
@@ -174,6 +177,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.GET_BY_LEASEID.environmentSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
lease: DynamicSecretLeasesSchema.extend({
dynamicSecret: SanitizedDynamicSecretSchema

View File

@@ -9,7 +9,7 @@ import { daysToMillisecond } from "@app/lib/dates";
import { removeTrailingSlash } from "@app/lib/fn";
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { SanitizedDynamicSecretSchema } from "@app/server/routes/sanitizedSchemas";
import { DefaultResponseErrorsSchema, SanitizedDynamicSecretSchema } from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
export const registerDynamicSecretRouter = async (server: FastifyZodProvider) => {
@@ -59,6 +59,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
})
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
dynamicSecret: SanitizedDynamicSecretSchema
})
@@ -90,6 +91,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
clientSecret: z.string().min(1).describe("The client secret of the Azure Entra ID App Registration")
}),
response: {
...DefaultResponseErrorsSchema,
200: z
.object({
name: z.string().min(1).describe("The name of the user"),
@@ -155,6 +157,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
})
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
dynamicSecret: SanitizedDynamicSecretSchema
})
@@ -194,6 +197,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
isForced: z.boolean().default(false).describe(DYNAMIC_SECRETS.DELETE.isForced)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
dynamicSecret: SanitizedDynamicSecretSchema
})
@@ -229,6 +233,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRETS.GET_BY_NAME.environmentSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
dynamicSecret: SanitizedDynamicSecretSchema.extend({
inputs: z.unknown()
@@ -263,6 +268,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRETS.LIST.environmentSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
dynamicSecrets: SanitizedDynamicSecretSchema.array()
})
@@ -302,6 +308,7 @@ export const registerDynamicSecretRouter = async (server: FastifyZodProvider) =>
environmentSlug: z.string().min(1).describe(DYNAMIC_SECRETS.LIST_LEAES_BY_NAME.environmentSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
leases: DynamicSecretLeasesSchema.array()
})

View File

@@ -4,6 +4,7 @@ import { z } from "zod";
import { GroupsSchema, OrgMembershipRole, UsersSchema } from "@app/db/schemas";
import { GROUPS } from "@app/lib/api-docs";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { DefaultResponseErrorsSchema } from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
export const registerGroupRouter = async (server: FastifyZodProvider) => {
@@ -26,6 +27,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
role: z.string().trim().min(1).default(OrgMembershipRole.NoAccess).describe(GROUPS.CREATE.role)
}),
response: {
...DefaultResponseErrorsSchema,
200: GroupsSchema
}
},
@@ -51,6 +53,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
id: z.string().trim().describe(GROUPS.GET_BY_ID.id)
}),
response: {
...DefaultResponseErrorsSchema,
200: GroupsSchema
}
},
@@ -73,6 +76,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]),
schema: {
response: {
...DefaultResponseErrorsSchema,
200: GroupsSchema.array()
}
},
@@ -112,6 +116,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
})
.partial(),
response: {
...DefaultResponseErrorsSchema,
200: GroupsSchema
}
},
@@ -138,6 +143,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
id: z.string().trim().describe(GROUPS.DELETE.id)
}),
response: {
...DefaultResponseErrorsSchema,
200: GroupsSchema
}
},
@@ -168,6 +174,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
username: z.string().optional().describe(GROUPS.LIST_USERS.username)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
users: UsersSchema.pick({
email: true,
@@ -210,6 +217,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
username: z.string().trim().describe(GROUPS.ADD_USER.username)
}),
response: {
...DefaultResponseErrorsSchema,
200: UsersSchema.pick({
email: true,
username: true,
@@ -243,6 +251,7 @@ export const registerGroupRouter = async (server: FastifyZodProvider) => {
username: z.string().trim().describe(GROUPS.DELETE_USER.username)
}),
response: {
...DefaultResponseErrorsSchema,
200: UsersSchema.pick({
email: true,
username: true,

View File

@@ -10,6 +10,7 @@ import { alphaNumericNanoId } from "@app/lib/nanoid";
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import {
DefaultResponseErrorsSchema,
ProjectPermissionSchema,
ProjectSpecificPrivilegePermissionSchema,
SanitizedIdentityPrivilegeSchema
@@ -52,6 +53,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
).optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privilege: SanitizedIdentityPrivilegeSchema
})
@@ -131,6 +133,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
.describe(IDENTITY_ADDITIONAL_PRIVILEGE.CREATE.temporaryAccessStartTime)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privilege: SanitizedIdentityPrivilegeSchema
})
@@ -215,6 +218,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
.partial()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privilege: SanitizedIdentityPrivilegeSchema
})
@@ -270,6 +274,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
projectSlug: z.string().min(1).describe(IDENTITY_ADDITIONAL_PRIVILEGE.DELETE.projectSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privilege: SanitizedIdentityPrivilegeSchema
})
@@ -311,6 +316,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
projectSlug: z.string().min(1).describe(IDENTITY_ADDITIONAL_PRIVILEGE.GET_BY_SLUG.projectSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privilege: SanitizedIdentityPrivilegeSchema
})
@@ -348,6 +354,7 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F
projectSlug: z.string().min(1).describe(IDENTITY_ADDITIONAL_PRIVILEGE.LIST.projectSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
privileges: SanitizedIdentityPrivilegeSchema.array()
})

View File

@@ -6,7 +6,11 @@ import { ProjectMembershipRole, ProjectMembershipsSchema, ProjectRolesSchema } f
import { PROJECT_ROLE } from "@app/lib/api-docs";
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { ProjectPermissionSchema, SanitizedRoleSchema } from "@app/server/routes/sanitizedSchemas";
import {
DefaultResponseErrorsSchema,
ProjectPermissionSchema,
SanitizedRoleSchema
} from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
@@ -45,6 +49,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
permissions: ProjectPermissionSchema.array().describe(PROJECT_ROLE.CREATE.permissions)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
role: SanitizedRoleSchema
})
@@ -105,6 +110,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
permissions: ProjectPermissionSchema.array().describe(PROJECT_ROLE.UPDATE.permissions).optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
role: SanitizedRoleSchema
})
@@ -146,6 +152,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
roleId: z.string().trim().describe(PROJECT_ROLE.DELETE.roleId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
role: SanitizedRoleSchema
})
@@ -182,6 +189,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
projectSlug: z.string().trim().describe(PROJECT_ROLE.LIST.projectSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
roles: ProjectRolesSchema.omit({ permissions: true }).array()
})
@@ -212,6 +220,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
slug: z.string().trim().describe(PROJECT_ROLE.GET_ROLE_BY_SLUG.roleSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
role: SanitizedRoleSchema
})
@@ -242,6 +251,7 @@ export const registerProjectRoleRouter = async (server: FastifyZodProvider) => {
projectId: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
data: z.object({
membership: ProjectMembershipsSchema.extend({

View File

@@ -6,6 +6,7 @@ import { AUDIT_LOGS, PROJECTS } from "@app/lib/api-docs";
import { getLastMidnightDateISO, removeTrailingSlash } from "@app/lib/fn";
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { DefaultResponseErrorsSchema } from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
import { KmsType } from "@app/services/kms/kms-types";
@@ -33,6 +34,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
limit: z.coerce.number().default(20).describe(PROJECTS.GET_SNAPSHOTS.limit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secretSnapshots: SecretSnapshotsSchema.array()
})

View File

@@ -4,7 +4,7 @@ import { SecretSnapshotsSchema, SecretTagsSchema } 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 { secretRawSchema } from "@app/server/routes/sanitizedSchemas";
import { DefaultResponseErrorsSchema, secretRawSchema } from "@app/server/routes/sanitizedSchemas";
import { AuthMode } from "@app/services/auth/auth-type";
export const registerSnapshotRouter = async (server: FastifyZodProvider) => {
@@ -77,6 +77,7 @@ export const registerSnapshotRouter = async (server: FastifyZodProvider) => {
secretSnapshotId: z.string().trim().describe(PROJECTS.ROLLBACK_TO_SNAPSHOT.secretSnapshotId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secretSnapshot: SecretSnapshotsSchema
})

View File

@@ -27,6 +27,44 @@ export const integrationAuthPubSchema = IntegrationAuthsSchema.pick({
updatedAt: true
});
export const DefaultResponseErrorsSchema = {
400: z.object({
statusCode: z.literal(400),
message: z.literal(
`<string>: Contains a human-readable message about what went wrong. 400 errors are bad request errors, and are will occur to happen when passing or unexpected bad data in the request`
),
error: z.literal(`<string>: Contains a human-readable error name.`)
}),
404: z.object({
statusCode: z.literal(404),
message: z.literal(
`<string>: Contains a human-readable message about what went wrong. 404 errors are not found errors, and will occur when a resource is not found`
),
error: z.literal(`<string>: Contains a human-readable error name.`)
}),
401: z.object({
statusCode: z.literal(401),
message: z.literal(
`<string>: Contains a human-readable message about what went wrong. 401 errors are unauthorized errors, and will occur when attempting to access a resource with invalid or missing credentials`
),
error: z.literal(`<string>: Contains a human-readable error name.`)
}),
403: z.object({
statusCode: z.literal(403),
message: z.literal(
`<string>: Contains a human-readable message about what went wrong. 403 errors are forbidden errors, and will occur when attempting to access a resource without the necessary permissions`
),
error: z.literal(`<string>: Contains a human-readable error name.`)
}),
500: z.object({
statusCode: z.literal(500),
message: z.literal(
`<string>: Contains a human-readable message about what went wrong. 500 errors are internal server errors, and will occur when an unexpected error occurs on the server`
),
error: z.literal(`<string>: Contains a human-readable error name.`)
})
};
export const sapPubSchema = SecretApprovalPoliciesSchema.merge(
z.object({
environment: z.object({

View File

@@ -15,6 +15,8 @@ import {
validateCaDateField
} from "@app/services/certificate-authority/certificate-authority-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerCaRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -63,6 +65,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
}
),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
ca: CertificateAuthoritiesSchema
})
@@ -108,6 +111,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
ca: CertificateAuthoritiesSchema
})
@@ -155,6 +159,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caCertId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET_CERT_BY_ID.caCertId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.instanceof(Buffer)
}
},
@@ -187,6 +192,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
.describe(CERTIFICATE_AUTHORITIES.CREATE.requireTemplateForIssuance)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
ca: CertificateAuthoritiesSchema
})
@@ -234,6 +240,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.DELETE.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
ca: CertificateAuthoritiesSchema
})
@@ -279,6 +286,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET_CSR.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
csr: z.string().describe(CERTIFICATE_AUTHORITIES.GET_CSR.csr)
})
@@ -328,6 +336,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
notAfter: validateCaDateField.describe(CERTIFICATE_AUTHORITIES.RENEW_CA_CERT.notAfter)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.RENEW_CA_CERT.certificate),
certificateChain: z.string().trim().describe(CERTIFICATE_AUTHORITIES.RENEW_CA_CERT.certificateChain),
@@ -379,6 +388,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET_CA_CERTS.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.array(
z.object({
certificate: z.string().describe(CERTIFICATE_AUTHORITIES.GET_CA_CERTS.certificate),
@@ -427,6 +437,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET_CERT.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().describe(CERTIFICATE_AUTHORITIES.GET_CERT.certificate),
certificateChain: z.string().describe(CERTIFICATE_AUTHORITIES.GET_CERT.certificateChain),
@@ -482,6 +493,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
maxPathLength: z.number().min(-1).default(-1).describe(CERTIFICATE_AUTHORITIES.SIGN_INTERMEDIATE.maxPathLength)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_INTERMEDIATE.certificate),
certificateChain: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_INTERMEDIATE.certificateChain),
@@ -543,6 +555,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
certificateChain: z.string().trim().describe(CERTIFICATE_AUTHORITIES.IMPORT_CERT.certificateChain)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string().trim(),
caId: z.string().trim()
@@ -616,6 +629,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
}
),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificate),
issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate),
@@ -698,6 +712,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
}
),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.certificate),
issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate),
@@ -753,6 +768,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificateTemplates: CertificateTemplatesSchema.array()
})
@@ -798,6 +814,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => {
caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.GET_CRLS.caId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.array(
z.object({
id: z.string().describe(CERTIFICATE_AUTHORITIES.GET_CRLS.id),

View File

@@ -13,6 +13,8 @@ import {
validateCaDateField
} from "@app/services/certificate-authority/certificate-authority-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerCertRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -27,6 +29,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
serialNumber: z.string().trim().describe(CERTIFICATES.GET.serialNumber)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: CertificatesSchema
})
@@ -118,6 +121,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
}
),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificate),
issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate),
@@ -219,6 +223,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
}
),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.certificate),
issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate),
@@ -276,6 +281,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
revocationReason: z.nativeEnum(CrlReason).describe(CERTIFICATES.REVOKE.revocationReason)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string().trim(),
serialNumber: z.string().trim().describe(CERTIFICATES.REVOKE.serialNumberRes),
@@ -327,6 +333,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
serialNumber: z.string().trim().describe(CERTIFICATES.DELETE.serialNumber)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: CertificatesSchema
})
@@ -373,6 +380,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => {
serialNumber: z.string().trim().describe(CERTIFICATES.GET_CERT.serialNumber)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificate: z.string().trim().describe(CERTIFICATES.GET_CERT.certificate),
certificateChain: z.string().trim().describe(CERTIFICATES.GET_CERT.certificateChain),

View File

@@ -11,6 +11,8 @@ import { CertExtendedKeyUsage, CertKeyUsage } from "@app/services/certificate/ce
import { sanitizedCertificateTemplate } from "@app/services/certificate-template/certificate-template-schema";
import { validateTemplateRegexField } from "@app/services/certificate-template/certificate-template-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
const sanitizedEstConfig = CertificateTemplateEstConfigsSchema.pick({
id: true,
certificateTemplateId: true,
@@ -29,6 +31,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.GET.certificateTemplateId)
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedCertificateTemplate
}
},
@@ -90,6 +93,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
.describe(CERTIFICATE_TEMPLATES.CREATE.extendedKeyUsages)
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedCertificateTemplate
}
},
@@ -155,6 +159,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.UPDATE.certificateTemplateId)
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedCertificateTemplate
}
},
@@ -201,6 +206,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.DELETE.certificateTemplateId)
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedCertificateTemplate
}
},
@@ -247,6 +253,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
isEnabled: z.boolean().default(true)
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedEstConfig
}
},
@@ -294,6 +301,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
isEnabled: z.boolean().optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedEstConfig
}
},
@@ -336,6 +344,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid
certificateTemplateId: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: sanitizedEstConfig.extend({
caChain: z.string()
})

View File

@@ -12,6 +12,8 @@ import {
validatePrincipalArns
} from "@app/services/identity-aws-auth/identity-aws-auth-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -28,6 +30,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
iamRequestHeaders: z.string().describe(AWS_AUTH.LOGIN.iamRequestHeaders)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -118,6 +121,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(AWS_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema
})
@@ -197,6 +201,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
.describe(AWS_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema
})
@@ -252,6 +257,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(AWS_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema
})
@@ -298,6 +304,7 @@ export const registerIdentityAwsAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(AWS_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAwsAuth: IdentityAwsAuthsSchema
})

View File

@@ -9,6 +9,8 @@ import { AuthMode } from "@app/services/auth/auth-type";
import { TIdentityTrustedIp } from "@app/services/identity/identity-types";
import { validateAzureAuthField } from "@app/services/identity-azure-auth/identity-azure-auth-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -23,6 +25,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
jwt: z.string()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -108,6 +111,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(AZURE_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema
})
@@ -188,6 +192,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
.describe(AZURE_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema
})
@@ -242,6 +247,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
identityId: z.string().describe(AZURE_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema
})
@@ -289,6 +295,7 @@ export const registerIdentityAzureAuthRouter = async (server: FastifyZodProvider
identityId: z.string().describe(AZURE_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityAzureAuth: IdentityAzureAuthsSchema
})

View File

@@ -9,6 +9,8 @@ import { AuthMode } from "@app/services/auth/auth-type";
import { TIdentityTrustedIp } from "@app/services/identity/identity-types";
import { validateGcpAuthField } from "@app/services/identity-gcp-auth/identity-gcp-auth-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -23,6 +25,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
jwt: z.string()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -109,6 +112,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(GCP_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema
})
@@ -190,6 +194,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
.describe(GCP_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema
})
@@ -246,6 +251,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(GCP_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema
})
@@ -293,6 +299,7 @@ export const registerIdentityGcpAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(GCP_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityGcpAuth: IdentityGcpAuthsSchema
})

View File

@@ -8,6 +8,8 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { TIdentityTrustedIp } from "@app/services/identity/identity-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
const IdentityKubernetesAuthResponseSchema = IdentityKubernetesAuthsSchema.omit({
encryptedCaCert: true,
caCertIV: true,
@@ -34,6 +36,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
jwt: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -129,6 +132,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
.describe(KUBERNETES_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema
})
@@ -222,6 +226,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
.describe(KUBERNETES_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema
})
@@ -277,6 +282,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
identityId: z.string().describe(KUBERNETES_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema
})
@@ -324,6 +330,7 @@ export const registerIdentityKubernetesRouter = async (server: FastifyZodProvide
identityId: z.string().describe(KUBERNETES_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityKubernetesAuth: IdentityKubernetesAuthResponseSchema.omit({
caCert: true,

View File

@@ -12,6 +12,8 @@ import {
validateOidcBoundClaimsField
} from "@app/services/identity-oidc-auth/identity-oidc-auth-validators";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
const IdentityOidcAuthResponseSchema = IdentityOidcAuthsSchema.omit({
encryptedCaCert: true,
caCertIV: true,
@@ -34,6 +36,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
jwt: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -124,6 +127,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(OIDC_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema
})
@@ -223,6 +227,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
})
.partial(),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema
})
@@ -281,6 +286,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(OIDC_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema
})
@@ -328,6 +334,7 @@ export const registerIdentityOidcAuthRouter = async (server: FastifyZodProvider)
identityId: z.string().describe(OIDC_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityOidcAuth: IdentityOidcAuthResponseSchema.omit({
caCert: true

View File

@@ -9,7 +9,7 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types";
import { SanitizedProjectSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, SanitizedProjectSchema } from "../sanitizedSchemas";
export const registerIdentityRouter = async (server: FastifyZodProvider) => {
server.route({
@@ -32,6 +32,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => {
role: z.string().trim().min(1).default(OrgMembershipRole.NoAccess).describe(IDENTITIES.CREATE.role)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identity: IdentitiesSchema
})
@@ -96,6 +97,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => {
role: z.string().trim().min(1).optional().describe(IDENTITIES.UPDATE.role)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identity: IdentitiesSchema
})
@@ -145,6 +147,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => {
identityId: z.string().describe(IDENTITIES.DELETE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identity: IdentitiesSchema
})
@@ -191,6 +194,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => {
identityId: z.string().describe(IDENTITIES.GET_BY_ID.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identity: IdentityOrgMembershipsSchema.extend({
customRole: OrgRolesSchema.pick({
@@ -236,6 +240,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => {
orgId: z.string().describe(IDENTITIES.LIST.orgId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identities: IdentityOrgMembershipsSchema.extend({
customRole: OrgRolesSchema.pick({

View File

@@ -8,6 +8,8 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { TIdentityTrustedIp } from "@app/services/identity/identity-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -57,6 +59,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
accessTokenNumUsesLimit: z.number().int().min(0).default(0).describe(TOKEN_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema
})
@@ -132,6 +135,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
.describe(TOKEN_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema
})
@@ -186,6 +190,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
identityId: z.string().describe(TOKEN_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema
})
@@ -233,6 +238,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
identityId: z.string().describe(TOKEN_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityTokenAuth: IdentityTokenAuthsSchema
})
@@ -283,6 +289,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
name: z.string().optional().describe(TOKEN_AUTH.CREATE_TOKEN.name)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -345,6 +352,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
limit: z.coerce.number().min(1).max(100).default(20).describe(TOKEN_AUTH.GET_TOKENS.limit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
tokens: IdentityAccessTokensSchema.array()
})
@@ -396,6 +404,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
name: z.string().optional().describe(TOKEN_AUTH.UPDATE_TOKEN.name)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
token: IdentityAccessTokensSchema
})
@@ -446,6 +455,7 @@ export const registerIdentityTokenAuthRouter = async (server: FastifyZodProvider
tokenId: z.string().describe(TOKEN_AUTH.REVOKE_TOKEN.tokenId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string()
})

View File

@@ -8,6 +8,8 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { TIdentityTrustedIp } from "@app/services/identity/identity-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const sanitizedClientSecretSchema = IdentityUaClientSecretsSchema.pick({
id: true,
createdAt: true,
@@ -35,6 +37,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
clientSecret: z.string().trim().describe(UNIVERSAL_AUTH.LOGIN.clientSecret)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
accessToken: z.string(),
expiresIn: z.coerce.number(),
@@ -130,6 +133,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
.describe(UNIVERSAL_AUTH.ATTACH.accessTokenNumUsesLimit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema
})
@@ -222,6 +226,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
.describe(UNIVERSAL_AUTH.UPDATE.accessTokenMaxTTL)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema
})
@@ -275,6 +280,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
identityId: z.string().describe(UNIVERSAL_AUTH.RETRIEVE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema
})
@@ -322,6 +328,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
identityId: z.string().describe(UNIVERSAL_AUTH.REVOKE.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityUniversalAuth: IdentityUniversalAuthsSchema
})
@@ -374,6 +381,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
ttl: z.number().min(0).max(315360000).default(0).describe(UNIVERSAL_AUTH.CREATE_CLIENT_SECRET.ttl)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
clientSecret: z.string(),
clientSecretData: sanitizedClientSecretSchema
@@ -425,6 +433,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
identityId: z.string().describe(UNIVERSAL_AUTH.LIST_CLIENT_SECRETS.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
clientSecretData: sanitizedClientSecretSchema.array()
})
@@ -474,6 +483,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
clientSecretId: z.string().describe(UNIVERSAL_AUTH.GET_CLIENT_SECRET.clientSecretId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
clientSecretData: sanitizedClientSecretSchema
})
@@ -524,6 +534,7 @@ export const registerIdentityUaRouter = async (server: FastifyZodProvider) => {
clientSecretId: z.string().describe(UNIVERSAL_AUTH.REVOKE_CLIENT_SECRET.clientSecretId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
clientSecretData: sanitizedClientSecretSchema
})

View File

@@ -6,7 +6,7 @@ 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 { integrationAuthPubSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, integrationAuthPubSchema } from "../sanitizedSchemas";
export const registerIntegrationAuthRouter = async (server: FastifyZodProvider) => {
server.route({
@@ -64,6 +64,7 @@ export const registerIntegrationAuthRouter = async (server: FastifyZodProvider)
integrationAuthId: z.string().trim().describe(INTEGRATION_AUTH.GET.integrationAuthId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integrationAuth: integrationAuthPubSchema
})
@@ -100,6 +101,7 @@ export const registerIntegrationAuthRouter = async (server: FastifyZodProvider)
projectId: z.string().trim().describe(INTEGRATION_AUTH.DELETE.projectId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integrationAuth: integrationAuthPubSchema.array()
})
@@ -148,6 +150,7 @@ export const registerIntegrationAuthRouter = async (server: FastifyZodProvider)
integrationAuthId: z.string().trim().describe(INTEGRATION_AUTH.DELETE_BY_ID.integrationAuthId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integrationAuth: integrationAuthPubSchema
})
@@ -251,6 +254,7 @@ export const registerIntegrationAuthRouter = async (server: FastifyZodProvider)
refreshToken: z.string().trim().optional().describe(INTEGRATION_AUTH.CREATE_ACCESS_TOKEN.refreshToken)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integrationAuth: integrationAuthPubSchema
})

View File

@@ -11,6 +11,8 @@ import { AuthMode } from "@app/services/auth/auth-type";
import { IntegrationMetadataSchema } from "@app/services/integration/integration-schema";
import { PostHogEventTypes, TIntegrationCreatedEvent } from "@app/services/telemetry/telemetry-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIntegrationRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -49,6 +51,7 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => {
metadata: IntegrationMetadataSchema.default({})
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integration: IntegrationsSchema
})
@@ -135,6 +138,7 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => {
metadata: IntegrationMetadataSchema.optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integration: IntegrationsSchema
})
@@ -219,6 +223,7 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => {
.transform((val) => val === "true")
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integration: IntegrationsSchema
})

View File

@@ -18,6 +18,8 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { ActorType, AuthMode } from "@app/services/auth/auth-type";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerOrgRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -114,6 +116,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => {
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
auditLogs: AuditLogsSchema.omit({
eventMetadata: true,

View File

@@ -7,6 +7,8 @@ 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 { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerPkiAlertRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -29,6 +31,7 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => {
.describe(ALERTS.CREATE.emails)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiAlertsSchema
}
},
@@ -73,6 +76,7 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => {
alertId: z.string().trim().describe(ALERTS.GET.alertId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiAlertsSchema
}
},
@@ -124,6 +128,7 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => {
.describe(ALERTS.UPDATE.emails)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiAlertsSchema
}
},
@@ -169,6 +174,7 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => {
alertId: z.string().trim().describe(ALERTS.DELETE.alertId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiAlertsSchema
}
},

View File

@@ -8,6 +8,8 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { PkiItemType } from "@app/services/pki-collection/pki-collection-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerPkiCollectionRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -24,6 +26,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
description: z.string().trim().default("").describe(PKI_COLLECTIONS.CREATE.description)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionsSchema
}
},
@@ -65,6 +68,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
collectionId: z.string().trim().describe(PKI_COLLECTIONS.GET.collectionId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionsSchema
}
},
@@ -109,6 +113,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
description: z.string().trim().optional().describe(PKI_COLLECTIONS.UPDATE.description)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionsSchema
}
},
@@ -151,6 +156,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
collectionId: z.string().trim().describe(PKI_COLLECTIONS.DELETE.collectionId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionsSchema
}
},
@@ -196,6 +202,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
limit: z.coerce.number().min(1).max(100).default(25).describe(PKI_COLLECTIONS.LIST_ITEMS.limit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
collectionItems: z.array(
PkiCollectionItemsSchema.omit({ caId: true, certId: true }).extend({
@@ -256,6 +263,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
itemId: z.string().trim().describe(PKI_COLLECTIONS.ADD_ITEM.itemId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionItemsSchema.omit({ caId: true, certId: true }).extend({
type: z.nativeEnum(PkiItemType).describe(PKI_COLLECTIONS.ADD_ITEM.type),
itemId: z.string().trim().describe(PKI_COLLECTIONS.ADD_ITEM.itemId)
@@ -304,6 +312,7 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) =>
collectionItemId: z.string().trim().describe(PKI_COLLECTIONS.DELETE_ITEM.collectionItemId)
}),
response: {
...DefaultResponseErrorsSchema,
200: PkiCollectionItemsSchema.omit({ caId: true, certId: true }).extend({
type: z.nativeEnum(PkiItemType).describe(PKI_COLLECTIONS.DELETE_ITEM.type),
itemId: z.string().trim().describe(PKI_COLLECTIONS.DELETE_ITEM.itemId)

View File

@@ -8,6 +8,8 @@ import { writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerProjectEnvRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -85,6 +87,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => {
.describe(ENVIRONMENTS.CREATE.slug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
workspace: z.string(),
@@ -152,6 +155,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => {
position: z.number().optional().describe(ENVIRONMENTS.UPDATE.position)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
workspace: z.string(),
@@ -213,6 +217,7 @@ export const registerProjectEnvRouter = async (server: FastifyZodProvider) => {
id: z.string().trim().describe(ENVIRONMENTS.DELETE.id)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
workspace: z.string(),

View File

@@ -15,6 +15,8 @@ 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";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerProjectMembershipRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -33,6 +35,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
workspaceId: z.string().trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIPS.workspaceId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
memberships: ProjectMembershipsSchema.extend({
user: UsersSchema.pick({
@@ -94,6 +97,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
username: z.string().min(1).trim().describe(PROJECT_USERS.GET_USER_MEMBERSHIP.username)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
membership: ProjectMembershipsSchema.extend({
user: UsersSchema.pick({
@@ -227,6 +231,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
.describe(PROJECT_USERS.UPDATE_USER_MEMBERSHIP.roles)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
roles: ProjectUserMembershipRolesSchema.array()
})

View File

@@ -16,7 +16,7 @@ import { AuthMode } from "@app/services/auth/auth-type";
import { ProjectFilterType } from "@app/services/project/project-types";
import { validateSlackChannelsField } from "@app/services/slack/slack-auth-validators";
import { integrationAuthPubSchema, SanitizedProjectSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, integrationAuthPubSchema, SanitizedProjectSchema } from "../sanitizedSchemas";
import { sanitizedServiceTokenSchema } from "../v2/service-token-router";
const projectWithEnv = SanitizedProjectSchema.merge(
@@ -177,6 +177,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
workspaceId: z.string().trim().describe(PROJECTS.GET.workspaceId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspace: projectWithEnv.optional()
})
@@ -299,6 +300,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
autoCapitalization: z.boolean().optional().describe(PROJECTS.UPDATE.autoCapitalization)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspace: SanitizedProjectSchema
})
@@ -456,6 +458,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION.workspaceId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
integrations: IntegrationsSchema.merge(
z.object({
@@ -499,6 +502,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
workspaceId: z.string().trim().describe(PROJECTS.LIST_INTEGRATION_AUTHORIZATION.workspaceId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
authorizations: integrationAuthPubSchema.array()
})

View File

@@ -8,6 +8,8 @@ import { readLimit, secretsLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerSecretFolderRouter = async (server: FastifyZodProvider) => {
server.route({
url: "/",
@@ -43,6 +45,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
.describe(FOLDERS.CREATE.directory)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
folder: SecretFoldersSchema
})
@@ -115,6 +118,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
.describe(FOLDERS.UPDATE.directory)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
folder: SecretFoldersSchema
})
@@ -258,6 +262,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
.describe(FOLDERS.DELETE.directory)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
folder: SecretFoldersSchema
})
@@ -326,6 +331,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
.describe(FOLDERS.LIST.directory)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
folders: SecretFoldersSchema.array()
})
@@ -364,6 +370,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
id: z.string().trim().describe(FOLDERS.GET_BY_ID.folderId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
folder: SecretFoldersSchema
})

View File

@@ -8,7 +8,7 @@ import { readLimit, secretsLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { secretRawSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, secretRawSchema } from "../sanitizedSchemas";
export const registerSecretImportRouter = async (server: FastifyZodProvider) => {
server.route({
@@ -35,6 +35,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) =>
isReplication: z.boolean().default(false).describe(SECRET_IMPORTS.CREATE.isReplication)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
secretImport: SecretImportsSchema.omit({ importEnv: true }).merge(
@@ -108,6 +109,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) =>
})
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
secretImport: SecretImportsSchema.omit({ importEnv: true }).merge(
@@ -172,6 +174,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) =>
path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.DELETE.path)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
secretImport: SecretImportsSchema.omit({ importEnv: true }).merge(
@@ -275,6 +278,7 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) =>
path: z.string().trim().default("/").transform(removeTrailingSlash).describe(SECRET_IMPORTS.LIST.path)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string(),
secretImports: SecretImportsSchema.omit({ importEnv: true })

View File

@@ -7,6 +7,8 @@ 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 { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -19,6 +21,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
projectId: z.string().trim().describe(SECRET_TAGS.LIST.projectId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspaceTags: SecretTagsSchema.array()
})
@@ -49,6 +52,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
tagId: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_ID.tagId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
// akhilmhdh: for terraform backward compatiability
workspaceTag: SecretTagsSchema.extend({ name: z.string() })
@@ -80,6 +84,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
tagSlug: z.string().trim().describe(SECRET_TAGS.GET_TAG_BY_SLUG.tagSlug)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
// akhilmhdh: for terraform backward compatiability
workspaceTag: SecretTagsSchema.extend({ name: z.string() })
@@ -122,6 +127,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
color: z.string().trim().describe(SECRET_TAGS.CREATE.color)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspaceTag: SecretTagsSchema
})
@@ -164,6 +170,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
color: z.string().trim().describe(SECRET_TAGS.UPDATE.color)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspaceTag: SecretTagsSchema
})
@@ -195,6 +202,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => {
tagId: z.string().trim().describe(SECRET_TAGS.DELETE.tagId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspaceTag: SecretTagsSchema
})

View File

@@ -13,6 +13,8 @@ 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";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerGroupProjectRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -63,6 +65,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
path: ["role", "roles"]
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
groupMembership: GroupProjectMembershipsSchema
})
@@ -119,6 +122,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
.describe(PROJECTS.UPDATE_GROUP_IN_PROJECT.roles)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
roles: ProjectUserMembershipRolesSchema.array()
})
@@ -158,6 +162,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
groupId: z.string().trim().describe(PROJECTS.REMOVE_GROUP_FROM_PROJECT.groupId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
groupMembership: GroupProjectMembershipsSchema
})
@@ -195,6 +200,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
projectId: z.string().trim().describe(PROJECTS.LIST_GROUPS_IN_PROJECT.projectId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
groupMemberships: z
.object({
@@ -254,6 +260,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
groupId: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
groupMembership: z.object({
id: z.string(),

View File

@@ -8,6 +8,8 @@ import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { OrgIdentityOrderBy } from "@app/services/identity/identity-types";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerIdentityOrgRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -48,6 +50,7 @@ export const registerIdentityOrgRouter = async (server: FastifyZodProvider) => {
search: z.string().trim().describe(ORGANIZATIONS.LIST_IDENTITY_MEMBERSHIPS.search).optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityMemberships: IdentityOrgMembershipsSchema.merge(
z.object({

View File

@@ -16,7 +16,7 @@ import { AuthMode } from "@app/services/auth/auth-type";
import { ProjectIdentityOrderBy } from "@app/services/identity-project/identity-project-types";
import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types";
import { SanitizedProjectSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, SanitizedProjectSchema } from "../sanitizedSchemas";
export const registerIdentityProjectRouter = async (server: FastifyZodProvider) => {
server.route({
@@ -71,6 +71,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider)
.optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityMembership: IdentityProjectMembershipsSchema
})
@@ -143,6 +144,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider)
.describe(PROJECT_IDENTITIES.UPDATE_IDENTITY_MEMBERSHIP.roles.description)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
roles: ProjectUserMembershipRolesSchema.array()
})
@@ -181,6 +183,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider)
identityId: z.string().trim().describe(PROJECT_IDENTITIES.DELETE_IDENTITY_MEMBERSHIP.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityMembership: IdentityProjectMembershipsSchema
})
@@ -243,6 +246,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider)
search: z.string().trim().describe(PROJECT_IDENTITIES.LIST_IDENTITY_MEMBERSHIPS.search).optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityMemberships: z
.object({
@@ -308,6 +312,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider)
identityId: z.string().trim().describe(PROJECT_IDENTITIES.GET_IDENTITY_MEMBERSHIP_BY_ID.identityId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
identityMembership: z.object({
id: z.string(),

View File

@@ -13,6 +13,8 @@ import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { ActorType, AuthMode } from "@app/services/auth/auth-type";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerOrgRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
@@ -31,6 +33,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => {
organizationId: z.string().trim().describe(ORGANIZATIONS.LIST_USER_MEMBERSHIPS.organizationId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
users: OrgMembershipsSchema.merge(
z.object({
@@ -79,6 +82,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => {
organizationId: z.string().trim().describe(ORGANIZATIONS.GET_PROJECTS.organizationId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
workspaces: z
.object({
@@ -181,6 +185,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => {
isActive: z.boolean().optional().describe(ORGANIZATIONS.UPDATE_USER_MEMBERSHIP.isActive)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
membership: OrgMembershipsSchema
})
@@ -220,6 +225,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => {
membershipId: z.string().trim().describe(ORGANIZATIONS.DELETE_USER_MEMBERSHIP.membershipId)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
membership: OrgMembershipsSchema
})

View File

@@ -7,6 +7,8 @@ import { writeLimit } from "@app/server/config/rateLimiter";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
import { DefaultResponseErrorsSchema } from "../sanitizedSchemas";
export const registerProjectMembershipRouter = async (server: FastifyZodProvider) => {
server.route({
method: "POST",
@@ -30,6 +32,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
roleSlugs: z.string().array().optional().describe(PROJECT_USERS.INVITE_MEMBER.roleSlugs)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
memberships: ProjectMembershipsSchema.array()
})
@@ -92,6 +95,7 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
usernames: z.string().array().default([]).describe(PROJECT_USERS.REMOVE_MEMBER.usernames)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
memberships: ProjectMembershipsSchema.array()
})

View File

@@ -19,7 +19,7 @@ import { sanitizedCertificateTemplate } from "@app/services/certificate-template
import { ProjectFilterType } from "@app/services/project/project-types";
import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types";
import { SanitizedProjectSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, SanitizedProjectSchema } from "../sanitizedSchemas";
const projectWithEnv = SanitizedProjectSchema.extend({
_id: z.string(),
@@ -172,6 +172,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
kmsKeyId: z.string().optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
project: projectWithEnv
})
@@ -221,6 +222,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
slug: slugSchema.describe("The slug of the project to delete.")
}),
response: {
...DefaultResponseErrorsSchema,
200: SanitizedProjectSchema
}
},
@@ -376,6 +378,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
limit: z.coerce.number().min(1).max(100).default(25).describe(PROJECTS.LIST_CERTIFICATES.limit)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
certificates: z.array(CertificatesSchema),
totalCount: z.number()

View File

@@ -7,7 +7,7 @@ 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 { sanitizedServiceTokenUserSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, sanitizedServiceTokenUserSchema } from "../sanitizedSchemas";
export const sanitizedServiceTokenSchema = ServiceTokensSchema.omit({
secretHash: true,
@@ -32,6 +32,7 @@ export const registerServiceTokenRouter = async (server: FastifyZodProvider) =>
}
],
response: {
...DefaultResponseErrorsSchema,
200: ServiceTokensSchema.merge(
z.object({
workspace: z.string(),

View File

@@ -21,7 +21,7 @@ import { ProjectFilterType } from "@app/services/project/project-types";
import { SecretOperations, SecretProtectionType } from "@app/services/secret/secret-types";
import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types";
import { secretRawSchema } from "../sanitizedSchemas";
import { DefaultResponseErrorsSchema, secretRawSchema } from "../sanitizedSchemas";
export const registerSecretRouter = async (server: FastifyZodProvider) => {
server.route({
@@ -53,6 +53,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
tagSlugs: z.string().array().min(1).describe(SECRETS.ATTACH_TAGS.tagSlugs)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).merge(
z.object({
@@ -116,6 +117,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
tagSlugs: z.string().array().min(1).describe(SECRETS.DETACH_TAGS.tagSlugs)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).extend({
tags: SecretTagsSchema.pick({
@@ -189,6 +191,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.transform((el) => (el ? el.split(",").map((i) => i.trim()) : []))
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secrets: secretRawSchema
.extend({
@@ -212,7 +215,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
})
.array()
.optional()
})
}),
...DefaultResponseErrorsSchema
}
},
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]),
@@ -327,6 +331,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.describe(RAW_SECRETS.GET.includeImports)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secret: secretRawSchema.extend({
tags: SecretTagsSchema.pick({
@@ -449,6 +454,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
secretReminderNote: z.string().optional().nullable().describe(RAW_SECRETS.CREATE.secretReminderNote)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: secretRawSchema
@@ -556,6 +562,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
secretComment: z.string().optional().describe(RAW_SECRETS.UPDATE.secretComment)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: secretRawSchema
@@ -649,6 +656,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
type: z.nativeEnum(SecretType).default(SecretType.Shared).describe(RAW_SECRETS.DELETE.type)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: secretRawSchema
@@ -728,6 +736,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.transform((value) => value === "true")
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secrets: SecretsSchema.omit({ secretBlindIndex: true })
.extend({
@@ -843,6 +852,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.transform((value) => value === "true")
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).merge(
z.object({
@@ -930,6 +940,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
secretName: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).merge(
@@ -1107,6 +1118,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
metadata: z.record(z.string()).optional()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).merge(
@@ -1278,6 +1290,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
environment: z.string().trim()
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secret: SecretsSchema.omit({ secretBlindIndex: true }).merge(
@@ -1401,6 +1414,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
shouldOverwrite: z.boolean().default(false)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
isSourceUpdated: z.boolean(),
isDestinationUpdated: z.boolean()
@@ -1469,6 +1483,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: SecretsSchema.omit({ secretBlindIndex: true }).array()
@@ -1596,6 +1611,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: SecretsSchema.omit({ secretBlindIndex: true }).array()
@@ -1711,6 +1727,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: SecretsSchema.omit({ secretBlindIndex: true }).array()
@@ -1844,6 +1861,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: secretRawSchema.array()
@@ -1950,6 +1968,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: secretRawSchema.array()
@@ -2042,6 +2061,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
.min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.union([
z.object({
secrets: secretRawSchema.array()
@@ -2119,6 +2139,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
projectId: z.string().trim().min(1)
}),
response: {
...DefaultResponseErrorsSchema,
200: z.object({
message: z.string()
})

View File

@@ -1,6 +1,6 @@
{
"name": "Infisical",
"openapi": "https://app.infisical.com/api/docs/json",
"openapi": "http://localhost:8080/api/docs/json",
"logo": {
"dark": "/logo/dark.svg",
"light": "/logo/light.svg",