From 4da0b25f44654938a7d7d074da281f1f0cabf1ff Mon Sep 17 00:00:00 2001 From: Gernot Pansy Date: Thu, 3 Nov 2022 11:01:24 +0100 Subject: [PATCH] Fix connection to mongodb via database url if a ssh tunnel is used * Replaces the the port with the tunnel port in the url --- .../dbgate-plugin-mongo/src/backend/driver.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/plugins/dbgate-plugin-mongo/src/backend/driver.js b/plugins/dbgate-plugin-mongo/src/backend/driver.js index 432593d4b..516375b88 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/driver.js +++ b/plugins/dbgate-plugin-mongo/src/backend/driver.js @@ -48,16 +48,17 @@ const driver = { ...driverBase, analyserClass: Analyser, async connect({ server, port, user, password, database, useDatabaseUrl, databaseUrl, ssl }) { - // let mongoUrl = databaseUrl; - // if (!useDatabaseUrl) { - // mongoUrl = user ? `mongodb://${user}:${password}@${server}:${port}` : `mongodb://${server}:${port}`; - // if (database) mongoUrl += '/' + database; - // } - const mongoUrl = useDatabaseUrl - ? databaseUrl - : user + let mongoUrl; + if (useDatabaseUrl) { + // change port to ssh tunnel port + const url = new URL(databaseUrl); + url.port = port; + mongoUrl = url.href; + } else { + mongoUrl = user ? `mongodb://${user}:${password}@${server}:${port}` : `mongodb://${server}:${port}`; + } const options = { useUnifiedTopology: true,