From 7c8772d9e421440f075112d1e315edc8ed1c67d8 Mon Sep 17 00:00:00 2001 From: bailey Date: Wed, 21 Jan 2026 10:28:43 -0700 Subject: [PATCH 1/9] initial commit --- .evergreen/ci_matrix_constants.js | 5 +- .evergreen/config.yml | 1370 ++++++++++++----- .evergreen/generate_evergreen_tasks.js | 52 +- .evergreen/run-tests.sh | 5 +- global.d.ts | 6 +- test/integration/auth/auth.prose.test.ts | 3 +- .../change-streams/change_stream.test.ts | 83 +- ...ient_side_operations_timeout.prose.test.ts | 2 + .../collection-management/collection.test.ts | 17 +- .../command_monitoring.test.ts | 3 +- .../connection.test.ts | 6 +- test/integration/crud/aggregation.test.ts | 2 + .../dns_seedlist.test.ts | 2 +- .../max-staleness/max_staleness.test.js | 8 +- .../mongodb-handshake.prose.test.ts | 23 +- .../node-specific/client_close.test.ts | 2 +- .../node-specific/mongo_client.test.ts | 79 +- .../node-specific/resource_clean_up.test.ts | 37 +- .../node-specific/topology.test.ts | 2 +- .../retryable_reads.spec.test.ts | 4 + .../retryable_writes.spec.test.ts | 4 +- test/tools/cmap_spec_runner.ts | 38 +- test/tools/runner/config.ts | 14 +- test/tools/runner/filters/tls_filter.ts | 39 + test/tools/runner/hooks/configuration.ts | 11 +- test/tools/utils.ts | 29 +- 26 files changed, 1276 insertions(+), 570 deletions(-) create mode 100644 test/tools/runner/filters/tls_filter.ts diff --git a/.evergreen/ci_matrix_constants.js b/.evergreen/ci_matrix_constants.js index 25424b3be15..3a349d5849c 100644 --- a/.evergreen/ci_matrix_constants.js +++ b/.evergreen/ci_matrix_constants.js @@ -10,9 +10,8 @@ const LATEST_LTS = NODE_VERSIONS[NODE_VERSIONS.length - 1]; const TOPOLOGIES = ['server', 'replica_set', 'sharded_cluster']; const AWS_AUTH_VERSIONS = ['latest']; -const TLS_VERSIONS = ['latest', '8.0', '7.0', '6.0', '5.0', '4.4', '4.2']; -const LB_VERSIONS = MONGODB_VERSIONS.slice(0, MONGODB_VERSIONS.indexOf('5.0') + 1); -LB_VERSIONS.reverse(); +const TLS_VERSIONS = MONGODB_VERSIONS.filter(value => value !== 'rapid'); +const LB_VERSIONS = MONGODB_VERSIONS.slice(0, MONGODB_VERSIONS.indexOf('5.0') + 1).toReversed(); const DEFAULT_OS = 'rhel80-large'; const WINDOWS_OS = 'windows-2022-latest-large'; diff --git a/.evergreen/config.yml b/.evergreen/config.yml index e5f5c0962e5..468b1d4e4a1 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -646,7 +646,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: assume secrets manager role - func: install dependencies - command: subprocess.exec @@ -662,10 +662,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } - func: install dependencies - func: bootstrap mongo-orchestration - command: subprocess.exec @@ -683,7 +683,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: assume secrets manager role - command: subprocess.exec @@ -699,10 +699,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } - func: install dependencies - func: bootstrap mongo-orchestration - command: subprocess.exec @@ -849,7 +849,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - command: ec2.assume_role params: @@ -872,7 +872,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: '20'} + - { key: NODE_LTS_VERSION, value: '20' } - func: install dependencies - command: subprocess.exec type: test @@ -891,9 +891,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -906,9 +907,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -921,9 +923,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -936,9 +939,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -951,9 +955,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -966,9 +971,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -981,9 +987,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -996,9 +1003,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1011,9 +1019,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1026,9 +1035,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1041,9 +1051,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1056,9 +1067,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1071,9 +1083,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1086,9 +1099,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1101,9 +1115,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1116,9 +1131,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1131,9 +1147,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1146,9 +1163,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1161,9 +1179,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1176,9 +1195,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1191,9 +1211,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1206,9 +1227,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: server } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1221,9 +1243,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: replica_set } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1236,9 +1259,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: SSL, value: nossl } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1252,13 +1276,13 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: server} - - {key: REQUIRE_API_VERSION, value: '1'} - - {key: MONGODB_API_VERSION, value: '1'} - - {key: AUTH, value: auth} - - {key: TEST_CSFLE, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'true'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: REQUIRE_API_VERSION, value: '1' } + - { key: MONGODB_API_VERSION, value: '1' } + - { key: AUTH, value: auth } + - { key: TEST_CSFLE, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1287,12 +1311,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1308,12 +1332,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1329,12 +1353,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1350,12 +1374,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1371,12 +1395,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1392,12 +1416,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: LOAD_BALANCER, value: 'true'} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: LOAD_BALANCER, value: 'true' } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1412,7 +1436,7 @@ tasks: type: setup params: updates: - - {key: NATIVE, value: 'true'} + - { key: NATIVE, value: 'true' } - func: install dependencies - func: assume secrets manager role - func: run kerberos tests @@ -1432,8 +1456,8 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1445,9 +1469,9 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: TEST_SOCKS5_CSFLE, value: 'true'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: TEST_SOCKS5_CSFLE, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1459,9 +1483,9 @@ tasks: type: setup params: updates: - - {key: SSL, value: ssl} - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} + - { key: SSL, value: ssl } + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1474,12 +1498,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} - - {key: COMPRESSOR, value: snappy} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: COMPRESSOR, value: snappy } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run-compression-tests @@ -1492,12 +1516,12 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: auth} - - {key: COMPRESSOR, value: zstd} - - {key: CLIENT_ENCRYPTION, value: 'false'} - - {key: TEST_CSFLE, value: 'false'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: COMPRESSOR, value: zstd } + - { key: CLIENT_ENCRYPTION, value: 'false' } + - { key: TEST_CSFLE, value: 'false' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run-compression-tests @@ -1510,10 +1534,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: latest } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1526,10 +1550,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '8.0' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1542,10 +1566,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '7.0' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1558,10 +1582,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '6.0' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1574,10 +1598,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '5.0' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1590,10 +1614,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.4' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1606,10 +1630,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: SSL, value: ssl} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: auth} + - { key: VERSION, value: '4.2' } + - { key: SSL, value: ssl } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1619,11 +1643,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1634,11 +1658,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1649,11 +1673,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1664,11 +1688,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1679,11 +1703,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1694,11 +1718,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1709,11 +1733,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1724,11 +1748,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: NODE_LTS_VERSION, value: '24'} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: VERSION, value: latest } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1743,11 +1767,11 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: v22.11.0} - - {key: VERSION, value: v6.0-perf} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: MONGODB_CLIENT_OPTIONS, value: '{}'} + - { key: NODE_LTS_VERSION, value: v22.11.0 } + - { key: VERSION, value: v6.0-perf } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: MONGODB_CLIENT_OPTIONS, value: '{}' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1762,11 +1786,11 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: v22.11.0} - - {key: VERSION, value: v6.0-perf} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":120000}'} + - { key: NODE_LTS_VERSION, value: v22.11.0 } + - { key: VERSION, value: v6.0-perf } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":120000}' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1781,11 +1805,11 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: v22.11.0} - - {key: VERSION, value: v6.0-perf} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":0}'} + - { key: NODE_LTS_VERSION, value: v22.11.0 } + - { key: VERSION, value: v6.0-perf } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":0}' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1800,11 +1824,11 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: v22.11.0} - - {key: VERSION, value: v6.0-perf} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: MONGODB_CLIENT_OPTIONS, value: '{"monitorCommands":true}'} + - { key: NODE_LTS_VERSION, value: v22.11.0 } + - { key: VERSION, value: v6.0-perf } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: MONGODB_CLIENT_OPTIONS, value: '{"monitorCommands":true}' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1819,11 +1843,14 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: v22.11.0} - - {key: VERSION, value: v6.0-perf} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: MONGODB_CLIENT_OPTIONS, value: '{"mongodbLogPath":"stderr","mongodbLogComponentSeverities":{"default":"trace"}}'} + - { key: NODE_LTS_VERSION, value: v22.11.0 } + - { key: VERSION, value: v6.0-perf } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { + key: MONGODB_CLIENT_OPTIONS, + value: '{"mongodbLogPath":"stderr","mongodbLogComponentSeverities":{"default":"trace"}}' + } - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1836,7 +1863,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: run unit tests - name: run-unit-tests-node-22 @@ -1847,7 +1874,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: '22'} + - { key: NODE_LTS_VERSION, value: '22' } - func: install dependencies - func: run unit tests - name: run-unit-tests-node-24 @@ -1858,7 +1885,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: '24'} + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: run unit tests - name: run-lint-checks @@ -1869,7 +1896,7 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: '24'} + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: run lint checks - name: test-explicit-resource-management-feature-integration @@ -1880,9 +1907,9 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: check resource management feature integration @@ -1895,8 +1922,8 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: TS_VERSION, value: current} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: TS_VERSION, value: current } - func: install dependencies - func: check types - name: check-types-typescript-5.6 @@ -1908,8 +1935,8 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: TS_VERSION, value: '5.6'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: TS_VERSION, value: '5.6' } - func: install dependencies - func: check types - name: compile-driver-typescript-current @@ -1921,8 +1948,8 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: TS_VERSION, value: current} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: TS_VERSION, value: current } - func: install dependencies - func: compile driver - name: download-and-merge-coverage @@ -1942,10 +1969,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: CLIENT_ENCRYPTION, value: 'true'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: CLIENT_ENCRYPTION, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -1959,10 +1986,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: replica_set} - - {key: CLIENT_ENCRYPTION, value: 'true'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: replica_set } + - { key: CLIENT_ENCRYPTION, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -1976,10 +2003,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: CLIENT_ENCRYPTION, value: 'true'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: CLIENT_ENCRYPTION, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -1993,10 +2020,10 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: CLIENT_ENCRYPTION, value: 'true'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: CLIENT_ENCRYPTION, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: install package @@ -2011,12 +2038,12 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: CLIENT_ENCRYPTION, value: 'true'} - - {key: TEST_CSFLE, value: 'true'} - - {key: MONGODB_BINARIES, value: '${PROJECT_DIRECTORY}/mongodb/bin'} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - { key: MONGODB_BINARIES, value: '${PROJECT_DIRECTORY}/mongodb/bin' } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -2031,10 +2058,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2048,10 +2076,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2065,10 +2094,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2082,10 +2112,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2099,10 +2130,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2116,10 +2148,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2133,10 +2166,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2150,10 +2184,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2167,10 +2202,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2184,10 +2220,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2201,10 +2238,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2218,10 +2256,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2235,10 +2274,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2252,10 +2292,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2269,10 +2310,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2286,10 +2328,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2303,10 +2346,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2320,10 +2364,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2337,10 +2382,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2354,10 +2400,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2371,10 +2418,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2388,10 +2436,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: server} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2405,10 +2454,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: replica_set} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2422,10 +2472,11 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: noauth} - - {key: NODE_LTS_VERSION, value: 20.19.0} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: noauth } + - { key: SSL, value: nossl } + - { key: NODE_LTS_VERSION, value: 20.19.0 } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2438,9 +2489,9 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: server} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: run lambda handler example tests @@ -2453,11 +2504,11 @@ tasks: type: setup params: updates: - - {key: NODE_LTS_VERSION, value: 20.19.0} - - {key: VERSION, value: rapid} - - {key: AUTH, value: auth} - - {key: ORCHESTRATION_FILE, value: auth-aws.json} - - {key: TOPOLOGY, value: server} + - { key: NODE_LTS_VERSION, value: 20.19.0 } + - { key: VERSION, value: rapid } + - { key: AUTH, value: auth } + - { key: ORCHESTRATION_FILE, value: auth-aws.json } + - { key: TOPOLOGY, value: server } - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -2471,10 +2522,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: latest} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2487,10 +2538,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: rapid} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2503,10 +2554,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '8.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2519,10 +2570,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '7.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2535,10 +2586,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '6.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2551,10 +2602,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '5.0'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2567,10 +2618,10 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.4'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2583,10 +2634,490 @@ tasks: type: setup params: updates: - - {key: VERSION, value: '4.2'} - - {key: TOPOLOGY, value: sharded_cluster} - - {key: AUTH, value: auth} - - {key: NODE_LTS_VERSION, value: '24'} + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: NODE_LTS_VERSION, value: '24' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-latest-server-ssl + tags: + - latest + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-latest-replica_set-ssl + tags: + - latest + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-latest-sharded_cluster-ssl + tags: + - latest + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: latest } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-rapid-server-ssl + tags: + - rapid + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-rapid-replica_set-ssl + tags: + - rapid + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-rapid-sharded_cluster-ssl + tags: + - rapid + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: rapid } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-8.0-server-ssl + tags: + - '8.0' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-8.0-replica_set-ssl + tags: + - '8.0' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-8.0-sharded_cluster-ssl + tags: + - '8.0' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '8.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-7.0-server-ssl + tags: + - '7.0' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-7.0-replica_set-ssl + tags: + - '7.0' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-7.0-sharded_cluster-ssl + tags: + - '7.0' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '7.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-6.0-server-ssl + tags: + - '6.0' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-6.0-replica_set-ssl + tags: + - '6.0' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-6.0-sharded_cluster-ssl + tags: + - '6.0' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '6.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-5.0-server-ssl + tags: + - '5.0' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-5.0-replica_set-ssl + tags: + - '5.0' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-5.0-sharded_cluster-ssl + tags: + - '5.0' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '5.0' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.4-server-ssl + tags: + - '4.4' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.4-replica_set-ssl + tags: + - '4.4' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.4-sharded_cluster-ssl + tags: + - '4.4' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.4' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.2-server-ssl + tags: + - '4.2' + - server + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: server } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.2-replica_set-ssl + tags: + - '4.2' + - replica_set + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: replica_set } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: run tests + - name: test-4.2-sharded_cluster-ssl + tags: + - '4.2' + - sharded_cluster + - ssl + commands: + - command: expansions.update + type: setup + params: + updates: + - { key: VERSION, value: '4.2' } + - { key: TOPOLOGY, value: sharded_cluster } + - { key: AUTH, value: auth } + - { key: SSL, value: ssl } + - { key: NODE_LTS_VERSION, value: '24' } + - { key: CLIENT_ENCRYPTION, value: 'true' } + - { key: TEST_CSFLE, value: 'true' } - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2781,9 +3312,9 @@ task_groups: type: setup params: updates: - - {key: MONGODB_VERSION, value: '7.0'} - - {key: LAMBDA_STACK_NAME, value: dbx-node-lambda} - - {key: CLUSTER_PREFIX, value: dbx-node-lambda} + - { key: MONGODB_VERSION, value: '7.0' } + - { key: LAMBDA_STACK_NAME, value: dbx-node-lambda } + - { key: CLUSTER_PREFIX, value: dbx-node-lambda } - func: assume secrets manager role - command: subprocess.exec params: @@ -2815,8 +3346,8 @@ task_groups: type: setup params: updates: - - {key: MONGODB_VERSION, value: '7.0'} - - {key: CLUSTER_PREFIX, value: dbx-node-lambda} + - { key: MONGODB_VERSION, value: '7.0' } + - { key: CLUSTER_PREFIX, value: dbx-node-lambda } - func: assume secrets manager role - command: subprocess.exec params: @@ -3370,3 +3901,8 @@ buildvariants: run_on: rhel80-large tasks: - .resource-management + - name: TLS tests + display_name: TLS smoke tests + run_on: rhel80-large + tasks: + - .ssl diff --git a/.evergreen/generate_evergreen_tasks.js b/.evergreen/generate_evergreen_tasks.js index ff977cdedef..e5f0b691af1 100644 --- a/.evergreen/generate_evergreen_tasks.js +++ b/.evergreen/generate_evergreen_tasks.js @@ -64,20 +64,37 @@ function updateExpansions(expansions) { }; } -function makeTask({ mongoVersion, topology, tags = [], auth = 'auth', nodeLtsVersion }) { - const expansions = nodeLtsVersion - ? updateExpansions({ +function makeTask({ + mongoVersion, + topology, + tags = [], + auth = 'auth', + ssl = 'nossl', + testCsfle, + nodeLtsVersion +}) { + const baseExpansions = nodeLtsVersion + ? { VERSION: mongoVersion, TOPOLOGY: topology, AUTH: auth, + SSL: ssl, NODE_LTS_VERSION: nodeLtsVersion - }) - : updateExpansions({ VERSION: mongoVersion, TOPOLOGY: topology, AUTH: auth }); + } + : { VERSION: mongoVersion, TOPOLOGY: topology, SSL: ssl, AUTH: auth }; + + if (testCsfle) { + baseExpansions.CLIENT_ENCRYPTION = true; + baseExpansions.TEST_CSFLE = true; + } + + const name = `test-${mongoVersion}-${topology}${auth === 'noauth' ? '-noauth' : ''}${ssl === 'ssl' ? '-ssl' : ''}`; + return { - name: `test-${mongoVersion}-${topology}${auth === 'noauth' ? '-noauth' : ''}`, + name, tags: [mongoVersion, topology, ...tags], commands: [ - expansions, + updateExpansions(baseExpansions), { func: 'install dependencies' }, { func: 'bootstrap mongo-orchestration' }, { func: 'run tests' } @@ -469,6 +486,17 @@ const unitTestTasks = Array.from( })() ); +const tlsTests = generateVersionTopologyMatrix().map(({ mongoVersion, topology }) => + makeTask({ + mongoVersion, + topology, + ssl: 'ssl', + tags: ['ssl'], + nodeLtsVersion: LATEST_LTS, + testCsfle: true + }) +); + // singleton build variant for linting SINGLETON_TASKS.push( ...[ @@ -776,6 +804,13 @@ BUILD_VARIANTS.push({ tasks: ['.resource-management'] }); +BUILD_VARIANTS.push({ + name: 'TLS tests', + display_name: 'TLS smoke tests', + run_on: DEFAULT_OS, + tasks: ['.ssl'] +}); + // TODO(NODE-4897): Debug socks5 tests on node latest for (const variant of BUILD_VARIANTS.filter( variant => variant.expansions && ['latest'].includes(variant.expansions.NODE_LTS_VERSION) @@ -791,7 +826,8 @@ fileData.tasks = [ ...SINGLETON_TASKS, ...AUTH_DISABLED_TASKS, ...AWS_LAMBDA_HANDLER_TASKS, - ...MONGOCRYPTD_CSFLE_TASKS + ...MONGOCRYPTD_CSFLE_TASKS, + ...tlsTests ]; fileData.buildvariants = [...(fileData.buildvariants ?? []), ...BUILD_VARIANTS]; diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 87ad6f4da7d..bdac4bbd55c 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -26,8 +26,9 @@ fi # ssl setup SSL=${SSL:-nossl} if [ "$SSL" != "nossl" ]; then - export SSL_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem" - export SSL_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem" + export TLS_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem" + export TLS_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem" + export TLS_CRL_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/crl.pem" fi # run tests diff --git a/global.d.ts b/global.d.ts index 13cd171c476..271b2a1de71 100644 --- a/global.d.ts +++ b/global.d.ts @@ -20,8 +20,10 @@ declare global { idmsMockServer?: true; nodejs?: string; predicate?: (test?: Mocha.Test) => true | string; - crypt_shared?: 'enabled' | 'disabled', + crypt_shared?: 'enabled' | 'disabled'; libmongocrypt?: string; + + tls?: 'enabled' | 'disabled'; }; sessions?: { @@ -118,7 +120,7 @@ declare global { * beforeEach(() => { * if ('some condition') { * this.currentTest.skipReason = 'requires to run'; - * this.skip(); + * this; * } * }); * ``` diff --git a/test/integration/auth/auth.prose.test.ts b/test/integration/auth/auth.prose.test.ts index dfc0b8b1fe9..5abdd398cac 100644 --- a/test/integration/auth/auth.prose.test.ts +++ b/test/integration/auth/auth.prose.test.ts @@ -15,7 +15,8 @@ function makeConnectionString(config, username, password) { const metadata: MongoDBMetadataUI = { requires: { predicate: () => - process.env.LOAD_BALANCER ? 'TODO(NODE-5631): fix tests to run in load balancer mode.' : true + process.env.LOAD_BALANCER ? 'TODO(NODE-5631): fix tests to run in load balancer mode.' : true, + tls: 'disabled' } }; diff --git a/test/integration/change-streams/change_stream.test.ts b/test/integration/change-streams/change_stream.test.ts index a7b8dec85c3..4c52a5e2630 100644 --- a/test/integration/change-streams/change_stream.test.ts +++ b/test/integration/change-streams/change_stream.test.ts @@ -251,6 +251,7 @@ describe('Change Streams', function () { beforeEach(async function () { client = this.configuration.newClient(); + await client.connect(); }); afterEach(async function () { @@ -1267,46 +1268,54 @@ describe('Change Streams', function () { await mock.cleanup(); }); - it('changeStream should close if cursor id for initial aggregate is Long.ZERO', async function () { - mockServer.setMessageHandler(req => { - const doc = req.document; - if (isHello(doc)) { - return req.reply(mock.HELLO); - } - if (doc.aggregate) { - return req.reply({ - ok: 1, - cursor: { - id: Long.ZERO, - firstBatch: [] - } - }); - } - if (doc.getMore) { - return req.reply({ - ok: 1, - cursor: { - id: new Long(1407, 1407), - nextBatch: [] - } - }); + it( + 'changeStream should close if cursor id for initial aggregate is Long.ZERO', + { + requires: { + predicate: () => (process.env.SSL === 'ssl' ? 'test requries no TLS' : true) } - req.reply({ ok: 1 }); - }); - const client = this.configuration.newClient(`mongodb://${mockServer.uri()}/`, { - serverApi: null // TODO(NODE-3807): remove resetting serverApi when the usage of mongodb mock server is removed - }); - await client.connect(); - const collection = client.db('cs').collection('test'); - const changeStream = collection.watch(); + }, + async function () { + mockServer.setMessageHandler(req => { + const doc = req.document; + if (isHello(doc)) { + return req.reply(mock.HELLO); + } + if (doc.aggregate) { + return req.reply({ + ok: 1, + cursor: { + id: Long.ZERO, + firstBatch: [] + } + }); + } + if (doc.getMore) { + return req.reply({ + ok: 1, + cursor: { + id: new Long(1407, 1407), + nextBatch: [] + } + }); + } + req.reply({ ok: 1 }); + }); + const client = this.configuration.newClient(`mongodb://${mockServer.uri()}/`, { + serverApi: null // TODO(NODE-3807): remove resetting serverApi when the usage of mongodb mock server is removed + }); + await client.connect(); + const collection = client.db('cs').collection('test'); + const changeStream = collection.watch(); - const err = await changeStream.next().catch(e => e); - expect(err).to.exist; - expect(err?.message).to.equal('ChangeStream is closed'); + const err = await changeStream.next().catch(e => e); + expect(err).to.exist; + expect(err?.message).to.equal('ChangeStream is closed'); - await changeStream.close(); - await client.close(); - }); + await changeStream.close(); + await client.close(); + } + ); }); }); diff --git a/test/integration/client-side-operations-timeout/client_side_operations_timeout.prose.test.ts b/test/integration/client-side-operations-timeout/client_side_operations_timeout.prose.test.ts index 6a56563091d..d785e61e2cd 100644 --- a/test/integration/client-side-operations-timeout/client_side_operations_timeout.prose.test.ts +++ b/test/integration/client-side-operations-timeout/client_side_operations_timeout.prose.test.ts @@ -639,6 +639,8 @@ describe('CSOT spec prose tests', function () { this.configuration.url({ useMultipleMongoses: false }), { timeoutMS: 150 } ); + + await client.connect(); }); afterEach(async function () { diff --git a/test/integration/collection-management/collection.test.ts b/test/integration/collection-management/collection.test.ts index 7adaf2b13ce..cf1e71ac26b 100644 --- a/test/integration/collection-management/collection.test.ts +++ b/test/integration/collection-management/collection.test.ts @@ -17,10 +17,15 @@ describe('Collection', function () { let client: MongoClient; let db: Db; - beforeEach(function () { - client = configuration.newClient(configuration.writeConcernMax(), { - maxPoolSize: 1 - }); + beforeEach(async function () { + client = configuration.newClient( + {}, + { + ...this.configuration.writeConcernMax(), + maxPoolSize: 1 + } + ); + await client.connect(); db = client.db(configuration.db); }); @@ -79,9 +84,9 @@ describe('Collection', function () { expect(found2).to.be.true; }); - it('should permit insert of dot and dollar keys if requested', function () { + it('should permit insert of dot and dollar keys if requested', async function () { const collection = db.collection('test_invalid_key_names'); - return Promise.all([ + await Promise.all([ collection.insertOne({ hel$lo: 0 }, { checkKeys: false }), collection.insertOne({ hello: { $hello: 0 } }, { checkKeys: false }), // embedded document can have a leading dollar collection.insertOne({ 'hel.lo': 0 }, { checkKeys: false }), diff --git a/test/integration/command-logging-and-monitoring/command_monitoring.test.ts b/test/integration/command-logging-and-monitoring/command_monitoring.test.ts index 01c596c07ff..e68daa3f428 100644 --- a/test/integration/command-logging-and-monitoring/command_monitoring.test.ts +++ b/test/integration/command-logging-and-monitoring/command_monitoring.test.ts @@ -557,7 +557,7 @@ describe('Command Monitoring', function () { it('should correctly decorate the apm result for listCollections with cursorId', { metadata: { requires: { topology: ['single', 'replicaset'], mongodb: '>=3.0.0' } }, - test: function () { + test: async function () { const started = []; const succeeded = []; const client = this.configuration.newClient( @@ -565,6 +565,7 @@ describe('Command Monitoring', function () { { maxPoolSize: 1, monitorCommands: true } ); + await client.connect(); const desiredEvents = ['listCollections']; client.on('commandStarted', filterForCommands(desiredEvents, started)); client.on('commandSucceeded', filterForCommands(desiredEvents, succeeded)); diff --git a/test/integration/connection-monitoring-and-pooling/connection.test.ts b/test/integration/connection-monitoring-and-pooling/connection.test.ts index 0e6ccff28a2..a20f36c7b6e 100644 --- a/test/integration/connection-monitoring-and-pooling/connection.test.ts +++ b/test/integration/connection-monitoring-and-pooling/connection.test.ts @@ -43,7 +43,7 @@ describe('Connection', function () { describe('Connection.command', function () { it('should execute a command against a server', { - metadata: { requires: { apiVersion: false, topology: '!load-balanced' } }, + metadata: { requires: { apiVersion: false, topology: '!load-balanced', tls: 'disabled' } }, test: async function () { const connectOptions: ConnectionOptions = { ...commonConnectOptions, @@ -64,7 +64,7 @@ describe('Connection', function () { }); it('should emit command monitoring events', { - metadata: { requires: { apiVersion: false, topology: '!load-balanced' } }, + metadata: { requires: { apiVersion: false, topology: '!load-balanced', tls: 'disabled' } }, test: async function () { const connectOptions: ConnectionOptions = { ...commonConnectOptions, @@ -95,7 +95,7 @@ describe('Connection', function () { afterEach(() => sinon.restore()); it('command monitoring event do not deserialize more than once', { - metadata: { requires: { apiVersion: false, topology: '!load-balanced' } }, + metadata: { requires: { apiVersion: false, topology: '!load-balanced', tls: 'disabled' } }, test: async function () { const connectOptions: ConnectionOptions = { ...commonConnectOptions, diff --git a/test/integration/crud/aggregation.test.ts b/test/integration/crud/aggregation.test.ts index 92602f7b875..6e2ace06f02 100644 --- a/test/integration/crud/aggregation.test.ts +++ b/test/integration/crud/aggregation.test.ts @@ -832,6 +832,8 @@ describe('Aggregation', function () { const coll1 = client.db(databaseName).collection('coll1'); const coll2 = client.db(databaseName).collection('coll2'); + await client.connect(); + await Promise.all([coll1.deleteMany({}), coll2.deleteMany({})]) .then(() => { const docs = Array.from({ length: 10 }).map(() => ({ a: 1 })); diff --git a/test/integration/initial-dns-seedlist-discovery/dns_seedlist.test.ts b/test/integration/initial-dns-seedlist-discovery/dns_seedlist.test.ts index 0618c376c01..15ad016cc3d 100644 --- a/test/integration/initial-dns-seedlist-discovery/dns_seedlist.test.ts +++ b/test/integration/initial-dns-seedlist-discovery/dns_seedlist.test.ts @@ -4,7 +4,7 @@ import * as sinon from 'sinon'; import { MongoClient } from '../../../src'; -const metadata: MongoDBMetadataUI = { requires: { topology: '!single' } }; +const metadata: MongoDBMetadataUI = { requires: { topology: '!single', tls: 'disabled' } }; // This serves as a placeholder for _whatever_ node.js may throw. We only rely upon `.code` class DNSTimeoutError extends Error { diff --git a/test/integration/max-staleness/max_staleness.test.js b/test/integration/max-staleness/max_staleness.test.js index 2bb712cd702..867bdc92fed 100644 --- a/test/integration/max-staleness/max_staleness.test.js +++ b/test/integration/max-staleness/max_staleness.test.js @@ -46,7 +46,7 @@ describe('Max Staleness', function () { it('should correctly set maxStalenessSeconds on Mongos query on connect', { metadata: { requires: { - generators: true, + tls: 'disabled', topology: 'replicaset' } }, @@ -72,7 +72,7 @@ describe('Max Staleness', function () { it('should correctly set maxStalenessSeconds on Mongos query using db level readPreference', { metadata: { requires: { - generators: true, + tls: 'disabled', topology: 'replicaset' } }, @@ -102,7 +102,7 @@ describe('Max Staleness', function () { { metadata: { requires: { - generators: true, + tls: 'disabled', topology: 'replicaset' } }, @@ -135,7 +135,7 @@ describe('Max Staleness', function () { it('should correctly set maxStalenessSeconds on Mongos query using cursor level readPreference', { metadata: { requires: { - generators: true, + tls: 'disabled', topology: 'replicaset' } }, diff --git a/test/integration/mongodb-handshake/mongodb-handshake.prose.test.ts b/test/integration/mongodb-handshake/mongodb-handshake.prose.test.ts index 6e53e846997..219ef6f70e7 100644 --- a/test/integration/mongodb-handshake/mongodb-handshake.prose.test.ts +++ b/test/integration/mongodb-handshake/mongodb-handshake.prose.test.ts @@ -2,7 +2,7 @@ import { expect } from 'chai'; import * as process from 'process'; import * as sinon from 'sinon'; -import { type ClientMetadata, type DriverInfo, Int32, MongoClient } from '../../../src'; +import { type ClientMetadata, type DriverInfo, Int32, type MongoClient } from '../../../src'; import { Connection } from '../../../src/cmap/connection'; import { getFAASEnv, isDriverInfoEqual } from '../../../src/cmap/handshake/client_metadata'; import { LEGACY_HELLO_COMMAND } from '../../../src/constants'; @@ -397,7 +397,7 @@ describe('Client Metadata Update Prose Tests', function () { // 4. Save intercepted `client` document as `updatedClientMetadata`. // 5. Wait 5ms for the connection to become idle. beforeEach(async function () { - client = new MongoClient(this.configuration.url(), { + client = this.configuration.newClient(this.configuration.url(), { maxIdleTimeMS: 1, serverApi: this.configuration.serverApi }); @@ -488,10 +488,13 @@ describe('Client Metadata Update Prose Tests', function () { // 1. Create a `MongoClient` instance with: // - `maxIdleTimeMS` set to `1ms` - client = new MongoClient(this.configuration.url(), { - maxIdleTimeMS: 1, - serverApi: this.configuration.serverApi - }); + client = this.configuration.newClient( + {}, + { + maxIdleTimeMS: 1, + serverApi: this.configuration.serverApi + } + ); // 2. Append the following `DriverInfoOptions` to the `MongoClient` metadata: // | Field | Value | // | -------- | ---------------- | @@ -592,7 +595,7 @@ describe('Client Metadata Update Prose Tests', function () { // | name | library | // | version | 1.2 | // | platform | Library Platform | - client = new MongoClient(this.configuration.url(), { + client = this.configuration.newClient(this.configuration.url(), { maxIdleTimeMS: 1, serverApi: this.configuration.serverApi, driverInfo: { name: 'library', version: '1.2', platform: 'Library Platform' } @@ -663,7 +666,7 @@ describe('Client Metadata Update Prose Tests', function () { // | version | 1.2 | // | platform | Library Platform | - client = new MongoClient(this.configuration.url(), { + client = this.configuration.newClient(this.configuration.url(), { maxIdleTimeMS: 1, driverInfo: { name: 'library', @@ -793,7 +796,7 @@ describe('Client Metadata Update Prose Tests', function () { it('does not appended duplicate metadata', async function () { // 1. Create a `MongoClient` instance with: // - `maxIdleTimeMS` set to `1ms` - client = new MongoClient(this.configuration.url(), { + client = this.configuration.newClient(this.configuration.url(), { maxIdleTimeMS: 1, serverApi: this.configuration.serverApi }); @@ -897,7 +900,7 @@ describe('Client Metadata Update Prose Tests', function () { // 1. Create a `MongoClient` instance with: // - `maxIdleTimeMS` set to `1ms` // - `driverInfo` set to the `DriverInfoOptions` from the selected test case from the initial metadata section. - client = new MongoClient(this.configuration.url(), { + client = this.configuration.newClient(this.configuration.url(), { maxIdleTimeMS: 1, serverApi: this.configuration.serverApi, driverInfo: metadata.initial diff --git a/test/integration/node-specific/client_close.test.ts b/test/integration/node-specific/client_close.test.ts index 1e9188b1cf4..74f380e9386 100644 --- a/test/integration/node-specific/client_close.test.ts +++ b/test/integration/node-specific/client_close.test.ts @@ -536,7 +536,7 @@ describe('MongoClient.close() Integration', () => { expect(client.s.sessionPool.sessions).to.have.length.greaterThan(0); }); - it('does not execute endSessions', async function () { + it('does not execute endSessions', { requires: { tls: 'disabled' } }, async function () { await client.close(); expect(commands).to.deep.equal([]); diff --git a/test/integration/node-specific/mongo_client.test.ts b/test/integration/node-specific/mongo_client.test.ts index 725c42e7b05..001c33a919c 100644 --- a/test/integration/node-specific/mongo_client.test.ts +++ b/test/integration/node-specific/mongo_client.test.ts @@ -126,8 +126,7 @@ describe('class MongoClient', function () { beforeEach(async function () { spy = sinon.spy(net, 'createConnection'); - const uri = this.configuration.url(); - client = new MongoClient(uri, options); + client = this.configuration.newClient({}, options); await client.connect(); }); @@ -137,7 +136,7 @@ describe('class MongoClient', function () { }); it('passes through the option', { - metadata: { requires: { apiVersion: false } }, + metadata: { requires: { apiVersion: false, tls: 'disabled' } }, test: function () { expect(spy).to.have.been.calledWith( sinon.match({ @@ -156,8 +155,7 @@ describe('class MongoClient', function () { beforeEach(async function () { spy = sinon.spy(net, 'createConnection'); - const uri = this.configuration.url(); - client = new MongoClient(uri, options); + client = this.configuration.newClient({}, options); await client.connect(); }); @@ -167,7 +165,7 @@ describe('class MongoClient', function () { }); it('passes through the option', { - metadata: { requires: { apiVersion: false } }, + metadata: { requires: { apiVersion: false, tls: 'disabled' } }, test: function () { expect(spy).to.have.been.calledWith( sinon.match({ @@ -186,8 +184,7 @@ describe('class MongoClient', function () { beforeEach(async function () { spy = sinon.spy(net, 'createConnection'); - const uri = this.configuration.url(); - client = new MongoClient(uri, options); + client = this.configuration.newClient({}, options); await client.connect(); }); @@ -197,7 +194,7 @@ describe('class MongoClient', function () { }); it('the Node.js runtime sets the option to 0', { - metadata: { requires: { apiVersion: false } }, + metadata: { requires: { apiVersion: false, tls: 'disabled' } }, test: function () { expect(spy).to.have.been.calledWith( sinon.match({ @@ -228,7 +225,7 @@ describe('class MongoClient', function () { }); it('throws an error', { - metadata: { requires: { apiVersion: false } }, + metadata: { requires: { apiVersion: false, tls: 'disabled' } }, test: async function () { const error = await client.connect().catch(error => error); expect(error.message).to.include( @@ -254,7 +251,7 @@ describe('class MongoClient', function () { spy.restore(); }); - it('sets keepalive to 120000', function () { + it('sets keepalive to 120000', { requires: { tls: 'disabled' } }, function () { expect(spy).to.have.been.calledWith( sinon.match({ keepAlive: true, @@ -279,13 +276,19 @@ describe('class MongoClient', function () { spy.restore(); }); - it('sets noDelay to true', function () { - expect(spy).to.have.been.calledWith( - sinon.match({ - noDelay: true - }) - ); - }); + it( + 'sets noDelay to true', + { + requires: { tls: 'disabled' } + }, + function () { + expect(spy).to.have.been.calledWith( + sinon.match({ + noDelay: true + }) + ); + } + ); }); context('when noDelay is provided', function () { @@ -295,8 +298,7 @@ describe('class MongoClient', function () { beforeEach(async function () { const options = { noDelay: false }; spy = sinon.spy(net, 'createConnection'); - const uri = this.configuration.url(); - client = new MongoClient(uri, options); + client = this.configuration.newClient({}, options); await client.connect(); }); @@ -306,7 +308,7 @@ describe('class MongoClient', function () { }); it('sets noDelay', { - metadata: { requires: { apiVersion: false } }, + metadata: { requires: { apiVersion: false, tls: 'disabled' } }, test: function () { expect(spy).to.have.been.calledWith( sinon.match({ @@ -463,26 +465,32 @@ describe('class MongoClient', function () { it('must respect a finite connectTimeoutMS for the streaming protocol', { metadata: { requires: { topology: 'replicaset', mongodb: '>= 4.4' } }, test: async function () { - client = this.configuration.newClient({ - connectTimeoutMS: 10, - heartbeatFrequencyMS: 500 - }); + client = this.configuration.newClient( + {}, + { + connectTimeoutMS: 2000, + heartbeatFrequencyMS: 500 + } + ); const spy = sinon.spy(Connection.prototype, 'command'); await client.connect(); const options = spy.getCall(0).args[2]; - expect(options).property('socketTimeoutMS').to.equal(10); + expect(options).property('socketTimeoutMS').to.equal(2000); } }); context('explict #connect()', () => { let client: MongoClient; beforeEach(function () { - client = this.configuration.newClient(this.configuration.url(), { - monitorCommands: true - }); + client = this.configuration.newClient( + {}, + { + monitorCommands: true + } + ); }); afterEach(async function () { @@ -519,9 +527,12 @@ describe('class MongoClient', function () { context('implicit #connect()', () => { let client: MongoClient; beforeEach(function () { - client = this.configuration.newClient(this.configuration.url(), { - monitorCommands: true - }); + client = this.configuration.newClient( + {}, + { + monitorCommands: true + } + ); }); afterEach(async function () { @@ -1034,7 +1045,7 @@ describe('class MongoClient', function () { }); it('sets the provided options', { - metadata: { requires: { topology: ['single'] } }, + metadata: { requires: { topology: ['single'], tls: 'disabled' } }, test: async function () { await client.connect(); expect(netSpy).to.have.been.calledWith( @@ -1053,7 +1064,7 @@ describe('class MongoClient', function () { }); it('sets the default options', { - metadata: { requires: { topology: ['single'] } }, + metadata: { requires: { topology: ['single'], tls: 'disabled' } }, test: async function () { await client.connect(); expect(netSpy).to.have.been.calledWith( diff --git a/test/integration/node-specific/resource_clean_up.test.ts b/test/integration/node-specific/resource_clean_up.test.ts index edcb7e48fc2..bad77642809 100644 --- a/test/integration/node-specific/resource_clean_up.test.ts +++ b/test/integration/node-specific/resource_clean_up.test.ts @@ -2,8 +2,9 @@ import * as v8 from 'node:v8'; import { expect } from 'chai'; -import { sleep } from '../../tools/utils'; +import { getEnvironmentalOptions, sleep } from '../../tools/utils'; import { runScriptAndReturnHeapInfo } from './resource_tracking_script_builder'; +import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; /** * This 5MB range is selected arbitrarily and should likely be raised if failures are seen intermittently. @@ -34,7 +35,11 @@ describe('Driver Resources', () => { context('on MongoClient.close()', () => { before('create leak reproduction script', async function () { - if (globalThis.AbortController == null || typeof this.configuration.serverApi === 'string') { + if ( + globalThis.AbortController == null || + typeof this.configuration.serverApi === 'string' || + isTLSEnabled + ) { return; } const res = await runScriptAndReturnHeapInfo( @@ -56,21 +61,25 @@ describe('Driver Resources', () => { }); describe('ending memory usage', () => { - it(`is within ${MB_PERMITTED_OFFSET}MB of starting amount`, async () => { - // Why check the lower bound? No reason, but it would be very surprising if we managed to free MB_PERMITTED_OFFSET MB of memory - // I expect us to **never** be below the lower bound, but I'd want to know if it happened - expect( - endingMemoryUsed, - `script started with ${startingMemoryUsed}MB heap but ended with ${endingMemoryUsed}MB heap used` - ).to.be.within( - startingMemoryUsed - MB_PERMITTED_OFFSET, - startingMemoryUsed + MB_PERMITTED_OFFSET - ); - }); + it( + `is within ${MB_PERMITTED_OFFSET}MB of starting amount`, + { requires: { tls: 'disabled' } }, + async () => { + // Why check the lower bound? No reason, but it would be very surprising if we managed to free MB_PERMITTED_OFFSET MB of memory + // I expect us to **never** be below the lower bound, but I'd want to know if it happened + expect( + endingMemoryUsed, + `script started with ${startingMemoryUsed}MB heap but ended with ${endingMemoryUsed}MB heap used` + ).to.be.within( + startingMemoryUsed - MB_PERMITTED_OFFSET, + startingMemoryUsed + MB_PERMITTED_OFFSET + ); + } + ); }); describe('ending heap snapshot', () => { - it('has 0 MongoClients in memory', async () => { + it('has 0 MongoClients in memory', { requires: { tls: 'disabled' } }, async () => { // lengthOf crashes chai b/c it tries to print out a gigantic diff expect( clientsInMemory, diff --git a/test/integration/node-specific/topology.test.ts b/test/integration/node-specific/topology.test.ts index cc35303c0f5..b4ab8fd9fb7 100644 --- a/test/integration/node-specific/topology.test.ts +++ b/test/integration/node-specific/topology.test.ts @@ -4,7 +4,7 @@ import { MongoClient, type MongoClientOptions, type Topology } from '../../../sr describe('Topology', function () { it('should correctly track states of a topology', { - metadata: { requires: { apiVersion: false, topology: '!load-balanced' } }, // apiVersion not supported by newTopology() + metadata: { requires: { apiVersion: false, topology: '!load-balanced', tls: 'disabled' } }, // apiVersion not supported by newTopology() test: async function () { class WrappedClient extends MongoClient { _topology: Topology | undefined = undefined; diff --git a/test/integration/retryable-reads/retryable_reads.spec.test.ts b/test/integration/retryable-reads/retryable_reads.spec.test.ts index 19657f01e6d..c2f25c5cb73 100644 --- a/test/integration/retryable-reads/retryable_reads.spec.test.ts +++ b/test/integration/retryable-reads/retryable_reads.spec.test.ts @@ -2,6 +2,7 @@ import * as path from 'path'; import { loadSpecTests } from '../../spec'; import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; +import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; const UNIMPLEMENTED_APIS = [ 'listIndexNames', @@ -25,6 +26,9 @@ describe('Retryable Reads (unified)', function () { return `TODO(NODE-6832): fix flaky retryable reads tests`; } } + + if (isTLSEnabled) return 'TODO(NODE-XXXX): ...'; + return false; }); }); diff --git a/test/integration/retryable-writes/retryable_writes.spec.test.ts b/test/integration/retryable-writes/retryable_writes.spec.test.ts index 87e8c1edc96..8a4a0029b1f 100644 --- a/test/integration/retryable-writes/retryable_writes.spec.test.ts +++ b/test/integration/retryable-writes/retryable_writes.spec.test.ts @@ -2,7 +2,9 @@ import * as path from 'path'; import { loadSpecTests } from '../../spec'; import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; +import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; +const filter = () => (isTLSEnabled ? 'TODO(NODE-XXXX): ...' : false); describe('Retryable Writes (unified)', function () { - runUnifiedSuite(loadSpecTests(path.join('retryable-writes', 'unified'))); + runUnifiedSuite(loadSpecTests(path.join('retryable-writes', 'unified')), filter); }); diff --git a/test/tools/cmap_spec_runner.ts b/test/tools/cmap_spec_runner.ts index b29efcefd36..a09b5676c6f 100644 --- a/test/tools/cmap_spec_runner.ts +++ b/test/tools/cmap_spec_runner.ts @@ -5,6 +5,7 @@ import { clearTimeout, setTimeout } from 'timers'; import { inspect } from 'util'; import { + MongoClientOptions, type Connection, type ConnectionPoolOptions, type HostAddress, @@ -16,7 +17,7 @@ import { CMAP_EVENTS } from '../../src/constants'; import { TimeoutContext } from '../../src/timeout'; import { shuffle } from '../../src/utils'; import { isAnyRequirementSatisfied } from './unified-spec-runner/unified-utils'; -import { type FailCommandFailPoint, sleep } from './utils'; +import { type FailCommandFailPoint, getTLSOptions, sleep } from './utils'; type CmapOperation = | { name: 'start' | 'waitForThread'; target: string } @@ -509,7 +510,7 @@ export function runCmapTestSuite( const selectedHostUri = hosts[0]; hostAddress = serverDescriptionMap.get(selectedHostUri).hostAddress; - const clientOptions: { appName?: string } = {}; + const clientOptions: Pick = {}; if (test.poolOptions?.appName) { clientOptions.appName = test.poolOptions.appName; } @@ -520,6 +521,7 @@ export function runCmapTestSuite( clientOptions ); await client.connect(); + if (test.failPoint) { await client.db('admin').command(test.failPoint); } @@ -530,12 +532,18 @@ export function runCmapTestSuite( throw new Error('Failed to retrieve server for test'); } - threadContext = new ThreadContext( - server, - hostAddress, - this.configuration.isLoadBalanced ? { loadBalanced: true } : {}, - { injectPoolStats: !!options?.injectPoolStats } - ); + const poolOptions = { + ...(this.configuration.isLoadBalanced ? { loadBalanced: true } : {}), + ...getTLSOptions() + }; + + delete poolOptions.tls; + + console.error({ poolOptions }); + + threadContext = new ThreadContext(server, hostAddress, poolOptions, { + injectPoolStats: !!options?.injectPoolStats + }); } finally { await utilClient.close(); } @@ -554,9 +562,17 @@ export function runCmapTestSuite( await client.close(); }); - it(test.description, async function () { - await runCmapTest(test, threadContext); - }); + it( + test.description, + { + requires: { + tls: 'disabled' + } + }, + async function () { + await runCmapTest(test, threadContext); + } + ); }); } } diff --git a/test/tools/runner/config.ts b/test/tools/runner/config.ts index f7f087b2acf..85dd15d6c43 100644 --- a/test/tools/runner/config.ts +++ b/test/tools/runner/config.ts @@ -220,7 +220,7 @@ export class TestConfiguration { return uri.indexOf('MONGODB-OIDC') > -1 && uri.indexOf(`ENVIRONMENT:${env}`) > -1; } - newClient(urlOrQueryOptions?: string | Record, serverOptions?: MongoClientOptions) { + protected buildClientOptions(serverOptions?: MongoClientOptions): MongoClientOptions { const baseOptions: MongoClientOptions = this.compressor ? { compressors: this.compressor @@ -233,16 +233,18 @@ export class TestConfiguration { serverOptions = this.setupLogging(serverOptions); } + return serverOptions; + } + + newClient(urlOrQueryOptions?: string | Record, serverOptions?: MongoClientOptions) { + serverOptions = this.buildClientOptions(serverOptions); + // Support MongoClient constructor form (url, options) for `newClient`. if (typeof urlOrQueryOptions === 'string') { - if (Reflect.has(serverOptions, 'host') || Reflect.has(serverOptions, 'port')) { - throw new Error(`Cannot use options to specify host/port, must be in ${urlOrQueryOptions}`); - } - return new MongoClient(urlOrQueryOptions, serverOptions); } - const queryOptions = urlOrQueryOptions || {}; + const queryOptions = urlOrQueryOptions ?? {}; // Fall back. let dbHost = queryOptions.host || this.options.host; diff --git a/test/tools/runner/filters/tls_filter.ts b/test/tools/runner/filters/tls_filter.ts new file mode 100644 index 00000000000..96a0a0956d8 --- /dev/null +++ b/test/tools/runner/filters/tls_filter.ts @@ -0,0 +1,39 @@ +import { type MongoClient } from '../../../../src'; +import { Filter } from './filter'; + +export const isTLSEnabled = process.env.SSL === 'ssl'; + +/** + * Filter for the MongoDB API Version required for the test + * + * @example + * ```js + * metadata: { + * requires: { + * tls: 'enabled' | 'disabled' + * } + * } + * ``` + */ +export class TLSFilter extends Filter { + tls: 'enabled' | 'disabled'; + constructor() { + super(); + // Get environmental variables that are known + this.tls = isTLSEnabled ? 'enabled' : 'disabled'; + } + + override async initializeFilter( + _client: MongoClient, + context: Record + ): Promise { + context.tls = this.tls; + } + + filter(test: { metadata?: MongoDBMetadataUI }) { + const tls = test.metadata?.requires?.tls; + if (!tls) return true; + + return tls === this.tls; + } +} diff --git a/test/tools/runner/hooks/configuration.ts b/test/tools/runner/hooks/configuration.ts index 87cd1c2e1ea..87f7502825b 100644 --- a/test/tools/runner/hooks/configuration.ts +++ b/test/tools/runner/hooks/configuration.ts @@ -28,6 +28,7 @@ import { type Context } from 'mocha'; import { flakyTests } from '../flaky'; import { CryptSharedFilter } from '../filters/crypt_shared_filter'; import { LibmongocryptVersionFilter } from '../filters/libmongocrypt_version_filter'; +import { TLSFilter } from '../filters/tls_filter'; // Default our tests to have auth enabled // A better solution will be tackled in NODE-3714 @@ -68,7 +69,8 @@ async function initializeFilters(client): Promise> { new MongoDBTopologyFilter(), new MongoDBVersionFilter(), new NodeVersionFilter(), - new OSFilter() + new OSFilter(), + new TLSFilter() ] }; @@ -119,10 +121,9 @@ const testConfigBeforeHook = async function () { return; } - const client = new MongoClient( - loadBalanced ? SINGLE_MONGOS_LB_URI : MONGODB_URI, - getEnvironmentalOptions() - ); + const options = getEnvironmentalOptions(); + + const client = new MongoClient(loadBalanced ? SINGLE_MONGOS_LB_URI : MONGODB_URI, options); await client.db('test').command({ ping: 1 }); diff --git a/test/tools/utils.ts b/test/tools/utils.ts index b60040b2328..c2bd1f5d2cb 100644 --- a/test/tools/utils.ts +++ b/test/tools/utils.ts @@ -24,6 +24,7 @@ import { OP_MSG } from '../../src/cmap/wire_protocol/constants'; import { Topology } from '../../src/sdam/topology'; import { processTimeMS } from '../../src/utils'; import { type TestConfiguration } from './runner/config'; +import { isTLSEnabled } from './runner/filters/tls_filter'; export function ensureCalledWith(stub: any, args: any[]) { args.forEach((m: any) => expect(stub).to.have.been.calledWith(m)); @@ -111,14 +112,38 @@ export function getEncryptExtraOptions(): MongoClientOptions['autoEncryption'][' return {}; } -export function getEnvironmentalOptions() { +export function getTLSOptions() { + if (!isTLSEnabled) return {}; + + const requiredTLSEnv = ['TLS_KEY_FILE', 'TLS_CA_FILE', 'TLS_CRL_FILE']; + const missingVariables = requiredTLSEnv.filter(key => process.env[key] == null); + + if (missingVariables.length) + throw new Error( + `TLS requires the following additional environment variables: ${missingVariables.join(',')}` + ); + + const { TLS_KEY_FILE: tlsCertificateKeyFile, TLS_CA_FILE: tlsCAFile } = process.env; + + return { + tlsCertificateKeyFile, + tlsCAFile, + tls: true + }; +} + +export function getEnvironmentalOptions(): MongoClientOptions { const options = {}; if (process.env.MONGODB_API_VERSION) { Object.assign(options, { serverApi: { version: process.env.MONGODB_API_VERSION } }); } - return options; + + return { + ...options, + ...getTLSOptions() + }; } /** From 31b5e7829c2522cb6ba557282c8f3fbb9858eb64 Mon Sep 17 00:00:00 2001 From: bailey Date: Wed, 21 Jan 2026 10:33:00 -0700 Subject: [PATCH 2/9] lint --- test/integration/change-streams/change_stream.test.ts | 1 + test/integration/node-specific/resource_clean_up.test.ts | 4 ++-- test/integration/retryable-reads/retryable_reads.spec.test.ts | 2 +- .../retryable-writes/retryable_writes.spec.test.ts | 2 +- test/tools/cmap_spec_runner.ts | 2 +- test/tools/runner/filters/tls_filter.ts | 2 ++ 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/test/integration/change-streams/change_stream.test.ts b/test/integration/change-streams/change_stream.test.ts index 4c52a5e2630..fd98962c041 100644 --- a/test/integration/change-streams/change_stream.test.ts +++ b/test/integration/change-streams/change_stream.test.ts @@ -2,6 +2,7 @@ import { strict as assert } from 'assert'; import { Long, UUID } from 'bson'; import { expect } from 'chai'; import { on, once } from 'events'; +import * as process from 'process'; import { gte, lt } from 'semver'; import * as sinon from 'sinon'; import { PassThrough } from 'stream'; diff --git a/test/integration/node-specific/resource_clean_up.test.ts b/test/integration/node-specific/resource_clean_up.test.ts index bad77642809..db74ced8b09 100644 --- a/test/integration/node-specific/resource_clean_up.test.ts +++ b/test/integration/node-specific/resource_clean_up.test.ts @@ -2,9 +2,9 @@ import * as v8 from 'node:v8'; import { expect } from 'chai'; -import { getEnvironmentalOptions, sleep } from '../../tools/utils'; -import { runScriptAndReturnHeapInfo } from './resource_tracking_script_builder'; import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; +import { sleep } from '../../tools/utils'; +import { runScriptAndReturnHeapInfo } from './resource_tracking_script_builder'; /** * This 5MB range is selected arbitrarily and should likely be raised if failures are seen intermittently. diff --git a/test/integration/retryable-reads/retryable_reads.spec.test.ts b/test/integration/retryable-reads/retryable_reads.spec.test.ts index c2f25c5cb73..089853eb81d 100644 --- a/test/integration/retryable-reads/retryable_reads.spec.test.ts +++ b/test/integration/retryable-reads/retryable_reads.spec.test.ts @@ -1,8 +1,8 @@ import * as path from 'path'; import { loadSpecTests } from '../../spec'; -import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; +import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; const UNIMPLEMENTED_APIS = [ 'listIndexNames', diff --git a/test/integration/retryable-writes/retryable_writes.spec.test.ts b/test/integration/retryable-writes/retryable_writes.spec.test.ts index 8a4a0029b1f..3d636299355 100644 --- a/test/integration/retryable-writes/retryable_writes.spec.test.ts +++ b/test/integration/retryable-writes/retryable_writes.spec.test.ts @@ -1,8 +1,8 @@ import * as path from 'path'; import { loadSpecTests } from '../../spec'; -import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; +import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; const filter = () => (isTLSEnabled ? 'TODO(NODE-XXXX): ...' : false); describe('Retryable Writes (unified)', function () { diff --git a/test/tools/cmap_spec_runner.ts b/test/tools/cmap_spec_runner.ts index a09b5676c6f..d43a5deba86 100644 --- a/test/tools/cmap_spec_runner.ts +++ b/test/tools/cmap_spec_runner.ts @@ -5,11 +5,11 @@ import { clearTimeout, setTimeout } from 'timers'; import { inspect } from 'util'; import { - MongoClientOptions, type Connection, type ConnectionPoolOptions, type HostAddress, type MongoClient, + type MongoClientOptions, type Server } from '../../src'; import { ConnectionPool } from '../../src/cmap/connection_pool'; diff --git a/test/tools/runner/filters/tls_filter.ts b/test/tools/runner/filters/tls_filter.ts index 96a0a0956d8..aa51c88f7c1 100644 --- a/test/tools/runner/filters/tls_filter.ts +++ b/test/tools/runner/filters/tls_filter.ts @@ -1,3 +1,5 @@ +import * as process from 'process'; + import { type MongoClient } from '../../../../src'; import { Filter } from './filter'; From 377cfa52b7a6e579922823d3b24ed741cf1ea905 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 08:23:22 -0700 Subject: [PATCH 3/9] skip CS tests that use mock server --- .../change_streams.prose.test.ts | 370 +++++++++--------- 1 file changed, 195 insertions(+), 175 deletions(-) diff --git a/test/integration/change-streams/change_streams.prose.test.ts b/test/integration/change-streams/change_streams.prose.test.ts index 7a876c0d88e..e39a4e652f7 100644 --- a/test/integration/change-streams/change_streams.prose.test.ts +++ b/test/integration/change-streams/change_streams.prose.test.ts @@ -328,48 +328,52 @@ describe('Change Stream prose tests', function () { // Expected result: // getResumeToken must return the postBatchResumeToken from the current command response. describe('for emptied batch on server', function () { - it('must return the postBatchResumeToken from the current command response', function () { - const manager = new MockServerManager(this.configuration, { - aggregate: (function* () { - yield { numDocuments: 0, postBatchResumeToken: true, cursor: { firstBatch: [] } }; - })(), - getMore: (function* () { - yield { numDocuments: 1, postBatchResumeToken: true, cursor: { nextBatch: [{}] } }; - })() - }); + it( + 'must return the postBatchResumeToken from the current command response', + { requires: { tls: 'disabled' } }, + function () { + const manager = new MockServerManager(this.configuration, { + aggregate: (function* () { + yield { numDocuments: 0, postBatchResumeToken: true, cursor: { firstBatch: [] } }; + })(), + getMore: (function* () { + yield { numDocuments: 1, postBatchResumeToken: true, cursor: { nextBatch: [{}] } }; + })() + }); - return manager - .ready() - .then(() => { - return manager.makeChangeStream().next(); - }) - .then( - () => manager.teardown(), - err => manager.teardown(err) - ) - .then(() => { - const tokens = manager.resumeTokenChangedEvents.map(e => e.resumeToken); - const successes = manager.apm.succeeded.map(e => { - try { - // @ts-expect-error: e.reply is unknown - return e.reply.cursor; - } catch { - return {}; - } - }); + return manager + .ready() + .then(() => { + return manager.makeChangeStream().next(); + }) + .then( + () => manager.teardown(), + err => manager.teardown(err) + ) + .then(() => { + const tokens = manager.resumeTokenChangedEvents.map(e => e.resumeToken); + const successes = manager.apm.succeeded.map(e => { + try { + // @ts-expect-error: e.reply is unknown + return e.reply.cursor; + } catch { + return {}; + } + }); - expect(successes).to.have.a.lengthOf(2); - expect(successes[0]).to.have.a.property('postBatchResumeToken'); - expect(successes[1]).to.have.a.property('postBatchResumeToken'); - expect(successes[1]).to.have.a.nested.property('nextBatch[0]._id'); + expect(successes).to.have.a.lengthOf(2); + expect(successes[0]).to.have.a.property('postBatchResumeToken'); + expect(successes[1]).to.have.a.property('postBatchResumeToken'); + expect(successes[1]).to.have.a.nested.property('nextBatch[0]._id'); - expect(tokens).to.have.a.lengthOf(2); - expect(tokens[0]).to.deep.equal(successes[0].postBatchResumeToken); - expect(tokens[1]) - .to.deep.equal(successes[1].postBatchResumeToken) - .and.to.not.deep.equal(successes[1].nextBatch[0]._id); - }); - }); + expect(tokens).to.have.a.lengthOf(2); + expect(tokens[0]).to.deep.equal(successes[0].postBatchResumeToken); + expect(tokens[1]) + .to.deep.equal(successes[1].postBatchResumeToken) + .and.to.not.deep.equal(successes[1].nextBatch[0]._id); + }); + } + ); }); // 13. For a ChangeStream under these conditions: @@ -378,46 +382,50 @@ describe('Change Stream prose tests', function () { // Expected result: // getResumeToken must return the _id of the previous document returned. describe('for non-empty batch iterated up to but not including the last element', function () { - it('must return the _id of the previous document returned', function () { - const manager = new MockServerManager(this.configuration, { - aggregate: (function* () { - yield { numDocuments: 2, postBatchResumeToken: true }; - })(), - getMore: (function* () { - // fake getMore - })() - }); + it( + 'must return the _id of the previous document returned', + { requires: { tls: 'disabled' } }, + function () { + const manager = new MockServerManager(this.configuration, { + aggregate: (function* () { + yield { numDocuments: 2, postBatchResumeToken: true }; + })(), + getMore: (function* () { + // fake getMore + })() + }); - return manager - .ready() - .then(() => { - return manager.makeChangeStream().next(); - }) - .then( - () => manager.teardown(), - err => manager.teardown(err) - ) - .then(() => { - const tokens = manager.resumeTokenChangedEvents.map(e => e.resumeToken); - const successes = manager.apm.succeeded.map(e => { - try { - // @ts-expect-error: e.reply is unknown - return e.reply.cursor; - } catch { - return {}; - } - }); + return manager + .ready() + .then(() => { + return manager.makeChangeStream().next(); + }) + .then( + () => manager.teardown(), + err => manager.teardown(err) + ) + .then(() => { + const tokens = manager.resumeTokenChangedEvents.map(e => e.resumeToken); + const successes = manager.apm.succeeded.map(e => { + try { + // @ts-expect-error: e.reply is unknown + return e.reply.cursor; + } catch { + return {}; + } + }); - expect(successes).to.have.a.lengthOf(1); - expect(successes[0]).to.have.a.nested.property('firstBatch[0]._id'); - expect(successes[0]).to.have.a.property('postBatchResumeToken'); + expect(successes).to.have.a.lengthOf(1); + expect(successes[0]).to.have.a.nested.property('firstBatch[0]._id'); + expect(successes[0]).to.have.a.property('postBatchResumeToken'); - expect(tokens).to.have.a.lengthOf(1); - expect(tokens[0]) - .to.deep.equal(successes[0].firstBatch[0]._id) - .and.to.not.deep.equal(successes[0].postBatchResumeToken); - }); - }); + expect(tokens).to.have.a.lengthOf(1); + expect(tokens[0]) + .to.deep.equal(successes[0].firstBatch[0]._id) + .and.to.not.deep.equal(successes[0].postBatchResumeToken); + }); + } + ); }); // 14. For a ChangeStream under these conditions: @@ -429,113 +437,125 @@ describe('Change Stream prose tests', function () { // getResumeToken must return resumeAfter from the initial aggregate if the option was specified. // If neither the startAfter nor resumeAfter options were specified, the getResumeToken result must be empty. describe('for non-empty non-iterated batch where only the initial aggregate command has been executed', function () { - it('must return startAfter from the initial aggregate if the option was specified', function () { - const manager = new MockServerManager(this.configuration, { - aggregate: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })(), - getMore: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })() - }); - let token; - const startAfter = manager.resumeToken(); - const resumeAfter = manager.resumeToken(); - - return manager - .ready() - .then(() => { - return new Promise(resolve => { - const changeStream = manager.makeChangeStream({ startAfter, resumeAfter }); - changeStream.cursor.once('response', () => { - token = changeStream.resumeToken; - resolve(); - }); - - changeStream.next().catch(() => { - // Note: this is expected to fail + it( + 'must return startAfter from the initial aggregate if the option was specified', + { requires: { tls: 'disabled' } }, + function () { + const manager = new MockServerManager(this.configuration, { + aggregate: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })(), + getMore: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })() + }); + let token; + const startAfter = manager.resumeToken(); + const resumeAfter = manager.resumeToken(); + + return manager + .ready() + .then(() => { + return new Promise(resolve => { + const changeStream = manager.makeChangeStream({ startAfter, resumeAfter }); + changeStream.cursor.once('response', () => { + token = changeStream.resumeToken; + resolve(); + }); + + changeStream.next().catch(() => { + // Note: this is expected to fail + }); }); + }) + .then( + () => manager.teardown(), + err => manager.teardown(err) + ) + .then(() => { + expect(token).to.deep.equal(startAfter).and.to.not.deep.equal(resumeAfter); }); - }) - .then( - () => manager.teardown(), - err => manager.teardown(err) - ) - .then(() => { - expect(token).to.deep.equal(startAfter).and.to.not.deep.equal(resumeAfter); + } + ); + + it( + 'must return resumeAfter from the initial aggregate if the option was specified', + { requires: { tls: 'disabled' } }, + function () { + const manager = new MockServerManager(this.configuration, { + aggregate: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })(), + getMore: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })() }); - }); - - it('must return resumeAfter from the initial aggregate if the option was specified', function () { - const manager = new MockServerManager(this.configuration, { - aggregate: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })(), - getMore: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })() - }); - let token; - const resumeAfter = manager.resumeToken(); - - return manager - .ready() - .then(() => { - return new Promise(resolve => { - const changeStream = manager.makeChangeStream({ resumeAfter }); - changeStream.cursor.once('response', () => { - token = changeStream.resumeToken; - resolve(); - }); - - changeStream.next().catch(() => { - // Note: this is expected to fail + let token; + const resumeAfter = manager.resumeToken(); + + return manager + .ready() + .then(() => { + return new Promise(resolve => { + const changeStream = manager.makeChangeStream({ resumeAfter }); + changeStream.cursor.once('response', () => { + token = changeStream.resumeToken; + resolve(); + }); + + changeStream.next().catch(() => { + // Note: this is expected to fail + }); }); + }) + .then( + () => manager.teardown(), + err => manager.teardown(err) + ) + .then(() => { + expect(token).to.deep.equal(resumeAfter); }); - }) - .then( - () => manager.teardown(), - err => manager.teardown(err) - ) - .then(() => { - expect(token).to.deep.equal(resumeAfter); + } + ); + + it( + 'must be empty if neither the startAfter nor resumeAfter options were specified', + { requires: { tls: 'disabled' } }, + function () { + const manager = new MockServerManager(this.configuration, { + aggregate: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })(), + getMore: (function* () { + yield { numDocuments: 0, postBatchResumeToken: false }; + })() }); - }); - - it('must be empty if neither the startAfter nor resumeAfter options were specified', function () { - const manager = new MockServerManager(this.configuration, { - aggregate: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })(), - getMore: (function* () { - yield { numDocuments: 0, postBatchResumeToken: false }; - })() - }); - let token; - - return manager - .ready() - .then(() => { - return new Promise(resolve => { - const changeStream = manager.makeChangeStream(); - changeStream.cursor.once('response', () => { - token = changeStream.resumeToken; - resolve(); - }); - - changeStream.next().catch(() => { - // Note: this is expected to fail + let token; + + return manager + .ready() + .then(() => { + return new Promise(resolve => { + const changeStream = manager.makeChangeStream(); + changeStream.cursor.once('response', () => { + token = changeStream.resumeToken; + resolve(); + }); + + changeStream.next().catch(() => { + // Note: this is expected to fail + }); }); + }) + .then( + () => manager.teardown(), + err => manager.teardown(err) + ) + .then(() => { + expect(token).to.not.exist; }); - }) - .then( - () => manager.teardown(), - err => manager.teardown(err) - ) - .then(() => { - expect(token).to.not.exist; - }); - }); + } + ); }); }); From e995bec4d1c9c3a450422fa26773f9160b435196 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 09:54:38 -0700 Subject: [PATCH 4/9] lint yml --- .evergreen/config.yml | 1269 ++++++++++++++++++++--------------------- 1 file changed, 633 insertions(+), 636 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 468b1d4e4a1..399010513e3 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -646,7 +646,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: assume secrets manager role - func: install dependencies - command: subprocess.exec @@ -662,10 +662,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - command: subprocess.exec @@ -683,7 +683,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: assume secrets manager role - command: subprocess.exec @@ -699,10 +699,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - command: subprocess.exec @@ -849,7 +849,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - command: ec2.assume_role params: @@ -872,7 +872,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: '20' } + - {key: NODE_LTS_VERSION, value: '20'} - func: install dependencies - command: subprocess.exec type: test @@ -891,10 +891,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -907,10 +907,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -923,10 +923,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -939,10 +939,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -955,10 +955,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -971,10 +971,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -987,10 +987,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1003,10 +1003,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1019,10 +1019,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1035,10 +1035,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1051,10 +1051,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1067,10 +1067,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1083,10 +1083,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1099,10 +1099,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1115,10 +1115,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1131,10 +1131,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1147,10 +1147,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1163,10 +1163,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1179,10 +1179,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1195,10 +1195,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1211,10 +1211,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1227,10 +1227,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: server } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: server} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1243,10 +1243,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: replica_set } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: replica_set} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1259,10 +1259,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: SSL, value: nossl } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: SSL, value: nossl} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1276,13 +1276,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: REQUIRE_API_VERSION, value: '1' } - - { key: MONGODB_API_VERSION, value: '1' } - - { key: AUTH, value: auth } - - { key: TEST_CSFLE, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'true' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: REQUIRE_API_VERSION, value: '1'} + - {key: MONGODB_API_VERSION, value: '1'} + - {key: AUTH, value: auth} + - {key: TEST_CSFLE, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -1311,12 +1311,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1332,12 +1332,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1353,12 +1353,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1374,12 +1374,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1395,12 +1395,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1416,12 +1416,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: LOAD_BALANCER, value: 'true' } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: start-load-balancer @@ -1436,7 +1436,7 @@ tasks: type: setup params: updates: - - { key: NATIVE, value: 'true' } + - {key: NATIVE, value: 'true'} - func: install dependencies - func: assume secrets manager role - func: run kerberos tests @@ -1456,8 +1456,8 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1469,9 +1469,9 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: TEST_SOCKS5_CSFLE, value: 'true' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: TEST_SOCKS5_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1483,9 +1483,9 @@ tasks: type: setup params: updates: - - { key: SSL, value: ssl } - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } + - {key: SSL, value: ssl} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} - func: install dependencies - func: bootstrap mongo-orchestration - func: run socks5 tests @@ -1498,12 +1498,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: COMPRESSOR, value: snappy } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: COMPRESSOR, value: snappy} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run-compression-tests @@ -1516,12 +1516,12 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: COMPRESSOR, value: zstd } - - { key: CLIENT_ENCRYPTION, value: 'false' } - - { key: TEST_CSFLE, value: 'false' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: COMPRESSOR, value: zstd} + - {key: CLIENT_ENCRYPTION, value: 'false'} + - {key: TEST_CSFLE, value: 'false'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run-compression-tests @@ -1534,10 +1534,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: latest} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1550,10 +1550,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '8.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1566,10 +1566,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '7.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1582,10 +1582,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '6.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1598,10 +1598,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '5.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1614,10 +1614,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.4'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1630,10 +1630,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: SSL, value: ssl } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } + - {key: VERSION, value: '4.2'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tls tests @@ -1643,11 +1643,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1658,11 +1658,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1673,11 +1673,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1688,11 +1688,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1703,11 +1703,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1718,11 +1718,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1733,11 +1733,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1748,11 +1748,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: VERSION, value: latest} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -1767,11 +1767,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: v22.11.0 } - - { key: VERSION, value: v6.0-perf } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: MONGODB_CLIENT_OPTIONS, value: '{}' } + - {key: NODE_LTS_VERSION, value: v22.11.0} + - {key: VERSION, value: v6.0-perf} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: MONGODB_CLIENT_OPTIONS, value: '{}'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1786,11 +1786,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: v22.11.0 } - - { key: VERSION, value: v6.0-perf } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":120000}' } + - {key: NODE_LTS_VERSION, value: v22.11.0} + - {key: VERSION, value: v6.0-perf} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":120000}'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1805,11 +1805,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: v22.11.0 } - - { key: VERSION, value: v6.0-perf } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":0}' } + - {key: NODE_LTS_VERSION, value: v22.11.0} + - {key: VERSION, value: v6.0-perf} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: MONGODB_CLIENT_OPTIONS, value: '{"timeoutMS":0}'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1824,11 +1824,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: v22.11.0 } - - { key: VERSION, value: v6.0-perf } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: MONGODB_CLIENT_OPTIONS, value: '{"monitorCommands":true}' } + - {key: NODE_LTS_VERSION, value: v22.11.0} + - {key: VERSION, value: v6.0-perf} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: MONGODB_CLIENT_OPTIONS, value: '{"monitorCommands":true}'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1843,14 +1843,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: v22.11.0 } - - { key: VERSION, value: v6.0-perf } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { - key: MONGODB_CLIENT_OPTIONS, - value: '{"mongodbLogPath":"stderr","mongodbLogComponentSeverities":{"default":"trace"}}' - } + - {key: NODE_LTS_VERSION, value: v22.11.0} + - {key: VERSION, value: v6.0-perf} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: MONGODB_CLIENT_OPTIONS, value: '{"mongodbLogPath":"stderr","mongodbLogComponentSeverities":{"default":"trace"}}'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run spec driver benchmarks @@ -1863,7 +1860,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: run unit tests - name: run-unit-tests-node-22 @@ -1874,7 +1871,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: '22' } + - {key: NODE_LTS_VERSION, value: '22'} - func: install dependencies - func: run unit tests - name: run-unit-tests-node-24 @@ -1885,7 +1882,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: '24' } + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: run unit tests - name: run-lint-checks @@ -1896,7 +1893,7 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: '24' } + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: run lint checks - name: test-explicit-resource-management-feature-integration @@ -1907,9 +1904,9 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: check resource management feature integration @@ -1922,8 +1919,8 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: TS_VERSION, value: current } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: TS_VERSION, value: current} - func: install dependencies - func: check types - name: check-types-typescript-5.6 @@ -1935,8 +1932,8 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: TS_VERSION, value: '5.6' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: TS_VERSION, value: '5.6'} - func: install dependencies - func: check types - name: compile-driver-typescript-current @@ -1948,8 +1945,8 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: TS_VERSION, value: current } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: TS_VERSION, value: current} - func: install dependencies - func: compile driver - name: download-and-merge-coverage @@ -1969,10 +1966,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: CLIENT_ENCRYPTION, value: 'true' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: CLIENT_ENCRYPTION, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -1986,10 +1983,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: replica_set } - - { key: CLIENT_ENCRYPTION, value: 'true' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: CLIENT_ENCRYPTION, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -2003,10 +2000,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: CLIENT_ENCRYPTION, value: 'true' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: CLIENT_ENCRYPTION, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: install mongodb-client-encryption from source @@ -2020,10 +2017,10 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: CLIENT_ENCRYPTION, value: 'true' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: CLIENT_ENCRYPTION, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: install package @@ -2038,12 +2035,12 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } - - { key: MONGODB_BINARIES, value: '${PROJECT_DIRECTORY}/mongodb/bin' } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} + - {key: MONGODB_BINARIES, value: '${PROJECT_DIRECTORY}/mongodb/bin'} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -2058,11 +2055,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2076,11 +2073,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2094,11 +2091,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2112,11 +2109,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2130,11 +2127,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2148,11 +2145,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2166,11 +2163,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2184,11 +2181,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2202,11 +2199,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2220,11 +2217,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2238,11 +2235,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2256,11 +2253,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2274,11 +2271,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2292,11 +2289,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2310,11 +2307,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2328,11 +2325,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2346,11 +2343,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2364,11 +2361,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2382,11 +2379,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2400,11 +2397,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2418,11 +2415,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2436,11 +2433,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2454,11 +2451,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2472,11 +2469,11 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: noauth } - - { key: SSL, value: nossl } - - { key: NODE_LTS_VERSION, value: 20.19.0 } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} + - {key: SSL, value: nossl} + - {key: NODE_LTS_VERSION, value: 20.19.0} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2489,9 +2486,9 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: server } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: run lambda handler example tests @@ -2504,11 +2501,11 @@ tasks: type: setup params: updates: - - { key: NODE_LTS_VERSION, value: 20.19.0 } - - { key: VERSION, value: rapid } - - { key: AUTH, value: auth } - - { key: ORCHESTRATION_FILE, value: auth-aws.json } - - { key: TOPOLOGY, value: server } + - {key: NODE_LTS_VERSION, value: 20.19.0} + - {key: VERSION, value: rapid} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - func: assume secrets manager role @@ -2522,10 +2519,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2538,10 +2535,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2554,10 +2551,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2570,10 +2567,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2586,10 +2583,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2602,10 +2599,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2618,10 +2615,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2634,10 +2631,10 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: NODE_LTS_VERSION, value: '24' } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: NODE_LTS_VERSION, value: '24'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2651,13 +2648,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2671,13 +2668,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2691,13 +2688,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: latest } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2711,13 +2708,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2731,13 +2728,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2751,13 +2748,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: rapid } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2771,13 +2768,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2791,13 +2788,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2811,13 +2808,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '8.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '8.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2831,13 +2828,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2851,13 +2848,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2871,13 +2868,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '7.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2891,13 +2888,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2911,13 +2908,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2931,13 +2928,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '6.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2951,13 +2948,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2971,13 +2968,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -2991,13 +2988,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '5.0' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3011,13 +3008,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3031,13 +3028,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3051,13 +3048,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.4' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3071,13 +3068,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: server } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3091,13 +3088,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: replica_set } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3111,13 +3108,13 @@ tasks: type: setup params: updates: - - { key: VERSION, value: '4.2' } - - { key: TOPOLOGY, value: sharded_cluster } - - { key: AUTH, value: auth } - - { key: SSL, value: ssl } - - { key: NODE_LTS_VERSION, value: '24' } - - { key: CLIENT_ENCRYPTION, value: 'true' } - - { key: TEST_CSFLE, value: 'true' } + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: SSL, value: ssl} + - {key: NODE_LTS_VERSION, value: '24'} + - {key: CLIENT_ENCRYPTION, value: 'true'} + - {key: TEST_CSFLE, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - func: run tests @@ -3312,9 +3309,9 @@ task_groups: type: setup params: updates: - - { key: MONGODB_VERSION, value: '7.0' } - - { key: LAMBDA_STACK_NAME, value: dbx-node-lambda } - - { key: CLUSTER_PREFIX, value: dbx-node-lambda } + - {key: MONGODB_VERSION, value: '7.0'} + - {key: LAMBDA_STACK_NAME, value: dbx-node-lambda} + - {key: CLUSTER_PREFIX, value: dbx-node-lambda} - func: assume secrets manager role - command: subprocess.exec params: @@ -3346,8 +3343,8 @@ task_groups: type: setup params: updates: - - { key: MONGODB_VERSION, value: '7.0' } - - { key: CLUSTER_PREFIX, value: dbx-node-lambda } + - {key: MONGODB_VERSION, value: '7.0'} + - {key: CLUSTER_PREFIX, value: dbx-node-lambda} - func: assume secrets manager role - command: subprocess.exec params: From c20c34d6a809af88f2a0c9368828f9a3ea89baf8 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 10:10:42 -0700 Subject: [PATCH 5/9] lint + add skip reasons --- global.d.ts | 2 +- test/integration/change-streams/change_stream.test.ts | 2 +- .../connection_monitoring_and_pooling.spec.test.ts | 2 +- .../retryable-reads/retryable_reads.spec.test.ts | 2 +- .../retryable-writes/retryable_writes.spec.test.ts | 3 ++- test/tools/cmap_spec_runner.ts | 10 ++-------- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/global.d.ts b/global.d.ts index 271b2a1de71..968e5b03c0a 100644 --- a/global.d.ts +++ b/global.d.ts @@ -120,7 +120,7 @@ declare global { * beforeEach(() => { * if ('some condition') { * this.currentTest.skipReason = 'requires to run'; - * this; + * this.skip(); * } * }); * ``` diff --git a/test/integration/change-streams/change_stream.test.ts b/test/integration/change-streams/change_stream.test.ts index fd98962c041..90f546ca76c 100644 --- a/test/integration/change-streams/change_stream.test.ts +++ b/test/integration/change-streams/change_stream.test.ts @@ -1273,7 +1273,7 @@ describe('Change Streams', function () { 'changeStream should close if cursor id for initial aggregate is Long.ZERO', { requires: { - predicate: () => (process.env.SSL === 'ssl' ? 'test requries no TLS' : true) + tls: 'disabled' } }, async function () { diff --git a/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts b/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts index 3b7cdfeae97..6af50b48695 100644 --- a/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts +++ b/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts @@ -39,7 +39,7 @@ const INTERRUPT_IN_USE_SKIPPED_TESTS: SkipDescription[] = [ } ]; -describe('Connection Monitoring and Pooling Spec Tests (Integration) - cmap-format', function () { +describe.only('Connection Monitoring and Pooling Spec Tests (Integration) - cmap-format', function () { const tests: CmapTest[] = loadSpecTests('connection-monitoring-and-pooling', 'cmap-format'); runCmapTestSuite(tests, { diff --git a/test/integration/retryable-reads/retryable_reads.spec.test.ts b/test/integration/retryable-reads/retryable_reads.spec.test.ts index 089853eb81d..70c503ea833 100644 --- a/test/integration/retryable-reads/retryable_reads.spec.test.ts +++ b/test/integration/retryable-reads/retryable_reads.spec.test.ts @@ -27,7 +27,7 @@ describe('Retryable Reads (unified)', function () { } } - if (isTLSEnabled) return 'TODO(NODE-XXXX): ...'; + if (isTLSEnabled) return 'TODO(NODE-7408): fix these tests when TLS is enabled'; return false; }); diff --git a/test/integration/retryable-writes/retryable_writes.spec.test.ts b/test/integration/retryable-writes/retryable_writes.spec.test.ts index 3d636299355..c050f5b8c14 100644 --- a/test/integration/retryable-writes/retryable_writes.spec.test.ts +++ b/test/integration/retryable-writes/retryable_writes.spec.test.ts @@ -4,7 +4,8 @@ import { loadSpecTests } from '../../spec'; import { isTLSEnabled } from '../../tools/runner/filters/tls_filter'; import { runUnifiedSuite } from '../../tools/unified-spec-runner/runner'; -const filter = () => (isTLSEnabled ? 'TODO(NODE-XXXX): ...' : false); +const filter = () => + isTLSEnabled ? 'TODO(NODE-7408): fix these tests when TLS is enabled' : false; describe('Retryable Writes (unified)', function () { runUnifiedSuite(loadSpecTests(path.join('retryable-writes', 'unified')), filter); }); diff --git a/test/tools/cmap_spec_runner.ts b/test/tools/cmap_spec_runner.ts index d43a5deba86..4325cd6504a 100644 --- a/test/tools/cmap_spec_runner.ts +++ b/test/tools/cmap_spec_runner.ts @@ -532,14 +532,7 @@ export function runCmapTestSuite( throw new Error('Failed to retrieve server for test'); } - const poolOptions = { - ...(this.configuration.isLoadBalanced ? { loadBalanced: true } : {}), - ...getTLSOptions() - }; - - delete poolOptions.tls; - - console.error({ poolOptions }); + const poolOptions = this.configuration.isLoadBalanced ? { loadBalanced: true } : {}; threadContext = new ThreadContext(server, hostAddress, poolOptions, { injectPoolStats: !!options?.injectPoolStats @@ -566,6 +559,7 @@ export function runCmapTestSuite( test.description, { requires: { + // TODO(NODE-7408): fix these tests when TLS is enabled tls: 'disabled' } }, From 4b68c16fe954630f64dc4eea7057582c76f1cebb Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 10:19:50 -0700 Subject: [PATCH 6/9] clean up utilities --- .../change-streams/change_stream.test.ts | 1 - ...ection_monitoring_and_pooling.spec.test.ts | 2 +- test/tools/cmap_spec_runner.ts | 2 +- test/tools/runner/config.ts | 12 ++++----- test/tools/utils.ts | 25 +++++++++++++------ 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/test/integration/change-streams/change_stream.test.ts b/test/integration/change-streams/change_stream.test.ts index 90f546ca76c..c3011a4168c 100644 --- a/test/integration/change-streams/change_stream.test.ts +++ b/test/integration/change-streams/change_stream.test.ts @@ -2,7 +2,6 @@ import { strict as assert } from 'assert'; import { Long, UUID } from 'bson'; import { expect } from 'chai'; import { on, once } from 'events'; -import * as process from 'process'; import { gte, lt } from 'semver'; import * as sinon from 'sinon'; import { PassThrough } from 'stream'; diff --git a/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts b/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts index 6af50b48695..3b7cdfeae97 100644 --- a/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts +++ b/test/integration/connection-monitoring-and-pooling/connection_monitoring_and_pooling.spec.test.ts @@ -39,7 +39,7 @@ const INTERRUPT_IN_USE_SKIPPED_TESTS: SkipDescription[] = [ } ]; -describe.only('Connection Monitoring and Pooling Spec Tests (Integration) - cmap-format', function () { +describe('Connection Monitoring and Pooling Spec Tests (Integration) - cmap-format', function () { const tests: CmapTest[] = loadSpecTests('connection-monitoring-and-pooling', 'cmap-format'); runCmapTestSuite(tests, { diff --git a/test/tools/cmap_spec_runner.ts b/test/tools/cmap_spec_runner.ts index 4325cd6504a..38759f582ed 100644 --- a/test/tools/cmap_spec_runner.ts +++ b/test/tools/cmap_spec_runner.ts @@ -17,7 +17,7 @@ import { CMAP_EVENTS } from '../../src/constants'; import { TimeoutContext } from '../../src/timeout'; import { shuffle } from '../../src/utils'; import { isAnyRequirementSatisfied } from './unified-spec-runner/unified-utils'; -import { type FailCommandFailPoint, getTLSOptions, sleep } from './utils'; +import { type FailCommandFailPoint, sleep } from './utils'; type CmapOperation = | { name: 'start' | 'waitForThread'; target: string } diff --git a/test/tools/runner/config.ts b/test/tools/runner/config.ts index 85dd15d6c43..adcb31674a6 100644 --- a/test/tools/runner/config.ts +++ b/test/tools/runner/config.ts @@ -220,7 +220,7 @@ export class TestConfiguration { return uri.indexOf('MONGODB-OIDC') > -1 && uri.indexOf(`ENVIRONMENT:${env}`) > -1; } - protected buildClientOptions(serverOptions?: MongoClientOptions): MongoClientOptions { + newClient(urlOrQueryOptions?: string | Record, serverOptions?: MongoClientOptions) { const baseOptions: MongoClientOptions = this.compressor ? { compressors: this.compressor @@ -233,14 +233,12 @@ export class TestConfiguration { serverOptions = this.setupLogging(serverOptions); } - return serverOptions; - } - - newClient(urlOrQueryOptions?: string | Record, serverOptions?: MongoClientOptions) { - serverOptions = this.buildClientOptions(serverOptions); - // Support MongoClient constructor form (url, options) for `newClient`. if (typeof urlOrQueryOptions === 'string') { + if ('host' in serverOptions || 'port' in serverOptions) { + throw new Error(`Cannot use options to specify host/port, must be in ${urlOrQueryOptions}`); + } + return new MongoClient(urlOrQueryOptions, serverOptions); } diff --git a/test/tools/utils.ts b/test/tools/utils.ts index c2bd1f5d2cb..d2dd8d0e167 100644 --- a/test/tools/utils.ts +++ b/test/tools/utils.ts @@ -18,6 +18,7 @@ import { type HostAddress, MongoClient, type MongoClientOptions, + ServerApiVersion, type TopologyOptions } from '../../src'; import { OP_MSG } from '../../src/cmap/wire_protocol/constants'; @@ -112,7 +113,10 @@ export function getEncryptExtraOptions(): MongoClientOptions['autoEncryption'][' return {}; } -export function getTLSOptions() { +export function getTLSOptions(): Pick< + MongoClientOptions, + 'tls' | 'tlsCertificateKeyFile' | 'tlsCAFile' | 'tlsCRLFile' +> { if (!isTLSEnabled) return {}; const requiredTLSEnv = ['TLS_KEY_FILE', 'TLS_CA_FILE', 'TLS_CRL_FILE']; @@ -123,21 +127,28 @@ export function getTLSOptions() { `TLS requires the following additional environment variables: ${missingVariables.join(',')}` ); - const { TLS_KEY_FILE: tlsCertificateKeyFile, TLS_CA_FILE: tlsCAFile } = process.env; + const { + TLS_KEY_FILE: tlsCertificateKeyFile, + TLS_CA_FILE: tlsCAFile, + TLS_CRL_FILE: tlsCRLFile + } = process.env; return { tlsCertificateKeyFile, tlsCAFile, + tlsCRLFile, tls: true }; } -export function getEnvironmentalOptions(): MongoClientOptions { - const options = {}; +export function getEnvironmentalOptions(): Pick< + MongoClientOptions, + 'tls' | 'tlsCertificateKeyFile' | 'tlsCAFile' | 'tlsCRLFile' | 'serverApi' +> { + const options: ReturnType = {}; + if (process.env.MONGODB_API_VERSION) { - Object.assign(options, { - serverApi: { version: process.env.MONGODB_API_VERSION } - }); + options.serverApi = { version: process.env.MONGODB_API_VERSION as ServerApiVersion }; } return { From e77b065ae85cdb9388696ab3631136a51ef6eec1 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 10:32:48 -0700 Subject: [PATCH 7/9] cleanups? --- .evergreen/run-tests.sh | 1 - test/tools/utils.ts | 17 +++++------------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index bdac4bbd55c..667f5cfc462 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -28,7 +28,6 @@ SSL=${SSL:-nossl} if [ "$SSL" != "nossl" ]; then export TLS_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem" export TLS_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem" - export TLS_CRL_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/crl.pem" fi # run tests diff --git a/test/tools/utils.ts b/test/tools/utils.ts index d2dd8d0e167..f454407c645 100644 --- a/test/tools/utils.ts +++ b/test/tools/utils.ts @@ -115,11 +115,11 @@ export function getEncryptExtraOptions(): MongoClientOptions['autoEncryption'][' export function getTLSOptions(): Pick< MongoClientOptions, - 'tls' | 'tlsCertificateKeyFile' | 'tlsCAFile' | 'tlsCRLFile' + 'tls' | 'tlsCertificateKeyFile' | 'tlsCAFile' > { if (!isTLSEnabled) return {}; - const requiredTLSEnv = ['TLS_KEY_FILE', 'TLS_CA_FILE', 'TLS_CRL_FILE']; + const requiredTLSEnv = ['TLS_KEY_FILE', 'TLS_CA_FILE']; const missingVariables = requiredTLSEnv.filter(key => process.env[key] == null); if (missingVariables.length) @@ -127,24 +127,17 @@ export function getTLSOptions(): Pick< `TLS requires the following additional environment variables: ${missingVariables.join(',')}` ); - const { - TLS_KEY_FILE: tlsCertificateKeyFile, - TLS_CA_FILE: tlsCAFile, - TLS_CRL_FILE: tlsCRLFile - } = process.env; + const { TLS_KEY_FILE: tlsCertificateKeyFile, TLS_CA_FILE: tlsCAFile } = process.env; return { tlsCertificateKeyFile, tlsCAFile, - tlsCRLFile, tls: true }; } -export function getEnvironmentalOptions(): Pick< - MongoClientOptions, - 'tls' | 'tlsCertificateKeyFile' | 'tlsCAFile' | 'tlsCRLFile' | 'serverApi' -> { +export function getEnvironmentalOptions(): ReturnType & + Pick { const options: ReturnType = {}; if (process.env.MONGODB_API_VERSION) { From c3ba4e92f8db288d151ac5c5d2d4bb78f6a77368 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 10:53:27 -0700 Subject: [PATCH 8/9] lint --- test/tools/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tools/utils.ts b/test/tools/utils.ts index f454407c645..5a23fdd9706 100644 --- a/test/tools/utils.ts +++ b/test/tools/utils.ts @@ -18,7 +18,7 @@ import { type HostAddress, MongoClient, type MongoClientOptions, - ServerApiVersion, + type ServerApiVersion, type TopologyOptions } from '../../src'; import { OP_MSG } from '../../src/cmap/wire_protocol/constants'; From 3be83fb8ebd3c28af1b77611c5238ce9b5f64f46 Mon Sep 17 00:00:00 2001 From: bailey Date: Thu, 22 Jan 2026 11:35:56 -0700 Subject: [PATCH 9/9] document --- test/readme.md | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/readme.md b/test/readme.md index f9c38ac636d..8dcc19fff99 100644 --- a/test/readme.md +++ b/test/readme.md @@ -679,10 +679,37 @@ needs to be tested. 3. For additional Node.js options (like HTTP debug), add them to `K8S_TEST_CMD` in `.evergreen/run-oidc-tests-k8s.sh` 4. Create an evergreen patch and schedule only the `oidc-auth-test-k8s-latest-aks` variant. +### Running tests with TLS + +We tests TLS in two suites in CI: + +- For each node version and platform, we run a small test suite that confirms TLS works. +- We run the full test suite on Linux, on latest Nodejs and on all topologies, to confirm that our full test suite works with TLS enabled. + +Setting up a local environment is the same for both suites. + +First, configure a server with TLS enabled by following the steps in [Runing the Tests Locally](#Running-the-Tests-Locally) with the environment +variable `SSL=SSL` set. + +Then, in addition to setting the `MONGODB_URI` environment varialbe, set the following environment variables: + +```bash +export SSL='ssl' # enable TLS + +# TLS certificates +export TLS_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem" +export TLS_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem" +export TLS_CRL_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/crl.pem" +``` + +Then run the TLS tests: + +- If running the integration test suite, run `npm run check:test` +- If running the manual TLS tests, run `npm run check:tls` + ### TODO Special Env Sections -- TLS - LDAP - Snappy (maybe in general, how to test optional dependencies) - Atlas connectivity