feat(infisical-pg): completed secrets fetching from imports based on priority

This commit is contained in:
Akhil Mohan
2024-01-27 12:38:23 +05:30
parent b5aa6c0000
commit 6e6a1c87f2
8 changed files with 208 additions and 17 deletions
+2 -1
View File
@@ -256,7 +256,8 @@ export const registerRoutes = async (
projectEnvDal,
folderDal,
permissionService,
secretImportDal
secretImportDal,
secretDal
});
const projectBotService = projectBotServiceFactory({ permissionService, projectBotDal });
@@ -1,6 +1,6 @@
import { z } from "zod";
import { SecretImportsSchema } from "@app/db/schemas";
import { SecretImportsSchema, SecretsSchema } from "@app/db/schemas";
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
import { AuthMode } from "@app/services/auth/auth-type";
@@ -149,4 +149,41 @@ export const registerSecretImportRouter = async (server: FastifyZodProvider) =>
return { message: "Successfully fetched secret imports", secretImports };
}
});
server.route({
url: "/secrets",
method: "GET",
schema: {
querystring: z.object({
projectId: z.string().trim(),
environment: z.string().trim(),
path: z.string().trim().default("/")
}),
response: {
200: z.object({
secrets: z
.object({
secretPath: z.string(),
environment: z.object({
id: z.string(),
name: z.string(),
slug: z.string()
}),
folderId: z.string().optional(),
secrets: SecretsSchema.omit({ secretBlindIndex: true }).array()
})
.array()
})
}
},
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY]),
handler: async (req) => {
const importedSecrets = await server.services.secretImport.getSecretsFromImports({
actorId: req.permission.id,
actor: req.permission.type,
...req.query
});
return { secrets: importedSecrets };
}
});
};