From 57f960a73799f5c891bd0f3f66d0ed7b28878f56 Mon Sep 17 00:00:00 2001 From: Thanasis Stouraitis Date: Mon, 29 Jan 2024 16:23:40 +0200 Subject: [PATCH] adds sensitive fields in external connector credential. changes connectorType in ExternalConnectorCredentialId from string to AbstractConnectorType. --- .../main/scala/raw/creds/api/Credentials.scala | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/snapi-frontend/src/main/scala/raw/creds/api/Credentials.scala b/snapi-frontend/src/main/scala/raw/creds/api/Credentials.scala index ee0bf79dc..54d52a688 100644 --- a/snapi-frontend/src/main/scala/raw/creds/api/Credentials.scala +++ b/snapi-frontend/src/main/scala/raw/creds/api/Credentials.scala @@ -146,12 +146,18 @@ final case class SnowflakeCredential( val port = None } -case class ExternalConnectorCredentialId(name: String, connectorType: String) +case class ExternalConnectorCredentialId(name: String, connectorType: AbstractConnectorType) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "repr") +@JsonSubTypes( + Array( + new JsonType(value = classOf[SalesforceConnectorType], name = "SALESFORCE") + ) +) trait AbstractConnectorType { def repr: String } -case object SalesforceConnectorType extends AbstractConnectorType { +case class SalesforceConnectorType() extends AbstractConnectorType { override def repr: String = "SALESFORCE" } @@ -163,6 +169,7 @@ case object SalesforceConnectorType extends AbstractConnectorType { ) sealed trait ExternalConnectorCredential extends Credential { def connectorType: AbstractConnectorType + def sensitiveFields: List[String] } final case class ExternalConnectorSalesforceCredential( @@ -172,9 +179,10 @@ final case class ExternalConnectorSalesforceCredential( securityToken: String, clientId: String, apiVersion: String, - customObjects: Seq[String] + customObjects: Seq[String], + override val sensitiveFields: List[String] = List("password", "securityToken") ) extends ExternalConnectorCredential { - override def connectorType: AbstractConnectorType = SalesforceConnectorType + override def connectorType: AbstractConnectorType = SalesforceConnectorType() } final case class Secret(name: String, value: String) extends Credential