diff --git a/frontend/src/pages/secret-manager/OverviewPage/OverviewPage.tsx b/frontend/src/pages/secret-manager/OverviewPage/OverviewPage.tsx index c94aef0d5..f34c8695e 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/OverviewPage.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/OverviewPage.tsx @@ -96,6 +96,10 @@ import { SecretOverviewSecretRotationRow } from "@app/pages/secret-manager/Overv import { CreateDynamicSecretForm } from "../SecretDashboardPage/components/ActionBar/CreateDynamicSecretForm"; import { FolderForm } from "../SecretDashboardPage/components/ActionBar/FolderForm"; +import { + HIDDEN_SECRET_VALUE, + HIDDEN_SECRET_VALUE_API_MASK +} from "../SecretDashboardPage/components/SecretListView/SecretItem"; import { CreateSecretForm } from "./components/CreateSecretForm"; import { FolderBreadCrumbs } from "./components/FolderBreadCrumbs"; import { SecretOverviewDynamicSecretRow } from "./components/SecretOverviewDynamicSecretRow"; @@ -509,15 +513,25 @@ export const OverviewPage = () => { env: string, key: string, value: string, + secretValueHidden: boolean, type = SecretType.Shared ) => { + let secretValue: string | undefined = value; + + if ( + secretValueHidden && + (value === HIDDEN_SECRET_VALUE_API_MASK || value === HIDDEN_SECRET_VALUE) + ) { + secretValue = undefined; + } + try { const result = await updateSecretV3({ environment: env, workspaceId, secretPath, secretKey: key, - secretValue: value, + secretValue, type }); diff --git a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index 72eb085c0..4b07e6242 100644 --- a/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/pages/secret-manager/OverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -50,6 +50,7 @@ type Props = { env: string, key: string, value: string, + secretValueHidden: boolean, type?: SecretType, secretId?: string ) => Promise; @@ -147,6 +148,7 @@ export const SecretEditRow = ({ environment, secretName, value, + secretValueHidden, isOverride ? SecretType.Personal : SecretType.Shared, secretId ); @@ -166,6 +168,7 @@ export const SecretEditRow = ({ environment, secretName, secretValue, + secretValueHidden, isOverride ? SecretType.Personal : SecretType.Shared, secretId ); @@ -257,7 +260,7 @@ export const SecretEditRow = ({ > {(isAllowed) => (
- + Promise; @@ -96,7 +98,7 @@ export const SecretOverviewTableRow = ({ ); if (secret?.secretValueHidden && !secret?.valueOverride) { - return canEditSecretValue ? "******" : ""; + return canEditSecretValue ? HIDDEN_SECRET_VALUE : ""; } return secret?.valueOverride || secret?.value || importedSecret?.secret?.value || ""; }; diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx index d417821e4..5180383bb 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx @@ -62,6 +62,7 @@ import { hasSecretReadValueOrDescribePermission } from "@app/lib/fn/permission"; import { camelCaseToSpaces } from "@app/lib/fn/string"; import { CreateReminderForm } from "./CreateReminderForm"; +import { HIDDEN_SECRET_VALUE } from "./SecretItem"; import { formSchema, SecretActionType, TFormSchema } from "./SecretListView.utils"; type Props = { @@ -897,7 +898,9 @@ export const SecretDetailSidebar = ({
- {secretValueHidden ? "******" : secretValue?.replace(/./g, "*")} + {secretValueHidden + ? HIDDEN_SECRET_VALUE + : secretValue?.replace(/./g, "*")}