From b38b1d649c7b04bfd9f2f3b1c814546894762ffb Mon Sep 17 00:00:00 2001 From: Basit Date: Mon, 18 Dec 2023 21:11:08 +0100 Subject: [PATCH 1/2] generate test connections --- .gitignore | 5 +++ scripts/generate-connections.js | 72 +++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 scripts/generate-connections.js diff --git a/.gitignore b/.gitignore index 3b8e6c0..aed640e 100644 --- a/.gitignore +++ b/.gitignore @@ -193,4 +193,9 @@ lib **/*.js.map !**/initdb/*.js !.eslintrc.js +!scripts/generate-connections.js *.tgz + + +# Ignore the generated connections +compass-connections.json \ No newline at end of file diff --git a/scripts/generate-connections.js b/scripts/generate-connections.js new file mode 100644 index 0000000..959b88c --- /dev/null +++ b/scripts/generate-connections.js @@ -0,0 +1,72 @@ +const { default: createTestEnvironments } = require('./../src'); +const { v4 } = require('uuid'); +const path = require('path'); +const fs = require('fs/promises'); + +const FILE_PATH = path.resolve(__dirname, '..', 'compass-connections.json'); +const connectionsWithVariants = { + enterprise: ['enterprise'], + ldap: ['ldap'], + scram: [ + 'scramReadWriteAnyDatabase', + 'scramReadWriteAnyDatabaseScramSha1', + 'scramReadWriteAnyDatabaseScramSha256', + 'scramOnlyScramSha1', + 'scramOnlyScramSha256', + 'scramEncodedPassword', + 'scramPrivilegesOnNonExistingDatabases', + 'scramPrivilegesOnNonExistingCollections', + 'scramAlternateAuthDb', + ], + sharded: ['sharded'], + ssh: [ + 'sshPassword', + 'sshIdentityKey', + 'sshIdentityKeyWithPassphrase', + 'sshReplicaSetSeedlist', + 'sshReplicaSetByReplSetName', + ], + tls: [ + 'tlsUnvalidated', + 'tlsServerValidation', + 'tlsServerValidationSsh', + 'tlsServerAndClientValidation', + 'tlsServerAndClientValidationKeyCrt', + 'tlsX509', + 'tlsX509WithSsh', + ], + kerberos: ['kerberos', 'kerberosAlternate', 'kerberosCrossRealm'], +}; + +function generateConnections() { + const connections = []; + for (const [env, variants] of Object.entries(connectionsWithVariants)) { + const envConnections = createTestEnvironments([env]); + for (const variant of variants) { + connections.push({ + id: v4(), + favorite: { + name: variant, + }, + connectionOptions: envConnections.getConnectionOptions(variant), + }); + } + } + return { + type: 'Compass Connections', + version: 1, + connections, + }; +} + +async function writeConnections() { + const data = generateConnections(); + fs.writeFile(FILE_PATH, JSON.stringify(data, null, 2)); +} + +/** + * Creates a file with the connections for the Compass app, + * based on the test environments. These connections can be + * directly imported into Compass. + */ +void writeConnections(); From fa11d11b6a6bd646267d8b97f7c0ee34d68c0f82 Mon Sep 17 00:00:00 2001 From: Basit <1305718+mabaasit@users.noreply.github.com> Date: Wed, 20 Dec 2023 14:31:18 +0100 Subject: [PATCH 2/2] Update scripts/generate-connections.js Co-authored-by: Rhys --- scripts/generate-connections.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate-connections.js b/scripts/generate-connections.js index 959b88c..16066c7 100644 --- a/scripts/generate-connections.js +++ b/scripts/generate-connections.js @@ -61,7 +61,7 @@ function generateConnections() { async function writeConnections() { const data = generateConnections(); - fs.writeFile(FILE_PATH, JSON.stringify(data, null, 2)); + await fs.writeFile(FILE_PATH, JSON.stringify(data, null, 2)); } /**