From b2bef49aba485516a91c30b187a47dd845b1cee7 Mon Sep 17 00:00:00 2001 From: x032205 Date: Wed, 8 Oct 2025 14:29:19 -0400 Subject: [PATCH] parse out sslmode from connectionUri under certain conditions --- backend/src/db/instance.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/backend/src/db/instance.ts b/backend/src/db/instance.ts index b1ecf7d65..ab71c9335 100644 --- a/backend/src/db/instance.ts +++ b/backend/src/db/instance.ts @@ -32,10 +32,27 @@ export const initDbConnection = ({ return selectedReplica; }); + // Parse out ?sslmode=... from the connection URI if its not equal to "disable" and dbRootCert is defined + let modifiedDbConnectionUri = dbConnectionUri; + if (dbRootCert) { + const parts = dbConnectionUri.split("?"); + const baseUrl = parts[0]; + const queryString = parts.length > 1 ? parts[1] : ""; + + if (queryString) { + const params = new URLSearchParams(queryString); + if (params.has("sslmode") && params.get("sslmode") !== "disable") { + params.delete("sslmode"); + const newQueryString = params.toString(); + modifiedDbConnectionUri = baseUrl + (newQueryString ? `?${newQueryString}` : ""); + } + } + } + db = knex({ client: "pg", connection: { - connectionString: dbConnectionUri, + connectionString: modifiedDbConnectionUri, host: process.env.DB_HOST, // @ts-expect-error I have no clue why only for the port there is a type error // eslint-disable-next-line