fix(postgres): default absent sslmode to prefer

This commit is contained in:
Freedom authored and GitHub committed 2026-07-23 15:36:23 +08:00
1 parent 87bb06d3e4
commit 48b373729d
5 files changed
+30 -27

No files matched your search

@@ -5621,7 +5621,7 @@ function openExternalUrl(url: string) {
? 'catalog=paimon_catalog'
: form.db_type === 'cassandra'
? 'localdatacenter=dc1'
: 'sslmode=disable'
: 'sslmode=prefer'
"
/>
</div>
@@ -2,8 +2,8 @@ import { describe, expect, it } from "vitest";
import { postgresTlsModeForForm } from "@/lib/connection/postgresTlsMode";
describe("postgresTlsModeForForm", () => {
it("uses disable when legacy connections have no explicit mode", () => {
expect(postgresTlsModeForForm(undefined, false)).toBe("disable");
it("uses prefer when legacy connections have no explicit mode", () => {
expect(postgresTlsModeForForm(undefined, false)).toBe("prefer");
});
it("keeps the legacy TLS toggle mapped to require", () => {
@@ -12,6 +12,7 @@ describe("postgresTlsModeForForm", () => {
it("honors explicit modes and aliases", () => {
expect(postgresTlsModeForForm("disable", false)).toBe("disable");
expect(postgresTlsModeForForm("prefer", false)).toBe("prefer");
expect(postgresTlsModeForForm("verify_identity", false)).toBe("verify-full");
});
});
@@ -12,7 +12,8 @@ export function postgresTlsModeForForm(value: string | undefined, ssl: boolean |
case "verify-identity":
return "verify-full";
default:
// DBX and DBeaver expose TLS as opt-in; an absent mode must remain plaintext.
return ssl ? "require" : "disable";
// Align with libpq/JDBC: absent mode prefers TLS and can fall back to plaintext.
// Legacy ssl=true still maps to require.
return ssl ? "require" : "prefer";
}
}