From 45688cafd6be26b7df48376478b0498a79d09bda Mon Sep 17 00:00:00 2001 From: zipg Date: Thu, 3 Sep 2026 01:12:36 +0800 Subject: [PATCH] fix(argo): default ArgoDB connections to no-SASL auth --- agents/drivers/hive-go/config.go | 5 ++- agents/drivers/hive-go/config_test.go | 44 +++++++++++++++++++ .../database/connectionProfiles.spec.ts | 1 + .../src/types/generated/connectionProfiles.ts | 2 +- .../connection-types/profiles/catalog.yaml | 1 + 5 files changed, 51 insertions(+), 2 deletions(-) diff --git a/agents/drivers/hive-go/config.go b/agents/drivers/hive-go/config.go index 7bc34e0ba7..6940c70f70 100644 --- a/agents/drivers/hive-go/config.go +++ b/agents/drivers/hive-go/config.go @@ -170,7 +170,10 @@ func parseConnectionConfig(params connectParams) (connectionConfig, error) { CanonicalHostname: true, }, } - if strings.EqualFold(params.DatabaseType, "impala") { + if config.DatabaseType == "argo" { + config.Auth = "NOSASL" + } + if config.DatabaseType == "impala" { config.Auth = "NOSASL" config.Kerberos.Service = defaultImpalaService } diff --git a/agents/drivers/hive-go/config_test.go b/agents/drivers/hive-go/config_test.go index 1e602a5853..2575ff8ffa 100644 --- a/agents/drivers/hive-go/config_test.go +++ b/agents/drivers/hive-go/config_test.go @@ -296,6 +296,50 @@ func TestImpalaDefaultsToNoSASL(t *testing.T) { } } +func TestArgoDefaultsToNoSASL(t *testing.T) { + config, err := parseConnectionConfig(connectParams{ + DatabaseType: "argo", + Host: "argo.example.com", + Port: 10000, + Database: "analytics", + }) + if err != nil { + t.Fatal(err) + } + if config.Auth != "NOSASL" { + t.Fatalf("unexpected ArgoDB auth mode: %q", config.Auth) + } +} + +func TestArgoExplicitAuthenticationOverridesDefault(t *testing.T) { + config, err := parseConnectionConfig(connectParams{ + DatabaseType: "argo", + Host: "argo.example.com", + Port: 10000, + URLParams: "auth=NONE", + }) + if err != nil { + t.Fatal(err) + } + if config.Auth != "NONE" || !config.AuthExplicit { + t.Fatalf("explicit ArgoDB authentication was not preserved: %#v", config) + } +} + +func TestHiveDefaultAuthenticationRemainsSASL(t *testing.T) { + config, err := parseConnectionConfig(connectParams{ + DatabaseType: "hive", + Host: "hive.example.com", + Port: 10000, + }) + if err != nil { + t.Fatal(err) + } + if config.Auth != "NONE" { + t.Fatalf("unexpected Hive auth mode: %q", config.Auth) + } +} + func TestImpalaExplicitAuthenticationOverridesDefaults(t *testing.T) { config, err := parseConnectionConfig(connectParams{ DatabaseType: "impala", diff --git a/apps/desktop/src/lib/__tests__/database/connectionProfiles.spec.ts b/apps/desktop/src/lib/__tests__/database/connectionProfiles.spec.ts index f35ed2073b..89c090baf5 100644 --- a/apps/desktop/src/lib/__tests__/database/connectionProfiles.spec.ts +++ b/apps/desktop/src/lib/__tests__/database/connectionProfiles.spec.ts @@ -12,6 +12,7 @@ describe("generated connection profiles", () => { expect(CONNECTION_PROFILES.mariadb).toMatchObject({ type: "mysql", port: 3306, user: "root" }); expect(CONNECTION_PROFILES.rabbitmq).toMatchObject({ type: "mq", port: 5672, host: "127.0.0.1" }); expect(CONNECTION_PROFILES.nacos).toMatchObject({ type: "nacos", port: 8848, user: "nacos" }); + expect(CONNECTION_PROFILES.argo).toMatchObject({ type: "argo", urlParams: "auth=noSasl" }); }); it("keeps internal variants out of the main picker", () => { diff --git a/apps/desktop/src/types/generated/connectionProfiles.ts b/apps/desktop/src/types/generated/connectionProfiles.ts index 23cb0d19e5..2f6e8e479d 100644 --- a/apps/desktop/src/types/generated/connectionProfiles.ts +++ b/apps/desktop/src/types/generated/connectionProfiles.ts @@ -86,7 +86,7 @@ export const CONNECTION_PROFILES = { prestosql: { type: "prestosql", port: 8080, user: "", label: "PrestoSQL", icon: "presto" }, hive: { type: "hive", port: 10000, user: "", label: "Apache Hive", icon: "hive" }, kyuubi: { type: "kyuubi", port: 10009, user: "", label: "Apache Kyuubi", icon: "kyuubi", urlParams: "auth=NONE" }, - argo: { type: "argo", port: 10000, user: "", label: "ArgoDB (Transwarp)", icon: "hive" }, + argo: { type: "argo", port: 10000, user: "", label: "ArgoDB (Transwarp)", icon: "hive", urlParams: "auth=noSasl" }, impala: { type: "impala", port: 21050, user: "", label: "Apache Impala", icon: "impala", urlParams: "auth=noSasl" }, spark: { type: "spark", port: 10015, user: "", label: "Apache Spark", icon: "spark" }, db2: { type: "db2", port: 50000, user: "db2inst1", label: "IBM DB2", icon: "db2" }, diff --git a/plugins/connection-types/profiles/catalog.yaml b/plugins/connection-types/profiles/catalog.yaml index f59e866803..c65ab6b92b 100644 --- a/plugins/connection-types/profiles/catalog.yaml +++ b/plugins/connection-types/profiles/catalog.yaml @@ -476,6 +476,7 @@ profiles: icon: hive port: 10000 user: "" + urlParams: auth=noSasl category: domestic pickerLabel: ArgoDB - id: impala