fix: pathing

This commit is contained in:
Daniel Hougaard
2025-03-05 22:47:40 +04:00
parent 4b3efb43b0
commit 5183f76397
2 changed files with 25 additions and 6 deletions
@@ -77,7 +77,13 @@ type TSecretV2BridgeServiceFactoryDep = {
projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne" | "findBySlugs">; projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne" | "findBySlugs">;
folderDAL: Pick< folderDAL: Pick<
TSecretFolderDALFactory, TSecretFolderDALFactory,
"findBySecretPath" | "updateById" | "findById" | "findByManySecretPath" | "find" | "findBySecretPathMultiEnv" | "findBySecretPath"
| "updateById"
| "findById"
| "findByManySecretPath"
| "find"
| "findBySecretPathMultiEnv"
| "findSecretPathByFolderIds"
>; >;
secretImportDAL: Pick<TSecretImportDALFactory, "find" | "findByFolderIds">; secretImportDAL: Pick<TSecretImportDALFactory, "find" | "findByFolderIds">;
secretQueueService: Pick<TSecretQueueFactory, "syncSecrets" | "handleSecretReminder" | "removeSecretReminder">; secretQueueService: Pick<TSecretQueueFactory, "syncSecrets" | "handleSecretReminder" | "removeSecretReminder">;
@@ -1959,11 +1965,18 @@ export const secretV2BridgeServiceFactory = ({
secretId secretId
}: TGetSecretVersionsDTO) => { }: TGetSecretVersionsDTO) => {
const secret = await secretDAL.findById(secretId); const secret = await secretDAL.findById(secretId);
if (!secret) throw new NotFoundError({ message: `Secret with ID '${secretId}' not found` }); if (!secret) throw new NotFoundError({ message: `Secret with ID '${secretId}' not found` });
const folder = await folderDAL.findById(secret.folderId); const folder = await folderDAL.findById(secret.folderId);
if (!folder) throw new NotFoundError({ message: `Folder with ID '${secret.folderId}' not found` }); if (!folder) throw new NotFoundError({ message: `Folder with ID '${secret.folderId}' not found` });
const [folderWithPath] = await folderDAL.findSecretPathByFolderIds(folder.projectId, [folder.id]);
if (!folderWithPath) {
throw new NotFoundError({ message: `Folder with ID '${folder.id}' not found` });
}
const { permission } = await permissionService.getProjectPermission({ const { permission } = await permissionService.getProjectPermission({
actor, actor,
actorId, actorId,
@@ -1988,7 +2001,7 @@ export const secretV2BridgeServiceFactory = ({
ProjectPermissionSecretActions.ReadValue, ProjectPermissionSecretActions.ReadValue,
subject(ProjectPermissionSub.Secrets, { subject(ProjectPermissionSub.Secrets, {
environment: folder.environment.envSlug, environment: folder.environment.envSlug,
secretPath: "/", secretPath: folderWithPath.path,
secretName: el.key, secretName: el.key,
...(el.tags?.length && { ...(el.tags?.length && {
secretTags: el.tags.map((tag) => tag.slug) secretTags: el.tags.map((tag) => tag.slug)
@@ -1998,7 +2011,7 @@ export const secretV2BridgeServiceFactory = ({
return reshapeBridgeSecret( return reshapeBridgeSecret(
folder.projectId, folder.projectId,
folder.environment.envSlug, folder.environment.envSlug,
"/", folderWithPath.path,
{ {
...el, ...el,
value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "",
@@ -100,7 +100,7 @@ type TSecretServiceFactoryDep = {
projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">; projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">;
folderDAL: Pick< folderDAL: Pick<
TSecretFolderDALFactory, TSecretFolderDALFactory,
"findBySecretPath" | "updateById" | "findById" | "findByManySecretPath" | "find" "findBySecretPath" | "updateById" | "findById" | "findByManySecretPath" | "find" | "findSecretPathByFolderIds"
>; >;
secretV2BridgeService: TSecretV2BridgeServiceFactory; secretV2BridgeService: TSecretV2BridgeServiceFactory;
secretBlindIndexDAL: TSecretBlindIndexDALFactory; secretBlindIndexDAL: TSecretBlindIndexDALFactory;
@@ -2378,6 +2378,12 @@ export const secretServiceFactory = ({
const folder = await folderDAL.findById(secret.folderId); const folder = await folderDAL.findById(secret.folderId);
if (!folder) throw new NotFoundError({ message: `Folder with ID '${secret.folderId}' not found` }); if (!folder) throw new NotFoundError({ message: `Folder with ID '${secret.folderId}' not found` });
const [folderWithPath] = await folderDAL.findSecretPathByFolderIds(folder.projectId, [folder.id]);
if (!folderWithPath) {
throw new NotFoundError({ message: `Folder with ID '${folder.id}' not found` });
}
const { botKey } = await projectBotService.getBotKey(folder.projectId); const { botKey } = await projectBotService.getBotKey(folder.projectId);
if (!botKey) if (!botKey)
throw new NotFoundError({ message: `Project bot for project with ID '${folder.projectId}' not found` }); throw new NotFoundError({ message: `Project bot for project with ID '${folder.projectId}' not found` });
@@ -2408,7 +2414,7 @@ export const secretServiceFactory = ({
ProjectPermissionSecretActions.ReadValue, ProjectPermissionSecretActions.ReadValue,
subject(ProjectPermissionSub.Secrets, { subject(ProjectPermissionSub.Secrets, {
environment: folder.environment.envSlug, environment: folder.environment.envSlug,
secretPath: "/", secretPath: folderWithPath.path,
secretName: secretKey, secretName: secretKey,
...(el.tags?.length && { ...(el.tags?.length && {
secretTags: el.tags.map((tag) => tag.slug) secretTags: el.tags.map((tag) => tag.slug)
@@ -2422,7 +2428,7 @@ export const secretServiceFactory = ({
...el, ...el,
workspace: folder.projectId, workspace: folder.projectId,
environment: folder.environment.envSlug, environment: folder.environment.envSlug,
secretPath: "/" secretPath: folderWithPath.path
}, },
botKey botKey
); );