diff --git a/packages/compass-connect/src/modules/telemetry.js b/packages/compass-connect/src/modules/telemetry.js index cd32ca3fcb6..d6171ad801f 100644 --- a/packages/compass-connect/src/modules/telemetry.js +++ b/packages/compass-connect/src/modules/telemetry.js @@ -49,7 +49,7 @@ async function getHostInformation(host) { async function getConnectionData(connectionInfo) { const {connectionOptions: {connectionString, sshTunnel}} = connectionInfo; - const connectionStringData = new ConnectionString(connectionString, {looseValidation: true}); + const connectionStringData = new ConnectionString(connectionString); const hostName = connectionStringData.hosts[0]; const searchParams = connectionStringData.searchParams; diff --git a/packages/compass-e2e-tests/tests/connection.test.ts b/packages/compass-e2e-tests/tests/connection.test.ts index f98f63b6fcd..8709e543c74 100644 --- a/packages/compass-e2e-tests/tests/connection.test.ts +++ b/packages/compass-e2e-tests/tests/connection.test.ts @@ -403,8 +403,8 @@ describe('SRV connectivity', function () { expect(resolutionLogs).to.have.lengthOf(1); const { from, to, resolutionDetails } = resolutionLogs[0]; - const fromCS = new ConnectionString(from, { looseValidation: true }); - const toCS = new ConnectionString(to, { looseValidation: true }); + const fromCS = new ConnectionString(from); + const toCS = new ConnectionString(to); fromCS.searchParams.delete('appname'); toCS.searchParams.delete('appname'); toCS.hosts.sort(); diff --git a/packages/compass-export-to-language/src/stores/store.js b/packages/compass-export-to-language/src/stores/store.js index e07b314ea60..1d3ac75fc1b 100644 --- a/packages/compass-export-to-language/src/stores/store.js +++ b/packages/compass-export-to-language/src/stores/store.js @@ -34,8 +34,7 @@ function getCurrentlyConnectedUri(dataService) { try { connectionStringUrl = new ConnectionString( - dataService.getConnectionOptions().connectionString, - {looseValidation: true} + dataService.getConnectionOptions().connectionString ); } catch (e) { return ''; diff --git a/packages/compass-metrics/src/modules/rules.js b/packages/compass-metrics/src/modules/rules.js index 0005fae4ef0..972b015334c 100644 --- a/packages/compass-metrics/src/modules/rules.js +++ b/packages/compass-metrics/src/modules/rules.js @@ -6,7 +6,7 @@ const LOCALHOST = /(^localhost)|(^127\.0\.0\.1)/gi; async function getCloudInfoFromDataService(dataService) { try { - const url = new ConnectionString(dataService.getConnectionOptions().connectionString, {looseValidation: true}); + const url = new ConnectionString(dataService.getConnectionOptions().connectionString); const firstServerHostname = (url.hosts[0] || '').split(':')[0]; return await getCloudInfo(firstServerHostname); } catch (e) { diff --git a/packages/connection-model/lib/connect.js b/packages/connection-model/lib/connect.js index 3dd8fff0070..2a01622a3a5 100644 --- a/packages/connection-model/lib/connect.js +++ b/packages/connection-model/lib/connect.js @@ -14,7 +14,7 @@ const { const debug = require('debug')('mongodb-connection-model:connect'); function removeGssapiServiceName(url) { - const uri = new ConnectionString(url, {looseValidation: true}); + const uri = new ConnectionString(url); uri.searchParams.delete('gssapiServiceName'); return uri.toString(); } diff --git a/packages/connection-model/lib/model.js b/packages/connection-model/lib/model.js index e6cf1117eb6..8aaa01737bc 100644 --- a/packages/connection-model/lib/model.js +++ b/packages/connection-model/lib/model.js @@ -446,7 +446,7 @@ function encodeURIComponentRFC3986(str) { } function setAuthSourceToExternal(url) { - const uri = new ConnectionString(url, {looseValidation: true}); + const uri = new ConnectionString(url); uri.searchParams.set('authSource', '$external'); return uri.toString(); } @@ -1118,7 +1118,7 @@ async function createConnectionFromUrl(url) { hosts: parsed.hosts, // If this is using an srv record, we can just take the original // URL before SRV resolution to get the "hostname". - hostname: isSrvRecord ? new ConnectionString(unescapedUrl, {looseValidation: true}).hosts[0] : parsed.hosts[0].host, + hostname: isSrvRecord ? new ConnectionString(unescapedUrl).hosts[0] : parsed.hosts[0].host, auth: parsed.auth, isSrvRecord }, @@ -1188,7 +1188,7 @@ async function createConnectionFromUrl(url) { // Since the 3.x parser does not recognize loadBalanced as an option, we have to // parse it ourselves. - const loadBalanced = new ConnectionString(unescapedUrl, {looseValidation: true}).searchParams.get('loadBalanced'); + const loadBalanced = new ConnectionString(unescapedUrl).searchParams.get('loadBalanced'); switch (loadBalanced) { case 'true': attrs.loadBalanced = true; diff --git a/packages/data-service/src/connection-secrets.ts b/packages/data-service/src/connection-secrets.ts index e6f5ae658d0..816309f6164 100644 --- a/packages/data-service/src/connection-secrets.ts +++ b/packages/data-service/src/connection-secrets.ts @@ -26,9 +26,7 @@ export function mergeSecrets( const connectionOptions = connectionInfoWithSecrets.connectionOptions; - const uri = new ConnectionString(connectionOptions.connectionString, { - looseValidation: true, - }); + const uri = new ConnectionString(connectionOptions.connectionString); // can remove the proxyPassword addition once we have NODE-3633 const searchParams = uri.typedSearchParams< MongoClientOptions & { proxyPassword?: string } @@ -85,9 +83,7 @@ export function extractSecrets(connectionInfo: Readonly): { const secrets: ConnectionSecrets = {}; const connectionOptions = connectionInfoWithoutSecrets.connectionOptions; - const uri = new ConnectionString(connectionOptions.connectionString, { - looseValidation: true, - }); + const uri = new ConnectionString(connectionOptions.connectionString); // can remove the proxyPassword addition once we have NODE-3633 const searchParams = uri.typedSearchParams< MongoClientOptions & { proxyPassword?: string } diff --git a/packages/data-service/src/connection-title.ts b/packages/data-service/src/connection-title.ts index 035d0ab1b81..eb78a45ca3e 100644 --- a/packages/data-service/src/connection-title.ts +++ b/packages/data-service/src/connection-title.ts @@ -7,13 +7,7 @@ export function getConnectionTitle(info: ConnectionInfo): string { } try { - const url = new ConnectionString(info.connectionOptions.connectionString, { - looseValidation: true, - }); - if (url.isSRV) { - return url.hosts[0]; - } - + const url = new ConnectionString(info.connectionOptions.connectionString); return url.hosts.join(','); } catch (e) { // When parsing a connection for its title fails we default the title. diff --git a/packages/data-service/src/data-service.ts b/packages/data-service/src/data-service.ts index a79c7c36f54..0b1104a0671 100644 --- a/packages/data-service/src/data-service.ts +++ b/packages/data-service/src/data-service.ts @@ -132,9 +132,7 @@ class DataService extends EventEmitter { } getConnectionString(): ConnectionStringUrl { - return new ConnectionStringUrl(this._connectionOptions.connectionString, { - looseValidation: true, - }); + return new ConnectionStringUrl(this._connectionOptions.connectionString); } getReadPreference(): ReadPreferenceLike { diff --git a/packages/data-service/src/legacy/legacy-connection-model.ts b/packages/data-service/src/legacy/legacy-connection-model.ts index 3a2af3ba2d2..4bc5ed69d93 100644 --- a/packages/data-service/src/legacy/legacy-connection-model.ts +++ b/packages/data-service/src/legacy/legacy-connection-model.ts @@ -33,8 +33,7 @@ function deleteCompassAppNameParam( try { connectionStringUrl = new ConnectionString( - connectionInfo.connectionOptions.connectionString, - { looseValidation: true } + connectionInfo.connectionOptions.connectionString ); } catch { return connectionInfo; @@ -262,8 +261,7 @@ function setDirectConnectionForSingleHosts(connectionInfo: ConnectionInfo) { try { connectionStringUrl = new ConnectionString( - connectionInfo.connectionOptions.connectionString, - { looseValidation: true } + connectionInfo.connectionOptions.connectionString ); } catch { return connectionInfo; @@ -296,9 +294,7 @@ function setConnectionStringParam( param: K, value: string ) { - const url = new ConnectionString(connectionOptions.connectionString, { - looseValidation: true, - }); + const url = new ConnectionString(connectionOptions.connectionString); url.typedSearchParams().set(param, value); connectionOptions.connectionString = url.toString(); } @@ -307,9 +303,7 @@ function modelSslPropertiesToConnectionOptions( driverOptions: MongoClientOptions, connectionOptions: ConnectionOptions ): void { - const url = new ConnectionString(connectionOptions.connectionString, { - looseValidation: true, - }); + const url = new ConnectionString(connectionOptions.connectionString); const searchParams = url.typedSearchParams(); if (driverOptions.sslValidate === false) { @@ -470,9 +464,7 @@ function convertSslOptionsToLegacyProperties( options: ConnectionOptions, properties: Partial ): void { - const url = new ConnectionString(options.connectionString, { - looseValidation: true, - }); + const url = new ConnectionString(options.connectionString); const searchParams = url.typedSearchParams(); const tlsCAFile = searchParams.get('tlsCAFile'); const tlsCertificateKeyFile = searchParams.get('tlsCertificateKeyFile'); @@ -502,9 +494,7 @@ function convertSslOptionsToLegacyProperties( } function optionsToSslMethod(options: ConnectionOptions): SslMethod { - const url = new ConnectionString(options.connectionString, { - looseValidation: true, - }); + const url = new ConnectionString(options.connectionString); const searchParams = url.typedSearchParams(); const tls = searchParams.get('tls') || searchParams.get('ssl'); @@ -545,7 +535,7 @@ function optionsToSslMethod(options: ConnectionOptions): SslMethod { // connection won't fail and MONGODB-AWS connections will appear // as unauthenticated. function removeAWSParams(connectionString: string): string { - const url = new ConnectionString(connectionString, { looseValidation: true }); + const url = new ConnectionString(connectionString); const searchParams = url.typedSearchParams(); if (searchParams.get('authMechanism') === 'MONGODB-AWS') { diff --git a/scripts/import-test-connections.js b/scripts/import-test-connections.js index 9c1b56c49d9..5ab9d3443b0 100644 --- a/scripts/import-test-connections.js +++ b/scripts/import-test-connections.js @@ -25,9 +25,7 @@ const buildConnectionString = (scheme, username, password, host, params) => { return ''; } - const url = new ConnectionStringUrl(`${scheme}://${host}/admin`, { - looseValidation: true, - }); + const url = new ConnectionStringUrl(`${scheme}://${host}/admin`); url.username = username; url.password = password; @@ -147,8 +145,7 @@ if (COMPASS_TEST_ANALYTICS_NODE_URL) { if (E2E_TESTS_ATLAS_HOST && E2E_TESTS_ATLAS_X509_PEM_PATH) { const url = new ConnectionStringUrl( - `mongodb+srv://${E2E_TESTS_ATLAS_HOST || ''}/admin`, - { looseValidation: true } + `mongodb+srv://${E2E_TESTS_ATLAS_HOST || ''}/admin` ); url.searchParams.set('authMechanism', 'MONGODB-X509');