Skip to content

Commit d537847

Browse files
edgaogisripa
authored andcommitted
delete password auth
1 parent 3d42015 commit d537847

File tree

7 files changed

+87
-44
lines changed

7 files changed

+87
-44
lines changed

airbyte-integrations/connectors/destination-databricks/metadata.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,9 @@ data:
6262
secretStore:
6363
type: GSM
6464
alias: airbyte-connector-testing-secret-store
65+
- name: SECRET_DESTINATION_DATABRICKS_PERSONAL_ACCESS_TOKEN_CONFIG
66+
fileName: pat_config.json
67+
secretStore:
68+
type: GSM
69+
alias: airbyte-connector-testing-secret-store
6570
metadataSpecVersion: "1.0"

airbyte-integrations/connectors/destination-databricks/src/main/kotlin/io/airbyte/integrations/destination/databricks/DatabricksConnectorClientsFactory.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ object DatabricksConnectorClientsFactory {
4848
"jdbc:databricks://${config.hostname}:${config.port}/${config.database};transportMode=http;httpPath=${config.httpPath};EnableArrow=0"
4949
when (config.authentication) {
5050
is BasicAuthentication -> {
51-
datasource.userID = config.authentication.username
52-
datasource.password = config.authentication.password
53-
datasource.setURL("$jdbcUrl;AuthMech=3")
51+
datasource.setURL(
52+
"$jdbcUrl;AuthMech=3;UID=token;PWD=${config.authentication.personalAccessToken}"
53+
)
5454
}
5555
is OAuth2Authentication -> {
5656
datasource.setURL(

airbyte-integrations/connectors/destination-databricks/src/main/kotlin/io/airbyte/integrations/destination/databricks/model/DatabricksConnectorConfig.kt

-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ data class DatabricksConnectorConfig(
3737
@JsonTypeName("BASIC")
3838
data class BasicAuthentication(
3939
@JsonProperty("personal_access_token") val personalAccessToken: String,
40-
val username: String,
41-
val password: String
4240
) : Authentication
4341

4442
@JsonTypeName("OAUTH")

airbyte-integrations/connectors/destination-databricks/src/main/resources/spec.json

+11-25
Original file line numberDiff line numberDiff line change
@@ -74,52 +74,38 @@
7474
"order": 8,
7575
"oneOf": [
7676
{
77-
"title": "Basic Authentication",
78-
"required": [
79-
"auth_type",
80-
"personal_access_token",
81-
"username",
82-
"password"
83-
],
77+
"title": "OAuth2 (Recommended)",
78+
"required": ["auth_type", "client_id", "secret"],
8479
"properties": {
8580
"auth_type": {
8681
"type": "string",
87-
"const": "BASIC",
82+
"const": "OAUTH",
8883
"order": 0
8984
},
90-
"personal_access_token": {
85+
"client_id": {
9186
"type": "string",
92-
"airbyte_secret": true,
9387
"order": 1
9488
},
95-
"username": {
96-
"type": "string",
97-
"order": 2
98-
},
99-
"password": {
89+
"secret": {
10090
"type": "string",
10191
"airbyte_secret": true,
102-
"order": 3
92+
"order": 2
10393
}
10494
}
10595
},
10696
{
107-
"title": "OAuth2 (Recommended)",
108-
"required": ["auth_type", "client_id", "secret"],
97+
"title": "Personal Access Token",
98+
"required": ["auth_type", "personal_access_token"],
10999
"properties": {
110100
"auth_type": {
111101
"type": "string",
112-
"const": "OAUTH",
102+
"const": "BASIC",
113103
"order": 0
114104
},
115-
"client_id": {
116-
"type": "string",
117-
"order": 1
118-
},
119-
"secret": {
105+
"personal_access_token": {
120106
"type": "string",
121107
"airbyte_secret": true,
122-
"order": 2
108+
"order": 1
123109
}
124110
}
125111
}
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,28 @@ import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorC
2121
import java.nio.file.Path
2222
import java.sql.Connection
2323
import java.sql.ResultSet
24-
import java.util.concurrent.TimeUnit
25-
import org.junit.jupiter.api.BeforeAll
26-
import org.junit.jupiter.api.Timeout
27-
import org.mockito.Mockito
2824

29-
class DatabricksTypingDedupingTest : BaseTypingDedupingTest() {
25+
abstract class AbstractDatabricksTypingDedupingTest(
26+
private val jdbcDatabase: JdbcDatabase,
27+
private val connectorConfig: DatabricksConnectorConfig,
28+
) : BaseTypingDedupingTest() {
3029
override val imageName: String
3130
get() = "airbyte/destination-databricks:dev"
3231

3332
companion object {
34-
private var jdbcDatabase: JdbcDatabase = Mockito.mock()
35-
private var connectorConfig: DatabricksConnectorConfig = Mockito.mock()
36-
@JvmStatic
37-
@BeforeAll
38-
@Timeout(value = 10, unit = TimeUnit.MINUTES)
39-
fun setupDatabase() {
40-
val config = Jsons.deserialize(IOs.readFile(Path.of("secrets/oauth_config.json")))
41-
connectorConfig = DatabricksConnectorConfig.deserialize(config)
42-
jdbcDatabase =
33+
fun setupDatabase(
34+
connectorConfigPath: String
35+
): Pair<JdbcDatabase, DatabricksConnectorConfig> {
36+
val config = Jsons.deserialize(IOs.readFile(Path.of(connectorConfigPath)))
37+
val connectorConfig = DatabricksConnectorConfig.deserialize(config)
38+
val jdbcDatabase =
4339
DefaultJdbcDatabase(
4440
DatabricksConnectorClientsFactory.createDataSource(connectorConfig)
4541
)
4642
// This will trigger warehouse start
4743
jdbcDatabase.execute("SELECT 1")
44+
45+
return Pair(jdbcDatabase, connectorConfig)
4846
}
4947
}
5048

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (c) 2024 Airbyte, Inc., all rights reserved.
3+
*/
4+
5+
package io.airbyte.integrations.destination.databricks.typededupe
6+
7+
import io.airbyte.cdk.db.jdbc.JdbcDatabase
8+
import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorConfig
9+
import java.util.concurrent.TimeUnit
10+
import org.junit.jupiter.api.BeforeAll
11+
import org.junit.jupiter.api.Timeout
12+
13+
class DatabricksOauthTypingDedupingTest :
14+
AbstractDatabricksTypingDedupingTest(jdbcDatabase, connectorConfig) {
15+
companion object {
16+
private lateinit var jdbcDatabase: JdbcDatabase
17+
private lateinit var connectorConfig: DatabricksConnectorConfig
18+
19+
@JvmStatic
20+
@BeforeAll
21+
@Timeout(value = 10, unit = TimeUnit.MINUTES)
22+
fun setupDatabase() {
23+
val (jdbcDatabase, connectorConfig) = setupDatabase("secrets/oauth_config.json")
24+
this.jdbcDatabase = jdbcDatabase
25+
this.connectorConfig = connectorConfig
26+
}
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (c) 2024 Airbyte, Inc., all rights reserved.
3+
*/
4+
5+
package io.airbyte.integrations.destination.databricks.typededupe
6+
7+
import io.airbyte.cdk.db.jdbc.JdbcDatabase
8+
import io.airbyte.integrations.destination.databricks.model.DatabricksConnectorConfig
9+
import java.util.concurrent.TimeUnit
10+
import org.junit.jupiter.api.BeforeAll
11+
import org.junit.jupiter.api.Timeout
12+
13+
class DatabricksPersonalAccessTokenTypingDedupingTest :
14+
AbstractDatabricksTypingDedupingTest(jdbcDatabase, connectorConfig) {
15+
companion object {
16+
private lateinit var jdbcDatabase: JdbcDatabase
17+
private lateinit var connectorConfig: DatabricksConnectorConfig
18+
19+
@JvmStatic
20+
@BeforeAll
21+
@Timeout(value = 10, unit = TimeUnit.MINUTES)
22+
fun setupDatabase() {
23+
val (jdbcDatabase, connectorConfig) = setupDatabase("secrets/pat_config.json")
24+
this.jdbcDatabase = jdbcDatabase
25+
this.connectorConfig = connectorConfig
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)