diff --git a/.evergreen/scripts/kms_tester.py b/.evergreen/scripts/kms_tester.py index 41c59322be..1c2a39ad39 100644 --- a/.evergreen/scripts/kms_tester.py +++ b/.evergreen/scripts/kms_tester.py @@ -93,6 +93,8 @@ def setup_kms(sub_test_name: str) -> None: return if sub_test_target == "azure": + # Opt in to corporate Azure credentials (DRIVERS-3392) + os.environ["FLE_AZURE_USE_CORPORATE"] = "YES" run_command("./setup-secrets.sh", cwd=kms_dir) if success: diff --git a/.evergreen/scripts/setup_tests.py b/.evergreen/scripts/setup_tests.py index 4a6e31c9cd..1a41b3a8b0 100644 --- a/.evergreen/scripts/setup_tests.py +++ b/.evergreen/scripts/setup_tests.py @@ -382,6 +382,8 @@ def handle_test_env() -> None: if not DRIVERS_TOOLS: raise RuntimeError("Missing DRIVERS_TOOLS") csfle_dir = Path(f"{DRIVERS_TOOLS}/.evergreen/csfle") + # Opt in to corporate Azure credentials (DRIVERS-3392) + os.environ["FLE_AZURE_USE_CORPORATE"] = "YES" run_command(f"bash {csfle_dir.as_posix()}/setup-secrets.sh", cwd=csfle_dir) load_config_from_file(csfle_dir / "secrets-export.sh") run_command(f"bash {csfle_dir.as_posix()}/start-servers.sh") diff --git a/.evergreen/spec-patch/PYTHON-5759.patch b/.evergreen/spec-patch/PYTHON-5759.patch index 3b19ed065e..e23c8956c5 100644 --- a/.evergreen/spec-patch/PYTHON-5759.patch +++ b/.evergreen/spec-patch/PYTHON-5759.patch @@ -1,6 +1,6 @@ diff --git a/test/client-side-encryption/spec/unified/accessToken-azure.json b/test/client-side-encryption/spec/unified/accessToken-azure.json new file mode 100644 -index 00000000..510d8795 +index 000000000..9e7d68f44 --- /dev/null +++ b/test/client-side-encryption/spec/unified/accessToken-azure.json @@ -0,0 +1,186 @@ @@ -107,7 +107,7 @@ index 00000000..510d8795 + ], + "keyMaterial": { + "$binary": { -+ "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", ++ "base64": "Vlza0NjSsxbiJbHUM++3EWyhd5/m4QHv0ZaH87LsljVDltHNZyR9YBFOTDFE1RKeY/uGSW35IdOLVxpHvo1/qBz7E6Iv14obBmniRetWZq0wxerm72LlF+VPTHHmNn1sIv3TY/HsHSx7S1U/ILaKukD7hBKZ5/4A2tPOXtdnTzC4Rpc8bRjaM8heQSNEWbTBPqcQ9xD4YLi+uQlzbLZjQA+Ljr540QJEwa7RGw8J22eo1sb3vSeDAhR24GH6RPJ5v72yElGcOZrKCjxnbd4mrCtSHssfOzCnK2Dw3mHikSLeBFGjnlXydBWiTn2AlhOs+YpXdAJ6Zm3xjkdJOXKytg==", + "subType": "00" + } + }, @@ -126,8 +126,8 @@ index 00000000..510d8795 + }, + "masterKey": { + "provider": "azure", -+ "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", -+ "keyName": "key-name-csfle" ++ "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", ++ "keyName": "drivers-3392-keyname" + } + } + ] @@ -192,7 +192,7 @@ index 00000000..510d8795 +} diff --git a/test/client-side-encryption/spec/unified/accessToken-gcp.json b/test/client-side-encryption/spec/unified/accessToken-gcp.json new file mode 100644 -index 00000000..f5cf8914 +index 000000000..f5cf8914f --- /dev/null +++ b/test/client-side-encryption/spec/unified/accessToken-gcp.json @@ -0,0 +1,188 @@ @@ -386,7 +386,7 @@ index 00000000..f5cf8914 +} diff --git a/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-azure-accessToken-type.json b/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-azure-accessToken-type.json new file mode 100644 -index 00000000..8fe5c150 +index 000000000..8fe5c150a --- /dev/null +++ b/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-azure-accessToken-type.json @@ -0,0 +1,31 @@ @@ -423,7 +423,7 @@ index 00000000..8fe5c150 +} diff --git a/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-gcp-accessToken-type.json b/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-gcp-accessToken-type.json new file mode 100644 -index 00000000..2284e26c +index 000000000..2284e26cb --- /dev/null +++ b/test/unified-test-format/invalid/clientEncryptionOpts-kmsProviders-gcp-accessToken-type.json @@ -0,0 +1,31 @@ diff --git a/.evergreen/spec-patch/PYTHON-5799.patch b/.evergreen/spec-patch/PYTHON-5799.patch deleted file mode 100644 index 96d293f317..0000000000 --- a/.evergreen/spec-patch/PYTHON-5799.patch +++ /dev/null @@ -1,232 +0,0 @@ -diff --git a/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix-ci-di.json b/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix-ci-di.json -index c43bf9390..3002c642b 100644 ---- a/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix-ci-di.json -+++ b/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix-ci-di.json -@@ -11,7 +11,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "prefixPreview", -+ "queryType": "prefix", - "strMinQueryLength": { - "$numberInt": "2" - }, -@@ -23,7 +23,7 @@ - "diacriticSensitive": false - }, - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "strMinQueryLength": { - "$numberInt": "2" - }, -diff --git a/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix.json b/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix.json -index ec4489fa0..141c372db 100644 ---- a/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix.json -+++ b/test/client-side-encryption/etc/data/encryptedFields-prefix-suffix.json -@@ -1,6 +1,6 @@ - { -- "fields": [ -- { -+ "fields": [ -+ { - "keyId": { - "$binary": { - "base64": "EjRWeBI0mHYSNBI0VniQEg==", -@@ -11,7 +11,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "prefixPreview", -+ "queryType": "prefix", - "strMinQueryLength": { - "$numberInt": "2" - }, -@@ -22,7 +22,7 @@ - "diacriticSensitive": true - }, - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "strMinQueryLength": { - "$numberInt": "2" - }, -@@ -34,5 +34,5 @@ - } - ] - } -- ] -+ ] - } -diff --git a/test/client-side-encryption/spec/unified/QE-Text-cleanupStructuredEncryptionData.json b/test/client-side-encryption/spec/unified/QE-Text-cleanupStructuredEncryptionData.json -index fd74573ea..dc979b501 100644 ---- a/test/client-side-encryption/spec/unified/QE-Text-cleanupStructuredEncryptionData.json -+++ b/test/client-side-encryption/spec/unified/QE-Text-cleanupStructuredEncryptionData.json -@@ -3,15 +3,14 @@ - "schemaVersion": "1.25", - "runOnRequirements": [ - { -- "minServerVersion": "8.2.0", -- "maxServerVersion": "8.99.99", -+ "minServerVersion": "9.0.0", - "topologies": [ - "replicaset", - "sharded", - "load-balanced" - ], - "csfle": { -- "minLibmongocryptVersion": "1.15.0" -+ "minLibmongocryptVersion": "1.19.0" - } - } - ], -@@ -102,7 +101,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "contention": { - "$numberLong": "0" - }, -diff --git a/test/client-side-encryption/spec/unified/QE-Text-compactStructuredEncryptionData.json b/test/client-side-encryption/spec/unified/QE-Text-compactStructuredEncryptionData.json -index a89ab96fc..1c3c6cc0d 100644 ---- a/test/client-side-encryption/spec/unified/QE-Text-compactStructuredEncryptionData.json -+++ b/test/client-side-encryption/spec/unified/QE-Text-compactStructuredEncryptionData.json -@@ -3,15 +3,14 @@ - "schemaVersion": "1.25", - "runOnRequirements": [ - { -- "minServerVersion": "8.2.0", -- "maxServerVersion": "8.99.99", -+ "minServerVersion": "9.0.0", - "topologies": [ - "replicaset", - "sharded", - "load-balanced" - ], - "csfle": { -- "minLibmongocryptVersion": "1.15.0" -+ "minLibmongocryptVersion": "1.19.0" - } - } - ], -@@ -102,7 +101,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "contention": { - "$numberLong": "0" - }, -@@ -210,7 +209,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "contention": { - "$numberLong": "0" - }, -diff --git a/test/client-side-encryption/spec/unified/QE-Text-prefixPreview.json b/test/client-side-encryption/spec/unified/QE-Text-prefix.json -similarity index 97% -rename from test/client-side-encryption/spec/unified/QE-Text-prefixPreview.json -rename to test/client-side-encryption/spec/unified/QE-Text-prefix.json -index c193608e8..25475e2c3 100644 ---- a/test/client-side-encryption/spec/unified/QE-Text-prefixPreview.json -+++ b/test/client-side-encryption/spec/unified/QE-Text-prefix.json -@@ -1,17 +1,16 @@ - { -- "description": "QE-Text-prefixPreview", -+ "description": "QE-Text-prefix", - "schemaVersion": "1.25", - "runOnRequirements": [ - { -- "minServerVersion": "8.2.0", -- "maxServerVersion": "8.99.99", -+ "minServerVersion": "9.0.0", - "topologies": [ - "replicaset", - "sharded", - "load-balanced" - ], - "csfle": { -- "minLibmongocryptVersion": "1.15.0" -+ "minLibmongocryptVersion": "1.19.0" - } - } - ], -@@ -102,7 +101,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "prefixPreview", -+ "queryType": "prefix", - "contention": { - "$numberLong": "0" - }, -@@ -124,7 +123,7 @@ - ], - "tests": [ - { -- "description": "Insert QE prefixPreview", -+ "description": "Insert QE prefix", - "operations": [ - { - "name": "insertOne", -diff --git a/test/client-side-encryption/spec/unified/QE-Text-suffixPreview.json b/test/client-side-encryption/spec/unified/QE-Text-suffix.json -similarity index 96% -rename from test/client-side-encryption/spec/unified/QE-Text-suffixPreview.json -rename to test/client-side-encryption/spec/unified/QE-Text-suffix.json -index 2de5cde4a..ad6cdc06c 100644 ---- a/test/client-side-encryption/spec/unified/QE-Text-suffixPreview.json -+++ b/test/client-side-encryption/spec/unified/QE-Text-suffix.json -@@ -1,17 +1,16 @@ - { -- "description": "QE-Text-suffixPreview", -+ "description": "QE-Text-suffix", - "schemaVersion": "1.25", - "runOnRequirements": [ - { -- "minServerVersion": "8.2.0", -- "maxServerVersion": "8.99.99", -+ "minServerVersion": "9.0.0", - "topologies": [ - "replicaset", - "sharded", - "load-balanced" - ], - "csfle": { -- "minLibmongocryptVersion": "1.15.0" -+ "minLibmongocryptVersion": "1.19.0" - } - } - ], -@@ -102,7 +101,7 @@ - "bsonType": "string", - "queries": [ - { -- "queryType": "suffixPreview", -+ "queryType": "suffix", - "contention": { - "$numberLong": "0" - }, -@@ -124,7 +123,7 @@ - ], - "tests": [ - { -- "description": "Insert QE suffixPreview", -+ "description": "Insert QE suffix", - "operations": [ - { - "name": "insertOne", -@@ -207,7 +206,7 @@ - ] - }, - { -- "description": "Query with matching $encStrStartsWith", -+ "description": "Query with matching $encStrEndsWith", - "operations": [ - { - "name": "insertOne", diff --git a/test/asynchronous/test_encryption.py b/test/asynchronous/test_encryption.py index f9094131d6..bbd324df32 100644 --- a/test/asynchronous/test_encryption.py +++ b/test/asynchronous/test_encryption.py @@ -671,8 +671,8 @@ class TestDataKeyDoubleEncryption(AsyncEncryptionIntegrationTest): "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0", }, "azure": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", }, "gcp": { "projectId": "devprod-drivers", @@ -1263,8 +1263,8 @@ async def test_06_aws_endpoint_invalid_host(self): @unittest.skipUnless(any(AZURE_CREDS.values()), "Azure environment credentials are not set") async def test_07_azure(self): master_key = { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", } await self.run_test_expected_success("azure", master_key) @@ -2585,8 +2585,8 @@ class TestRewrapWithSeparateClientEncryption(AsyncEncryptionIntegrationTest): "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0", }, "azure": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", }, "gcp": { "projectId": "devprod-drivers", diff --git a/test/asynchronous/unified_format.py b/test/asynchronous/unified_format.py index 9d311a946d..5913e3fcdf 100644 --- a/test/asynchronous/unified_format.py +++ b/test/asynchronous/unified_format.py @@ -477,7 +477,7 @@ class UnifiedSpecTestMixinV1(AsyncIntegrationTest): a class attribute ``TEST_SPEC``. """ - SCHEMA_VERSION = Version.from_string("1.26") + SCHEMA_VERSION = Version.from_string("1.28") RUN_ON_LOAD_BALANCER = True TEST_SPEC: Any TEST_PATH = "" # This gets filled in by generate_test_classes diff --git a/test/client-side-encryption/corpus/corpus-key-azure.json b/test/client-side-encryption/corpus/corpus-key-azure.json index 31a564edb8..0ec9737afb 100644 --- a/test/client-side-encryption/corpus/corpus-key-azure.json +++ b/test/client-side-encryption/corpus/corpus-key-azure.json @@ -7,7 +7,7 @@ }, "keyMaterial": { "$binary": { - "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "base64": "Vlza0NjSsxbiJbHUM++3EWyhd5/m4QHv0ZaH87LsljVDltHNZyR9YBFOTDFE1RKeY/uGSW35IdOLVxpHvo1/qBz7E6Iv14obBmniRetWZq0wxerm72LlF+VPTHHmNn1sIv3TY/HsHSx7S1U/ILaKukD7hBKZ5/4A2tPOXtdnTzC4Rpc8bRjaM8heQSNEWbTBPqcQ9xD4YLi+uQlzbLZjQA+Ljr540QJEwa7RGw8J22eo1sb3vSeDAhR24GH6RPJ5v72yElGcOZrKCjxnbd4mrCtSHssfOzCnK2Dw3mHikSLeBFGjnlXydBWiTn2AlhOs+YpXdAJ6Zm3xjkdJOXKytg==", "subType": "00" } }, @@ -26,8 +26,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyAltNames": ["azure"] } \ No newline at end of file diff --git a/test/client-side-encryption/custom/azure-dek.json b/test/client-side-encryption/custom/azure-dek.json index e644c971c6..ebe69e3236 100644 --- a/test/client-side-encryption/custom/azure-dek.json +++ b/test/client-side-encryption/custom/azure-dek.json @@ -7,7 +7,7 @@ }, "keyMaterial": { "$binary": { - "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "base64": "Vlza0NjSsxbiJbHUM++3EWyhd5/m4QHv0ZaH87LsljVDltHNZyR9YBFOTDFE1RKeY/uGSW35IdOLVxpHvo1/qBz7E6Iv14obBmniRetWZq0wxerm72LlF+VPTHHmNn1sIv3TY/HsHSx7S1U/ILaKukD7hBKZ5/4A2tPOXtdnTzC4Rpc8bRjaM8heQSNEWbTBPqcQ9xD4YLi+uQlzbLZjQA+Ljr540QJEwa7RGw8J22eo1sb3vSeDAhR24GH6RPJ5v72yElGcOZrKCjxnbd4mrCtSHssfOzCnK2Dw3mHikSLeBFGjnlXydBWiTn2AlhOs+YpXdAJ6Zm3xjkdJOXKytg==", "subType": "00" } }, @@ -26,8 +26,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyAltNames": ["altname", "azure_altname"] } diff --git a/test/client-side-encryption/etc/data/encryptedFields-substring-ci-di.json b/test/client-side-encryption/etc/data/encryptedFields-substring-ci-di.json index d6aadfb877..657faa5343 100644 --- a/test/client-side-encryption/etc/data/encryptedFields-substring-ci-di.json +++ b/test/client-side-encryption/etc/data/encryptedFields-substring-ci-di.json @@ -11,7 +11,7 @@ "bsonType": "string", "queries": [ { - "queryType": "substringPreview", + "queryType": "substring", "strMaxLength": { "$numberInt": "10" }, @@ -19,7 +19,7 @@ "$numberInt": "2" }, "strMaxQueryLength": { - "$numberInt": "10" + "$numberInt": "6" }, "contention": 0, "caseSensitive": false, @@ -28,4 +28,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/test/client-side-encryption/etc/data/encryptedFields-substring-preview.json b/test/client-side-encryption/etc/data/encryptedFields-substring-preview.json new file mode 100644 index 0000000000..a519edc627 --- /dev/null +++ b/test/client-side-encryption/etc/data/encryptedFields-substring-preview.json @@ -0,0 +1,33 @@ +{ + "fields": [ + { + "keyId": { + "$binary": { + "base64": "EjRWeBI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encryptedText", + "bsonType": "string", + "queries": [ + { + "queryType": "substringPreview", + "strMaxLength": { + "$numberInt": "10" + }, + "strMinQueryLength": { + "$numberInt": "2" + }, + "strMaxQueryLength": { + "$numberInt": "6" + }, + "contention": { + "$numberLong": "0" + }, + "caseSensitive": true, + "diacriticSensitive": true + } + ] + } + ] +} diff --git a/test/client-side-encryption/etc/data/encryptedFields-substring.json b/test/client-side-encryption/etc/data/encryptedFields-substring.json index d321a32c5c..5e80f4fc95 100644 --- a/test/client-side-encryption/etc/data/encryptedFields-substring.json +++ b/test/client-side-encryption/etc/data/encryptedFields-substring.json @@ -1,6 +1,6 @@ { - "fields": [ - { + "fields": [ + { "keyId": { "$binary": { "base64": "EjRWeBI0mHYSNBI0VniQEg==", @@ -11,7 +11,7 @@ "bsonType": "string", "queries": [ { - "queryType": "substringPreview", + "queryType": "substring", "strMaxLength": { "$numberInt": "10" }, @@ -19,7 +19,7 @@ "$numberInt": "2" }, "strMaxQueryLength": { - "$numberInt": "10" + "$numberInt": "6" }, "contention": { "$numberLong": "0" @@ -29,5 +29,5 @@ } ] } - ] + ] } diff --git a/test/client-side-encryption/spec/legacy/azureKMS.json b/test/client-side-encryption/spec/legacy/azureKMS.json index b0f5111370..b3676f172e 100644 --- a/test/client-side-encryption/spec/legacy/azureKMS.json +++ b/test/client-side-encryption/spec/legacy/azureKMS.json @@ -103,7 +103,7 @@ }, "keyMaterial": { "$binary": { - "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "base64": "Vlza0NjSsxbiJbHUM++3EWyhd5/m4QHv0ZaH87LsljVDltHNZyR9YBFOTDFE1RKeY/uGSW35IdOLVxpHvo1/qBz7E6Iv14obBmniRetWZq0wxerm72LlF+VPTHHmNn1sIv3TY/HsHSx7S1U/ILaKukD7hBKZ5/4A2tPOXtdnTzC4Rpc8bRjaM8heQSNEWbTBPqcQ9xD4YLi+uQlzbLZjQA+Ljr540QJEwa7RGw8J22eo1sb3vSeDAhR24GH6RPJ5v72yElGcOZrKCjxnbd4mrCtSHssfOzCnK2Dw3mHikSLeBFGjnlXydBWiTn2AlhOs+YpXdAJ6Zm3xjkdJOXKytg==", "subType": "00" } }, @@ -122,8 +122,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyAltNames": [ "altname", diff --git a/test/client-side-encryption/spec/unified/QE-Text-substring.json b/test/client-side-encryption/spec/unified/QE-Text-substring.json new file mode 100644 index 0000000000..f42a297278 --- /dev/null +++ b/test/client-side-encryption/spec/unified/QE-Text-substring.json @@ -0,0 +1,467 @@ +{ + "description": "QE-Text-substring", + "schemaVersion": "1.25", + "runOnRequirements": [ + { + "minServerVersion": "9.0.0", + "topologies": [ + "replicaset", + "sharded", + "load-balanced" + ], + "csfle": { + "minLibmongocryptVersion": "1.20.0" + } + } + ], + "createEntities": [ + { + "client": { + "id": "client", + "autoEncryptOpts": { + "keyVaultNamespace": "keyvault.datakeys", + "kmsProviders": { + "local": { + "key": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk" + } + } + }, + "observeEvents": [ + "commandStartedEvent" + ] + } + }, + { + "database": { + "id": "db", + "client": "client", + "databaseName": "db" + } + }, + { + "collection": { + "id": "coll", + "database": "db", + "collectionName": "coll" + } + } + ], + "initialData": [ + { + "databaseName": "keyvault", + "collectionName": "datakeys", + "documents": [ + { + "_id": { + "$binary": { + "base64": "q83vqxI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "keyMaterial": { + "$binary": { + "base64": "HBk9BWihXExNDvTp1lUxOuxuZK2Pe2ZdVdlsxPEBkiO1bS4mG5NNDsQ7zVxJAH8BtdOYp72Ku4Y3nwc0BUpIKsvAKX4eYXtlhv5zUQxWdeNFhg9qK7qb8nqhnnLeT0f25jFSqzWJoT379hfwDeu0bebJHr35QrJ8myZdPMTEDYF08QYQ48ShRBli0S+QzBHHAQiM2iJNr4svg2WR8JSeWQ==", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1648914851981" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1648914851981" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "local" + } + } + ] + }, + { + "databaseName": "db", + "collectionName": "coll", + "documents": [], + "createOptions": { + "encryptedFields": { + "fields": [ + { + "keyId": { + "$binary": { + "base64": "q83vqxI0mHYSNBI0VniQEg==", + "subType": "04" + } + }, + "path": "encryptedText", + "bsonType": "string", + "queries": [ + { + "queryType": "substring", + "contention": { + "$numberLong": "0" + }, + "strMinQueryLength": { + "$numberLong": "3" + }, + "strMaxQueryLength": { + "$numberLong": "6" + }, + "strMaxLength": { + "$numberLong": "20" + }, + "caseSensitive": true, + "diacriticSensitive": true + } + ] + } + ] + } + } + } + ], + "tests": [ + { + "description": "Insert QE substring", + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encryptedText": "foobar" + } + }, + "object": "coll" + } + ], + "expectEvents": [ + { + "client": "client", + "events": [ + { + "commandStartedEvent": { + "command": { + "listCollections": 1, + "filter": { + "name": "coll" + } + }, + "commandName": "listCollections" + } + }, + { + "commandStartedEvent": { + "command": { + "find": "datakeys", + "filter": { + "$or": [ + { + "_id": { + "$in": [ + { + "$binary": { + "base64": "q83vqxI0mHYSNBI0VniQEg==", + "subType": "04" + } + } + ] + } + }, + { + "keyAltNames": { + "$in": [] + } + } + ] + }, + "$db": "keyvault", + "readConcern": { + "level": "majority" + } + }, + "commandName": "find" + } + }, + { + "commandStartedEvent": { + "command": { + "insert": "coll", + "documents": [ + { + "_id": 1, + "encryptedText": { + "$$type": "binData" + } + } + ], + "ordered": true + }, + "commandName": "insert" + } + } + ] + } + ] + }, + { + "description": "Query with matching $encStrContains", + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encryptedText": "foobar" + } + }, + "object": "coll" + }, + { + "name": "find", + "arguments": { + "filter": { + "$expr": { + "$encStrContains": { + "input": "$encryptedText", + "substring": "oba" + } + } + } + }, + "object": "coll", + "expectResult": [ + { + "_id": { + "$numberInt": "1" + }, + "encryptedText": "foobar", + "__safeContent__": [ + { + "$binary": { + "base64": "wpaMBVDjL4bHf9EtSP52PJFzyNn1R19+iNI/hWtvzdk=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "IpY3x/jjm8j/74jAdUhgxdM5hk68zR0zv/lTKm/72Vg=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "G+ky260C6QiOfIxKz14FmaMbAxvui1BKJO/TnLOHlGk=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "7dv3gAKe9vwJMZmpB40pRCwRTmc7ds9UkGhxH8j084E=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "o0V+Efn6x8XQdE80F1tztNaT3qxHjcsd9DOQ47BtmQk=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "sJvrCjyVot7PIZFsdRehWFANKAj6fmBaj3FLbz/dZLE=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "e98auxFmu02h5MfBIARk29MI7hSmvN3F9DaQ0xjqoEM=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "US83krGNov/ezL6IhsY5eEOCxv1xUPDIEL/nmY0IKi0=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "P2Aq5+OHZPG0CWIdmZvWq9c/18ZKVYW3vbxd+WU/TXU=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "8AdPRPnSzcd5uhq4TZfNvNeF0XjLNVwAsJJMTtktw84=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "9O6u/G51I4ZHFLhL4ZLuudbr0s202A2QnPfThmOXPhI=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "N7AjYVyVlv6+lVSTM+cIxRL3SMgs3G5LgxSs+jrgDkI=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "RbGF7dQbPGYQFd9DDO1hPz1UlLOJ77FAC6NsjGwJeos=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "m7srHMgKm6kZwsNx8rc45pmw0/9Qro6xuQ8lZS3+RYk=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "K75CNU3JyKFqZWPiIsVi4+n7DhYmcPl/nEhQ3d88mVI=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "c7bwGpUZc/7JzEnMS7qQ/TPuXZyrmMihFaAV6zIqbZc=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "rDvEdUgEk8u4Srt3ETokWs2FXcnyJaRGQ+NbkFwi2rQ=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "VcdZj9zfveRBRlpCR2OYWau2+GokOFb73TE3gpElNiU=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "eOa9o2xfA6OgkbYUxd6wQJicaeN6guhy2V66W3ALsaA=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "1xGkJh+um70XiRd8lKLDtyHgDqrf7/59Mg7X0+KZh8k=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "OSvllqHxycbcZN4phR6NDujY3ttA59o7nQJ6V9eJpX0=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "ZTX1pyk8Vdw0BSbJx7GeJNcQf3tGKxbrrNSTqBqUWkg=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "cn7V05zb5iXwYrePGMHztC+GRq+Tj8IMpRDraauPhSE=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "E9bV9KyrZxHJSUmMg0HrDK4gGN+75ruelAnrM6hXQgY=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "WrssTNmdgXoTGpbaF0JLRCGH6cDQuz1XEFNTy98nrb0=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "jZmyOJP35dsxQ/OY5U4ISpVRIYr8iedNfcwZiKt29Qc=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "d2mocORMbX9MX+/itAW8r1kxVw2/uii4vzXtc+2CIRQ=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "JBnJy58eRPhDo3DuZvsHbvQDiHXxdtAx1Eif66k5SfA=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "OjbDulC8s62v0pgweBSsQqtJjJBwH5JinfJpj7nVr+A=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "85i7KT2GP9nSda3Gsil5LKubhq0LDtc22pxBxHpR+nE=", + "subType": "00" + } + }, + { + "$binary": { + "base64": "u9Fvsclwrs9lwIcMPV/fMZD7L3d5anSfJQVjQb9mgLg=", + "subType": "00" + } + } + ] + } + ] + } + ] + }, + { + "description": "Query with non-matching $encStrContains", + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encryptedText": "foobar" + } + }, + "object": "coll" + }, + { + "name": "find", + "arguments": { + "filter": { + "$expr": { + "$encStrContains": { + "input": "$encryptedText", + "substring": "blah" + } + } + } + }, + "object": "coll", + "expectResult": [] + } + ] + } + ] +} diff --git a/test/client-side-encryption/spec/unified/QE-Text-substringPreview.json b/test/client-side-encryption/spec/unified/QE-Text-substringPreview.json index 0cbfbbdfc6..1df3170958 100644 --- a/test/client-side-encryption/spec/unified/QE-Text-substringPreview.json +++ b/test/client-side-encryption/spec/unified/QE-Text-substringPreview.json @@ -110,7 +110,7 @@ "$numberLong": "3" }, "strMaxQueryLength": { - "$numberLong": "10" + "$numberLong": "6" }, "strMaxLength": { "$numberLong": "20" @@ -427,90 +427,6 @@ "base64": "u9Fvsclwrs9lwIcMPV/fMZD7L3d5anSfJQVjQb9mgLg=", "subType": "00" } - }, - { - "$binary": { - "base64": "LZ32ttmLJGOIw9oFaUCn3Sx5uHPTYJPSFpeGRWNqlUc=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "mMsZvGEePTqtl0FJAL/jAdyWNQIlpwN61YIlZsSIZ6s=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "XZcu1a/ZGsIzAl3j4MXQlLo4v2p7kvIqRHtIQYFmL6k=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "Zse27LinlYCEnX6iTmJceI33mEJxFb0LdPxp0RiMOaQ=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "vOv2Hgb2/sBpnX9XwFbIN6yDxhjchwlmczUf82W2tp4=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "oQxZ9A6j3x5j6x1Jqw/N9tpP4rfWMjcV3y+a3PkrL7c=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "/D7ew3EijyUnmT22awVFspcuyo3JChJcDeCPwpljzVM=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "BEmmwqyamt9X3bcWDld61P01zquy8fBHAXq3SHAPP0M=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "wygD9/kAo1KsRvtr1v+9/lvqoWdKwgh6gDHvAQfXPPk=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "pRTKgF/uksrF1c1AcfSTY6ZhqBKVud1vIztQ4/36SLs=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "C4iUo8oNJsjJ37BqnBgIgSQpf99X2Bb4W5MZEAmakHU=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "icoE53jIq6Fu/YGKUiSUTYyZ8xdiTQY9jJiGxVJObpw=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "oubCwk0V6G2RFWtcOnYDU4uUBoXBrhBRi4nZgrYj9JY=", - "subType": "00" - } - }, - { - "$binary": { - "base64": "IyqhQ9nGhzEi5YW2W6v1kGU5DY2u2qSqbM/qXdLdWVU=", - "subType": "00" - } } ] } diff --git a/test/client-side-encryption/spec/unified/azureKMS.json b/test/client-side-encryption/spec/unified/azureKMS.json index b70959217f..46ded4e787 100644 --- a/test/client-side-encryption/spec/unified/azureKMS.json +++ b/test/client-side-encryption/spec/unified/azureKMS.json @@ -158,7 +158,7 @@ }, "keyMaterial": { "$binary": { - "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "base64": "Vlza0NjSsxbiJbHUM++3EWyhd5/m4QHv0ZaH87LsljVDltHNZyR9YBFOTDFE1RKeY/uGSW35IdOLVxpHvo1/qBz7E6Iv14obBmniRetWZq0wxerm72LlF+VPTHHmNn1sIv3TY/HsHSx7S1U/ILaKukD7hBKZ5/4A2tPOXtdnTzC4Rpc8bRjaM8heQSNEWbTBPqcQ9xD4YLi+uQlzbLZjQA+Ljr540QJEwa7RGw8J22eo1sb3vSeDAhR24GH6RPJ5v72yElGcOZrKCjxnbd4mrCtSHssfOzCnK2Dw3mHikSLeBFGjnlXydBWiTn2AlhOs+YpXdAJ6Zm3xjkdJOXKytg==", "subType": "00" } }, @@ -177,8 +177,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyAltNames": [ "altname", diff --git a/test/client-side-encryption/spec/unified/createDataKey.json b/test/client-side-encryption/spec/unified/createDataKey.json index f99fa3dbcf..a7713e5556 100644 --- a/test/client-side-encryption/spec/unified/createDataKey.json +++ b/test/client-side-encryption/spec/unified/createDataKey.json @@ -159,8 +159,8 @@ "kmsProvider": "azure", "opts": { "masterKey": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } }, @@ -197,8 +197,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } ], diff --git a/test/client-side-encryption/spec/unified/namedKMS-createDataKey.json b/test/client-side-encryption/spec/unified/namedKMS-createDataKey.json index 4d75e4cf51..fc2d50cfc4 100644 --- a/test/client-side-encryption/spec/unified/namedKMS-createDataKey.json +++ b/test/client-side-encryption/spec/unified/namedKMS-createDataKey.json @@ -159,8 +159,8 @@ "kmsProvider": "azure:name1", "opts": { "masterKey": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } }, @@ -197,8 +197,8 @@ }, "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } ], diff --git a/test/client-side-encryption/spec/unified/namedKMS-rewrapManyDataKey.json b/test/client-side-encryption/spec/unified/namedKMS-rewrapManyDataKey.json index b3b9bd2477..dd73cfe630 100644 --- a/test/client-side-encryption/spec/unified/namedKMS-rewrapManyDataKey.json +++ b/test/client-side-encryption/spec/unified/namedKMS-rewrapManyDataKey.json @@ -139,7 +139,7 @@ ], "keyMaterial": { "$binary": { - "base64": "pr01l7qDygUkFE/0peFwpnNlv3iIy8zrQK38Q9i12UCN2jwZHDmfyx8wokiIKMb9kAleeY+vnt3Cf1MKu9kcDmI+KxbNDd+V3ytAAGzOVLDJr77CiWjF9f8ntkXRHrAY9WwnVDANYkDwXlyU0Y2GQFTiW65jiQhUtYLYH63Tk48SsJuQvnWw1Q+PzY8ga+QeVec8wbcThwtm+r2IHsCFnc72Gv73qq7weISw+O4mN08z3wOp5FOS2ZM3MK7tBGmPdBcktW7F8ODGsOQ1FU53OrWUnyX2aTi2ftFFFMWVHqQo7EYuBZHru8RRODNKMyQk0BFfKovAeTAVRv9WH9QU7g==", + "base64": "d8y3DLFGseaTkfoPSjGUkRnCl/bLiq83USDDmKU+d9ZQmvrSPDnF7T4G4g9z2YL/mlNlgjMn/oObkh/OIlDgZLUfSQTTo1U2pOKDG1m/wCi0CaSfyxoWy8mespl9SHmngDauWKeJYs1p8zFrrK/WyzzWTyhkVeSTYmf3Zev4zAO7cTc1NMkvCL7UZQ6ODAAV6KNgEr2iETls00bOG/7KMVWXKmH5+tlmXdplnBohb1w0m+M5LUnSO0t7Q45dgGl4kfp4KMat2d7ooS5sUIDY5ynUpSiRcDGMj4MFt5ACM5XdwRWQNs5D863B1bHeTpLH2fPr1eZTcCprSyPhqOtIQA==", "subType": "00" } }, @@ -156,8 +156,8 @@ "status": 1, "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } }, { @@ -462,8 +462,8 @@ "opts": { "provider": "azure:name1", "masterKey": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } }, @@ -519,8 +519,8 @@ "$set": { "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -547,8 +547,8 @@ "$set": { "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -575,8 +575,8 @@ "$set": { "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -603,8 +603,8 @@ "$set": { "masterKey": { "provider": "azure:name1", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" diff --git a/test/client-side-encryption/spec/unified/rewrapManyDataKey.json b/test/client-side-encryption/spec/unified/rewrapManyDataKey.json index 8803491dbe..7a04919a12 100644 --- a/test/client-side-encryption/spec/unified/rewrapManyDataKey.json +++ b/test/client-side-encryption/spec/unified/rewrapManyDataKey.json @@ -128,7 +128,7 @@ ], "keyMaterial": { "$binary": { - "base64": "pr01l7qDygUkFE/0peFwpnNlv3iIy8zrQK38Q9i12UCN2jwZHDmfyx8wokiIKMb9kAleeY+vnt3Cf1MKu9kcDmI+KxbNDd+V3ytAAGzOVLDJr77CiWjF9f8ntkXRHrAY9WwnVDANYkDwXlyU0Y2GQFTiW65jiQhUtYLYH63Tk48SsJuQvnWw1Q+PzY8ga+QeVec8wbcThwtm+r2IHsCFnc72Gv73qq7weISw+O4mN08z3wOp5FOS2ZM3MK7tBGmPdBcktW7F8ODGsOQ1FU53OrWUnyX2aTi2ftFFFMWVHqQo7EYuBZHru8RRODNKMyQk0BFfKovAeTAVRv9WH9QU7g==", + "base64": "d8y3DLFGseaTkfoPSjGUkRnCl/bLiq83USDDmKU+d9ZQmvrSPDnF7T4G4g9z2YL/mlNlgjMn/oObkh/OIlDgZLUfSQTTo1U2pOKDG1m/wCi0CaSfyxoWy8mespl9SHmngDauWKeJYs1p8zFrrK/WyzzWTyhkVeSTYmf3Zev4zAO7cTc1NMkvCL7UZQ6ODAAV6KNgEr2iETls00bOG/7KMVWXKmH5+tlmXdplnBohb1w0m+M5LUnSO0t7Q45dgGl4kfp4KMat2d7ooS5sUIDY5ynUpSiRcDGMj4MFt5ACM5XdwRWQNs5D863B1bHeTpLH2fPr1eZTcCprSyPhqOtIQA==", "subType": "00" } }, @@ -145,8 +145,8 @@ "status": 1, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } }, { @@ -552,8 +552,8 @@ "opts": { "provider": "azure", "masterKey": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } } }, @@ -609,8 +609,8 @@ "$set": { "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -637,8 +637,8 @@ "$set": { "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -665,8 +665,8 @@ "$set": { "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -693,8 +693,8 @@ "$set": { "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -721,8 +721,8 @@ "$set": { "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" }, "keyMaterial": { "$$type": "binData" @@ -1668,8 +1668,8 @@ }, "masterKey": { "provider": "azure", - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle" + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname" } }, { diff --git a/test/csot/override-operation-timeoutMS.json b/test/csot/override-operation-timeoutMS.json index f33f876137..30b550089f 100644 --- a/test/csot/override-operation-timeoutMS.json +++ b/test/csot/override-operation-timeoutMS.json @@ -269,6 +269,21 @@ }, { "description": "timeoutMS can be configured for an operation - createChangeStream on client", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", @@ -824,6 +839,21 @@ }, { "description": "timeoutMS can be configured for an operation - createChangeStream on database", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", @@ -1890,6 +1920,21 @@ }, { "description": "timeoutMS can be configured for an operation - createChangeStream on collection", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", diff --git a/test/csot/retryability-legacy-timeouts.json b/test/csot/retryability-legacy-timeouts.json index aded781aee..c912855985 100644 --- a/test/csot/retryability-legacy-timeouts.json +++ b/test/csot/retryability-legacy-timeouts.json @@ -1398,6 +1398,21 @@ }, { "description": "operation succeeds after one socket timeout - createChangeStream on client", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", @@ -1880,6 +1895,21 @@ }, { "description": "operation succeeds after one socket timeout - createChangeStream on database", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", @@ -2923,6 +2953,21 @@ }, { "description": "operation succeeds after one socket timeout - createChangeStream on collection", + "runOnRequirements": [ + { + "minServerVersion": "4.4", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.4", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] + } + ], "operations": [ { "name": "failPoint", diff --git a/test/csot/retryability-timeoutMS.json b/test/csot/retryability-timeoutMS.json index 5a0c9f3605..8fb88cfd55 100644 --- a/test/csot/retryability-timeoutMS.json +++ b/test/csot/retryability-timeoutMS.json @@ -2626,7 +2626,17 @@ "description": "operation is retried multiple times for non-zero timeoutMS - createChangeStream on client", "runOnRequirements": [ { - "minServerVersion": "4.3.1" + "minServerVersion": "4.3.1", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.3.1", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] } ], "operations": [ @@ -3531,7 +3541,17 @@ "description": "operation is retried multiple times for non-zero timeoutMS - createChangeStream on database", "runOnRequirements": [ { - "minServerVersion": "4.3.1" + "minServerVersion": "4.3.1", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.3.1", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] } ], "operations": [ @@ -5513,7 +5533,17 @@ "description": "operation is retried multiple times for non-zero timeoutMS - createChangeStream on collection", "runOnRequirements": [ { - "minServerVersion": "4.3.1" + "minServerVersion": "4.3.1", + "topologies": [ + "replicaset" + ] + }, + { + "minServerVersion": "4.3.1", + "maxServerVersion": "8.99", + "topologies": [ + "sharded" + ] } ], "operations": [ diff --git a/test/srv_seedlist/replica-set/identical-hostnames-valid-four-parts.json b/test/srv_seedlist/replica-set/identical-hostnames-valid-four-parts.json deleted file mode 100644 index b28a9276b1..0000000000 --- a/test/srv_seedlist/replica-set/identical-hostnames-valid-four-parts.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "uri": "mongodb+srv://test.build.10gen.cc/", - "seeds": [ - "test.build.10gen.cc:27017" - ], - "ping": false, - "comment": "Should not throw when SRV hostname and resolved hostname are identical and SRV hostname has four dot-separated parts." -} diff --git a/test/srv_seedlist/replica-set/identical-hostnames-valid-three-parts.json b/test/srv_seedlist/replica-set/identical-hostnames-valid-three-parts.json deleted file mode 100644 index 7a578ab4cc..0000000000 --- a/test/srv_seedlist/replica-set/identical-hostnames-valid-three-parts.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "uri": "mongodb+srv://build.10gen.cc/", - "seeds": [ - "build.10gen.cc:27017" - ], - "ping": false, - "comment": "Should not throw when SRV hostname and resolved hostname are identical and SRV hostname has three dot-separated parts." -} diff --git a/test/test_encryption.py b/test/test_encryption.py index ba0236b42b..e567826f2a 100644 --- a/test/test_encryption.py +++ b/test/test_encryption.py @@ -669,8 +669,8 @@ class TestDataKeyDoubleEncryption(EncryptionIntegrationTest): "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0", }, "azure": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", }, "gcp": { "projectId": "devprod-drivers", @@ -1257,8 +1257,8 @@ def test_06_aws_endpoint_invalid_host(self): @unittest.skipUnless(any(AZURE_CREDS.values()), "Azure environment credentials are not set") def test_07_azure(self): master_key = { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", } self.run_test_expected_success("azure", master_key) @@ -2569,8 +2569,8 @@ class TestRewrapWithSeparateClientEncryption(EncryptionIntegrationTest): "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0", }, "azure": { - "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", - "keyName": "key-name-csfle", + "keyVaultEndpoint": "drivers-3392-key-vault.vault.azure.net", + "keyName": "drivers-3392-keyname", }, "gcp": { "projectId": "devprod-drivers", diff --git a/test/unified_format.py b/test/unified_format.py index b1595d924a..648a0387cc 100644 --- a/test/unified_format.py +++ b/test/unified_format.py @@ -476,7 +476,7 @@ class UnifiedSpecTestMixinV1(IntegrationTest): a class attribute ``TEST_SPEC``. """ - SCHEMA_VERSION = Version.from_string("1.26") + SCHEMA_VERSION = Version.from_string("1.28") RUN_ON_LOAD_BALANCER = True TEST_SPEC: Any TEST_PATH = "" # This gets filled in by generate_test_classes diff --git a/test/unified_format_shared.py b/test/unified_format_shared.py index 54f4ed4700..8a0a3cd46b 100644 --- a/test/unified_format_shared.py +++ b/test/unified_format_shared.py @@ -129,6 +129,15 @@ placeholder = f"/autoEncryptOpts/kmsProviders/{provider_name}/{key}" PLACEHOLDER_MAP[placeholder] = value +# accessToken kmsProviders (schema 1.28, DRIVERS-3392). +for provider_name, token_env in [ + ("azure", "CSFLE_AZURE_ACCESS_TOKEN"), + ("gcp", "CSFLE_GCP_ACCESS_TOKEN"), +]: + token = os.environ.get(token_env, "") + for opts_root in ("clientEncryptionOpts", "autoEncryptOpts"): + PLACEHOLDER_MAP[f"/{opts_root}/kmsProviders/{provider_name}/accessToken"] = token + OIDC_ENV = os.environ.get("OIDC_ENV", "test") if OIDC_ENV == "test": PLACEHOLDER_MAP["/uriOptions/authMechanismProperties"] = {"ENVIRONMENT": "test"}