From bd66b767c5ea1bfe72d009a086473261917dc2ff Mon Sep 17 00:00:00 2001 From: dhruvjoshi Date: Fri, 19 Jul 2024 18:59:29 +0530 Subject: [PATCH] INFRA-3591 | Dhruv | remove redactedValue while exporting manifest --- .../portal/domain/manifest/Manifest.java | 22 ++++++++++++++----- .../service/manifest/ManifestService.java | 1 + ...st-export-with-no-super-secret-access.json | 1 - ...manifest-export-without-secret-access.json | 2 -- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/navi/infra/portal/domain/manifest/Manifest.java b/src/main/java/com/navi/infra/portal/domain/manifest/Manifest.java index b786e915..30897009 100644 --- a/src/main/java/com/navi/infra/portal/domain/manifest/Manifest.java +++ b/src/main/java/com/navi/infra/portal/domain/manifest/Manifest.java @@ -308,6 +308,18 @@ public class Manifest extends JsonEntity { setData("isDeployed", false); } + public void makeRedactedEnvironmentVariableValueNull() { + if (environmentVariables == null) { + return; + } + environmentVariables.forEach(secretConfig -> { + if (redactedValueString.equals(secretConfig.getValue())) { + secretConfig.setValue(null); + } + } + ); + } + public void removeFieldsBeforeCopying(CloneManifestRequest cloneRequest) { setName(null); setEnvironment(null); @@ -412,11 +424,6 @@ public class Manifest extends JsonEntity { return null; } - @JsonIgnore - public String getType() { - return (String) this.getData().get("type"); - } - @JsonIgnore public void setNamespace(String namespace) { if (deployment != null) { @@ -424,6 +431,11 @@ public class Manifest extends JsonEntity { } } + @JsonIgnore + public String getType() { + return (String) this.getData().get("type"); + } + @JsonIgnore public String getTTL() { return metadata.getTtl(); diff --git a/src/main/java/com/navi/infra/portal/service/manifest/ManifestService.java b/src/main/java/com/navi/infra/portal/service/manifest/ManifestService.java index 78f6d7a7..1e2ccf4d 100644 --- a/src/main/java/com/navi/infra/portal/service/manifest/ManifestService.java +++ b/src/main/java/com/navi/infra/portal/service/manifest/ManifestService.java @@ -880,6 +880,7 @@ public class ManifestService { "groupName"); final Map keysToReplace = Map.of("isDeployed", false, "ids", emptyList()); var manifest = version == null ? fetchById(id) : fetchByIdAndVersion(id, version); + manifest.makeRedactedEnvironmentVariableValueNull(); var manifestAsMap = manifest.convertToMap(); ObjectTransformationUtil.removeKeys(manifestAsMap, keysToExclude); ObjectTransformationUtil.replaceKeys(manifestAsMap, keysToReplace); diff --git a/src/test/resources/fixtures/manifest/expected_output/manifest-export-with-no-super-secret-access.json b/src/test/resources/fixtures/manifest/expected_output/manifest-export-with-no-super-secret-access.json index 8b3957f2..064b50dd 100644 --- a/src/test/resources/fixtures/manifest/expected_output/manifest-export-with-no-super-secret-access.json +++ b/src/test/resources/fixtures/manifest/expected_output/manifest-export-with-no-super-secret-access.json @@ -16,7 +16,6 @@ "name": "test_super_secret", "type": "SUPER_SECRET", "sha256": "ddfaa92ae32b9ff82c40ce5e3350f16de528f021727f13468d9b26201905f59a", - "value": "*****" } ], "metadata": { diff --git a/src/test/resources/fixtures/manifest/expected_output/manifest-export-without-secret-access.json b/src/test/resources/fixtures/manifest/expected_output/manifest-export-without-secret-access.json index 5f7cb689..c2033a64 100644 --- a/src/test/resources/fixtures/manifest/expected_output/manifest-export-without-secret-access.json +++ b/src/test/resources/fixtures/manifest/expected_output/manifest-export-without-secret-access.json @@ -10,13 +10,11 @@ "name": "test_Config", "type": "SECRET", "sha256": "60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752", - "value": "*****" }, { "name": "test_super_secret", "type": "SUPER_SECRET", "sha256": "ddfaa92ae32b9ff82c40ce5e3350f16de528f021727f13468d9b26201905f59a", - "value": "*****" } ], "metadata": {