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

This commit is contained in:
Daniel Hougaard
2024-09-27 20:02:43 +04:00
parent 2d51ed317f
commit 7ac4b0b79f
39 changed files with 297 additions and 14 deletions
+23 -2
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()
})