Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/compass-connect/src/modules/telemetry.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
4 changes: 2 additions & 2 deletions packages/compass-e2e-tests/tests/connection.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
3 changes: 1 addition & 2 deletions packages/compass-export-to-language/src/stores/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ function getCurrentlyConnectedUri(dataService) {

try {
connectionStringUrl = new ConnectionString(
dataService.getConnectionOptions().connectionString,
{looseValidation: true}
dataService.getConnectionOptions().connectionString
);
} catch (e) {
return '<uri>';
Expand Down
2 changes: 1 addition & 1 deletion packages/compass-metrics/src/modules/rules.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion packages/connection-model/lib/connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
6 changes: 3 additions & 3 deletions packages/connection-model/lib/model.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down Expand Up @@ -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
},
Expand Down Expand Up @@ -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;
Expand Down
8 changes: 2 additions & 6 deletions packages/data-service/src/connection-secrets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down Expand Up @@ -85,9 +83,7 @@ export function extractSecrets(connectionInfo: Readonly<ConnectionInfo>): {
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 }
Expand Down
8 changes: 1 addition & 7 deletions packages/data-service/src/connection-title.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 1 addition & 3 deletions packages/data-service/src/data-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
24 changes: 7 additions & 17 deletions packages/data-service/src/legacy/legacy-connection-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ function deleteCompassAppNameParam(

try {
connectionStringUrl = new ConnectionString(
connectionInfo.connectionOptions.connectionString,
{ looseValidation: true }
connectionInfo.connectionOptions.connectionString
);
} catch {
return connectionInfo;
Expand Down Expand Up @@ -262,8 +261,7 @@ function setDirectConnectionForSingleHosts(connectionInfo: ConnectionInfo) {

try {
connectionStringUrl = new ConnectionString(
connectionInfo.connectionOptions.connectionString,
{ looseValidation: true }
connectionInfo.connectionOptions.connectionString
);
} catch {
return connectionInfo;
Expand Down Expand Up @@ -296,9 +294,7 @@ function setConnectionStringParam<K extends keyof MongoClientOptions>(
param: K,
value: string
) {
const url = new ConnectionString(connectionOptions.connectionString, {
looseValidation: true,
});
const url = new ConnectionString(connectionOptions.connectionString);
url.typedSearchParams<MongoClientOptions>().set(param, value);
connectionOptions.connectionString = url.toString();
}
Expand All @@ -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<MongoClientOptions>();

if (driverOptions.sslValidate === false) {
Expand Down Expand Up @@ -470,9 +464,7 @@ function convertSslOptionsToLegacyProperties(
options: ConnectionOptions,
properties: Partial<LegacyConnectionModelProperties>
): void {
const url = new ConnectionString(options.connectionString, {
looseValidation: true,
});
const url = new ConnectionString(options.connectionString);
const searchParams = url.typedSearchParams<MongoClientOptions>();
const tlsCAFile = searchParams.get('tlsCAFile');
const tlsCertificateKeyFile = searchParams.get('tlsCertificateKeyFile');
Expand Down Expand Up @@ -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<MongoClientOptions>();
const tls = searchParams.get('tls') || searchParams.get('ssl');

Expand Down Expand Up @@ -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<MongoClientOptions>();

if (searchParams.get('authMechanism') === 'MONGODB-AWS') {
Expand Down
7 changes: 2 additions & 5 deletions scripts/import-test-connections.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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');
Expand Down