feat: get secret by ID

This commit is contained in:
Daniel Hougaard
2025-03-07 19:25:53 +04:00
parent 58ebebb162
commit 50610945be
6 changed files with 178 additions and 8 deletions
+1
View File
@@ -1073,6 +1073,7 @@ export const registerRoutes = async (
const secretService = secretServiceFactory({
folderDAL,
secretVersionDAL,
secretV2BridgeDAL,
secretVersionTagDAL,
secretBlindIndexDAL,
permissionService,
@@ -380,6 +380,48 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => {
}
});
server.route({
method: "GET",
url: "/raw/id/:secretId",
config: {
rateLimit: secretsLimit
},
schema: {
params: z.object({
secretId: z.string()
}),
response: {
200: z.object({
secret: secretRawSchema.extend({
secretPath: z.string(),
tags: SecretTagsSchema.pick({
id: true,
slug: true,
color: true
})
.extend({ name: z.string() })
.array()
.optional(),
secretMetadata: ResourceMetadataSchema.optional()
})
})
}
},
onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]),
handler: async (req) => {
const { secretId } = req.params;
const secret = await server.services.secret.getSecretByIdRaw({
actorId: req.permission.id,
actor: req.permission.type,
actorAuthMethod: req.permission.authMethod,
actorOrgId: req.permission.orgId,
secretId
});
return { secret };
}
});
server.route({
method: "GET",
url: "/raw/:secretName",