diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 950c9394a..0b2faf6fd 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -671,10 +671,10 @@ export const RAW_SECRETS = { workspaceId: "The ID of the project where the secret is located." }, GET_REFERENCE_TREE: { - secretName: "The name of the secret to get.", - workspaceId: "The ID of the project to get the secret from.", - environment: "The slug of the environment to get the secret from.", - secretPath: "The path of the secret to get." + secretName: "The name of the secret to get the reference tree for.'.", + workspaceId: "The ID of the project where the secret is located.", + environment: "The slug of the environment where the the secret is located.", + secretPath: "The folder path where the secret is located." } } as const; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index e14542351..b203b0ee0 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -446,10 +446,10 @@ export const expandSecretReferencesFactory = ({ // eslint-disable-next-line no-continue if (!entities.length) continue; - let referredSecretPath = ""; - let referredSecretKey = ""; - let referredSecretEnvironmentSlug = ""; - let referredSecretValue = ""; + let referrencedSecretPath = ""; + let referencedSecretKey = ""; + let referencedSecretEnvironmentSlug = ""; + let referencedSecretValue = ""; if (entities.length === 1) { const [secretKey] = entities; @@ -464,10 +464,10 @@ export const expandSecretReferencesFactory = ({ const cacheKey = getCacheUniqueKey(environment, secretPath); secretCache[cacheKey][secretKey] = referredValue; - referredSecretValue = referredValue.value; - referredSecretKey = secretKey; - referredSecretPath = secretPath; - referredSecretEnvironmentSlug = environment; + referencedSecretValue = referredValue.value; + referencedSecretKey = secretKey; + referrencedSecretPath = secretPath; + referencedSecretEnvironmentSlug = environment; } else { const secretReferenceEnvironment = entities[0]; const secretReferencePath = path.join("/", ...entities.slice(1, entities.length - 1)); @@ -483,23 +483,23 @@ export const expandSecretReferencesFactory = ({ const cacheKey = getCacheUniqueKey(secretReferenceEnvironment, secretReferencePath); secretCache[cacheKey][secretReferenceKey] = referedValue; - referredSecretValue = referedValue.value; - referredSecretKey = secretReferenceKey; - referredSecretPath = secretReferencePath; - referredSecretEnvironmentSlug = secretReferenceEnvironment; + referencedSecretValue = referedValue.value; + referencedSecretKey = secretReferenceKey; + referrencedSecretPath = secretReferencePath; + referencedSecretEnvironmentSlug = secretReferenceEnvironment; } const node = { - value: referredSecretValue, - secretPath: referredSecretPath, - environment: referredSecretEnvironmentSlug, + value: referencedSecretValue, + secretPath: referrencedSecretPath, + environment: referencedSecretEnvironmentSlug, depth: depth + 1, trace }; - const shouldExpandMore = INTERPOLATION_SYNTAX_REG.test(referredSecretValue); + const shouldExpandMore = INTERPOLATION_SYNTAX_REG.test(referencedSecretValue); if (dto.shouldStackTrace) { - const stackTraceNode = { ...node, children: [], key: referredSecretKey, trace: null }; + const stackTraceNode = { ...node, children: [], key: referencedSecretKey, trace: null }; trace?.children.push(stackTraceNode); // if stack trace this would be child node if (shouldExpandMore) { @@ -510,8 +510,8 @@ export const expandSecretReferencesFactory = ({ stack.push(node); } - if (referredSecretValue) { - expandedValue = expandedValue.replaceAll(interpolationSyntax, referredSecretValue); + if (referencedSecretValue) { + expandedValue = expandedValue.replaceAll(interpolationSyntax, referencedSecretValue); } } } diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 6a55e4ca2..13eca368f 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -1105,7 +1105,7 @@ export const secretServiceFactory = ({ if (!shouldUseSecretV2Bridge) throw new BadRequestError({ - message: "Project version doesn't not support secret reference tree", + message: "Project version does not support secret reference tree", name: "SecretReferenceTreeNotSupported" }); diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx index d38040859..8b9069856 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx @@ -7,7 +7,7 @@ import { faCircleDot, faClock, faPlus, - faRoad, + faProjectDiagram, faShare, faTag } from "@fortawesome/free-solid-svg-icons"; @@ -464,15 +464,15 @@ export const SecretDetailSidebar = ({ - {node.value ? "value" : "empty"} + {node.value ? "Reveal Value" : "Empty"} @@ -96,7 +96,7 @@ export const SecretReferenceTree = ({ secretPath, environment, secret }: Props) const { currentWorkspace } = useWorkspace(); const projectId = currentWorkspace?.id || ""; - const { data } = useGetSecretReferenceTree({ + const { data, isLoading } = useGetSecretReferenceTree({ secretPath, environmentSlug: environment, projectId, @@ -106,6 +106,14 @@ export const SecretReferenceTree = ({ secretPath, environment, secret }: Props) const tree = data?.tree; const secretValue = data?.value; + if (isLoading) { + return ( +
+ +
+ ); + } + return (
@@ -116,7 +124,7 @@ export const SecretReferenceTree = ({ secretPath, environment, secret }: Props) containerClassName="text-bunker-300 hover:border-primary-400/50 border border-mineshaft-600 bg-bunker-800 px-2 py-1.5" /> -
+
{tree && }