From ff65f7f8b84b97cbd604b20ac82443206f59d991 Mon Sep 17 00:00:00 2001 From: Mayur Singal <39544459+ulixius9@users.noreply.github.com> Date: Thu, 28 Aug 2025 18:25:43 +0530 Subject: [PATCH] MINOR: Mask Wherescape MSSQL Password (#23076) (cherry picked from commit a382533f252c6c7f6280ea0cc8d3bda5ea56b7ad) --- .../converter/ClassConverterFactory.java | 2 ++ .../WherescapeConnectionClassConverter.java | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/WherescapeConnectionClassConverter.java diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java index 1702cccb56e..f8b89fa8aa0 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java @@ -48,6 +48,7 @@ import org.openmetadata.schema.services.connections.pipeline.AirflowConnection; import org.openmetadata.schema.services.connections.pipeline.MatillionConnection; import org.openmetadata.schema.services.connections.pipeline.NifiConnection; import org.openmetadata.schema.services.connections.pipeline.SSISConnection; +import org.openmetadata.schema.services.connections.pipeline.WherescapeConnection; import org.openmetadata.schema.services.connections.search.ElasticSearchConnection; import org.openmetadata.schema.services.connections.security.RangerConnection; import org.openmetadata.schema.services.connections.storage.GCSConnection; @@ -98,6 +99,7 @@ public final class ClassConverterFactory { Map.entry(NifiConnection.class, new NifiConnectionClassConverter()), Map.entry(MatillionConnection.class, new MatillionConnectionClassConverter()), Map.entry(VertexAIConnection.class, new VertexAIConnectionClassConverter()), + Map.entry(WherescapeConnection.class, new WherescapeConnectionClassConverter()), Map.entry(RangerConnection.class, new RangerConnectionClassConverter())); Map.entry(Workflow.class, new WorkflowClassConverter()); Map.entry(CassandraConnection.class, new CassandraConnectionClassConverter()); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/WherescapeConnectionClassConverter.java b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/WherescapeConnectionClassConverter.java new file mode 100644 index 00000000000..668d270bf61 --- /dev/null +++ b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/WherescapeConnectionClassConverter.java @@ -0,0 +1,27 @@ +package org.openmetadata.service.secrets.converter; + +import java.util.List; +import org.openmetadata.schema.services.connections.database.MssqlConnection; +import org.openmetadata.schema.services.connections.pipeline.WherescapeConnection; +import org.openmetadata.schema.utils.JsonUtils; + +/** Converter class to get an `SupersetConnection` object. */ +public class WherescapeConnectionClassConverter extends ClassConverter { + + private static final List> CONNECTION_CLASSES = List.of(MssqlConnection.class); + + public WherescapeConnectionClassConverter() { + super(WherescapeConnection.class); + } + + @Override + public Object convert(Object object) { + WherescapeConnection wherescapeConnection = + (WherescapeConnection) JsonUtils.convertValue(object, this.clazz); + + tryToConvertOrFail(wherescapeConnection.getDatabaseConnection(), CONNECTION_CLASSES) + .ifPresent(wherescapeConnection::setDatabaseConnection); + + return wherescapeConnection; + } +}