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 b203b0ee0..c2575f862 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 @@ -541,8 +541,8 @@ export const expandSecretReferencesFactory = ({ secretPath: string; environment: string; }) => { - const { stackTrace } = await recursivelyExpandSecret({ ...inputSecret, shouldStackTrace: true }); - return stackTrace; + const { stackTrace, expandedValue } = await recursivelyExpandSecret({ ...inputSecret, shouldStackTrace: true }); + return { stackTrace, expandedValue }; }; return { expandSecretReferences: expandSecret, getExpandedSecretStackTrace }; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index b3de7d9b5..9fbfd7da3 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -1976,7 +1976,7 @@ export const secretV2BridgeServiceFactory = ({ ? secretManagerDecryptor({ cipherTextBlob: secret.encryptedValue }).toString() : ""; - const { getExpandedSecretStackTrace, expandSecretReferences } = expandSecretReferencesFactory({ + const { getExpandedSecretStackTrace } = expandSecretReferencesFactory({ projectId, folderDAL, secretDAL, @@ -1988,17 +1988,13 @@ export const secretV2BridgeServiceFactory = ({ ) }); - const tree = await getExpandedSecretStackTrace({ + const { expandedValue, stackTrace } = await getExpandedSecretStackTrace({ environment, secretPath, value: secretValue }); - const value = await expandSecretReferences({ - environment, - secretPath, - value: secretValue - }); - return { tree, value }; + + return { tree: stackTrace, value: expandedValue }; }; return { diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx index 8b9069856..f948f3089 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetailSidebar.tsx @@ -65,6 +65,8 @@ type Props = { handleSecretShare: (value: string) => void; }; +const INTERPOLATION_SYNTAX_REG = /\${([^}]+)}/g; + export const SecretDetailSidebar = ({ isOpen, onToggle, @@ -174,6 +176,8 @@ export const SecretDetailSidebar = ({ const secretReminderRepeatDays = watch("reminderRepeatDays"); const secretReminderNote = watch("reminderNote"); + const hasReferences = secret?.value?.match(INTERPOLATION_SYNTAX_REG); + return ( <> {(isAllowed) => ( - - - + + + + + ) : ( -
+
{node.key} - +
-
+
)} {node.children.length > 0 && ( -
+
{node.children.map((el, index) => ( ))} @@ -124,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 && }