Skip to content

Commit c11e2cf

Browse files
nbbeekendurran
andauthored
test(NODE-5181): update fle2 v2 spec tests (#3630)
Co-authored-by: Durran Jordan <[email protected]>
1 parent b790142 commit c11e2cf

File tree

124 files changed

+504
-1288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+504
-1288
lines changed

.evergreen/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2448,7 +2448,7 @@ tasks:
24482448
- func: bootstrap kms servers
24492449
- func: run custom csfle tests
24502450
vars:
2451-
CSFLE_GIT_REF: 77b51c00ab4ff58916dd39f55657e1ecc0af281c
2451+
CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953
24522452
- name: run-custom-csfle-tests-5.0-master
24532453
tags:
24542454
- run-custom-dependency-tests
@@ -2478,7 +2478,7 @@ tasks:
24782478
- func: bootstrap kms servers
24792479
- func: run custom csfle tests
24802480
vars:
2481-
CSFLE_GIT_REF: 77b51c00ab4ff58916dd39f55657e1ecc0af281c
2481+
CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953
24822482
- name: run-custom-csfle-tests-rapid-master
24832483
tags:
24842484
- run-custom-dependency-tests
@@ -2508,7 +2508,7 @@ tasks:
25082508
- func: bootstrap kms servers
25092509
- func: run custom csfle tests
25102510
vars:
2511-
CSFLE_GIT_REF: 77b51c00ab4ff58916dd39f55657e1ecc0af281c
2511+
CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953
25122512
- name: run-custom-csfle-tests-latest-master
25132513
tags:
25142514
- run-custom-dependency-tests

.evergreen/generate_evergreen_tasks.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ const oneOffFuncAsTasks = oneOffFuncs.map(oneOffFunc => ({
603603
]
604604
}));
605605

606-
const FLE_PINNED_COMMIT = '77b51c00ab4ff58916dd39f55657e1ecc0af281c'
606+
const FLE_PINNED_COMMIT = '1524eac203e4145e9f4835e519f1e4663ff15953'
607607

608608
for (const version of ['5.0', 'rapid', 'latest']) {
609609
for (const ref of [FLE_PINNED_COMMIT, 'master']) {

.evergreen/install-dependencies.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,5 @@ fi
110110

111111
echo "npm version: $(npm -v)"
112112

113-
npm install "${NPM_OPTIONS}"
113+
# TODO(NODE-5180): remove --force option
114+
npm install --force "${NPM_OPTIONS}"

.evergreen/run-custom-csfle-tests.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ popd # mongo-c-driver
5252

5353
pushd libmongocrypt/bindings/node
5454

55-
npm install --production --ignore-scripts
55+
# TODO(NODE-5180): remove --force option
56+
npm install --force --production --ignore-scripts
5657
bash ./etc/build-static.sh
5758

5859
popd # libmongocrypt/bindings/node
@@ -81,7 +82,8 @@ pushd ../csfle-deps-tmp/libmongocrypt/bindings/node
8182
killall mongocryptd || true
8283

8384
# only prod deps were installed earlier, install devDependencies here (except for mongodb!)
84-
npm install --ignore-scripts
85+
# TODO(NODE-5180): remove --force option
86+
npm install --force --ignore-scripts
8587

8688
# copy mongodb into CSFLE's node_modules
8789
rm -rf node_modules/mongodb

.evergreen/run-serverless-tests.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ if [ -z ${MONGODB_URI+omitted} ]; then echo "MONGODB_URI is unset" && exit 1; fi
1010
if [ -z ${SERVERLESS_ATLAS_USER+omitted} ]; then echo "SERVERLESS_ATLAS_USER is unset" && exit 1; fi
1111
if [ -z ${SERVERLESS_ATLAS_PASSWORD+omitted} ]; then echo "SERVERLESS_ATLAS_PASSWORD is unset" && exit 1; fi
1212

13-
npm install mongodb-client-encryption@"2.4.0"
13+
# TODO(NODE-5180): remove --force option
14+
npm install --force 'mongodb-client-encryption@alpha'
1415

1516
npx mocha \
1617
--config test/mocha_mongodb.json \

.evergreen/run-tests.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ else
5252
source "$DRIVERS_TOOLS"/.evergreen/csfle/set-temp-creds.sh
5353
fi
5454

55-
npm install mongodb-client-encryption@"2.5.0"
56-
npm install @mongodb-js/zstd
57-
npm install snappy
55+
# TODO(NODE-5180): remove --force option
56+
npm install --force 'mongodb-client-encryption@alpha'
57+
npm install --force @mongodb-js/zstd
58+
npm install --force snappy
5859

5960
export AUTH=$AUTH
6061
export SINGLE_MONGOS_LB_URI=${SINGLE_MONGOS_LB_URI}

test/integration/client-side-encryption/client_side_encryption.prose.22.range_explicit_encryption.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ const metaData: MongoDBMetadataUI = {
2020
requires: {
2121
clientSideEncryption: true,
2222

23-
// The Range Explicit Encryption tests require MongoDB server 6.2+. The tests must not run against a standalone.
24-
mongodb: '>=6.2.0',
23+
// The Range Explicit Encryption tests require MongoDB server 7.0+ for QE v2.
24+
// The tests must not run against a standalone.
25+
mongodb: '>=7.0.0',
2526
topology: '!single'
2627
}
2728
};

test/integration/client-side-encryption/client_side_encryption.prose.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const metadata = {
4646
const eeMetadata = {
4747
requires: {
4848
clientSideEncryption: true,
49-
mongodb: '>=6.0.0',
49+
mongodb: '>=7.0.0',
5050
topology: ['replicaset', 'sharded']
5151
}
5252
};

test/spec/client-side-encryption/tests/legacy/fle2-BypassQueryAnalysis.json renamed to test/spec/client-side-encryption/tests/legacy/fle2v2-BypassQueryAnalysis.json

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"runOn": [
33
{
4-
"minServerVersion": "6.0.0",
4+
"minServerVersion": "7.0.0",
5+
"serverless": "forbid",
56
"topology": [
67
"replicaset",
78
"sharded",
@@ -75,36 +76,6 @@
7576
"masterKey": {
7677
"provider": "local"
7778
}
78-
},
79-
{
80-
"_id": {
81-
"$binary": {
82-
"base64": "q83vqxI0mHYSNBI0VniQEg==",
83-
"subType": "04"
84-
}
85-
},
86-
"keyMaterial": {
87-
"$binary": {
88-
"base64": "HBk9BWihXExNDvTp1lUxOuxuZK2Pe2ZdVdlsxPEBkiO1bS4mG5NNDsQ7zVxJAH8BtdOYp72Ku4Y3nwc0BUpIKsvAKX4eYXtlhv5zUQxWdeNFhg9qK7qb8nqhnnLeT0f25jFSqzWJoT379hfwDeu0bebJHr35QrJ8myZdPMTEDYF08QYQ48ShRBli0S+QzBHHAQiM2iJNr4svg2WR8JSeWQ==",
89-
"subType": "00"
90-
}
91-
},
92-
"creationDate": {
93-
"$date": {
94-
"$numberLong": "1648914851981"
95-
}
96-
},
97-
"updateDate": {
98-
"$date": {
99-
"$numberLong": "1648914851981"
100-
}
101-
},
102-
"status": {
103-
"$numberInt": "0"
104-
},
105-
"masterKey": {
106-
"provider": "local"
107-
}
10879
}
10980
],
11081
"tests": [
@@ -133,7 +104,7 @@
133104
"_id": 1,
134105
"encryptedIndexed": {
135106
"$binary": {
136-
"base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==",
107+
"base64": "C18BAAAFZAAgAAAAANnt+eLTkv4GdDPl8IAfJOvTzArOgFJQ2S/DcLza4W0DBXMAIAAAAAD2u+omZme3P2gBPehMQyQHQ153tPN1+z7bksYA9jKTpAVwADAAAAAAUnCOQqIvmR65YKyYnsiVfVrg9hwUVO3RhhKExo3RWOzgaS0QdsBL5xKFS0JhZSoWBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AFAAAAAAEjRWeBI0mHYSNBI0VniQEpQbp/ZJpWBKeDtKLiXb0P2E9wvc0g3f373jnYQYlJquOrlPOoEy3ngsHPJuSUijvWDsrQzqYa349K7G/66qaXEFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsBWwAIAAAAACkm0o9bj6j0HuADKc0svbqO2UHj6GrlNdF6yKNxh63xRJrAAAAAAAAAAAAAA==",
137108
"subType": "06"
138109
}
139110
}
@@ -150,7 +121,7 @@
150121
"result": [
151122
{
152123
"_id": 1,
153-
"encryptedIndexed": "value123"
124+
"encryptedIndexed": "123"
154125
}
155126
]
156127
}
@@ -176,7 +147,7 @@
176147
"_id": 1,
177148
"encryptedIndexed": {
178149
"$binary": {
179-
"base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==",
150+
"base64": "C18BAAAFZAAgAAAAANnt+eLTkv4GdDPl8IAfJOvTzArOgFJQ2S/DcLza4W0DBXMAIAAAAAD2u+omZme3P2gBPehMQyQHQ153tPN1+z7bksYA9jKTpAVwADAAAAAAUnCOQqIvmR65YKyYnsiVfVrg9hwUVO3RhhKExo3RWOzgaS0QdsBL5xKFS0JhZSoWBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AFAAAAAAEjRWeBI0mHYSNBI0VniQEpQbp/ZJpWBKeDtKLiXb0P2E9wvc0g3f373jnYQYlJquOrlPOoEy3ngsHPJuSUijvWDsrQzqYa349K7G/66qaXEFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsBWwAIAAAAACkm0o9bj6j0HuADKc0svbqO2UHj6GrlNdF6yKNxh63xRJrAAAAAAAAAAAAAA==",
180151
"subType": "06"
181152
}
182153
}
@@ -230,39 +201,6 @@
230201
},
231202
"command_name": "find"
232203
}
233-
},
234-
{
235-
"command_started_event": {
236-
"command": {
237-
"find": "datakeys",
238-
"filter": {
239-
"$or": [
240-
{
241-
"_id": {
242-
"$in": [
243-
{
244-
"$binary": {
245-
"base64": "q83vqxI0mHYSNBI0VniQEg==",
246-
"subType": "04"
247-
}
248-
}
249-
]
250-
}
251-
},
252-
{
253-
"keyAltNames": {
254-
"$in": []
255-
}
256-
}
257-
]
258-
},
259-
"$db": "keyvault",
260-
"readConcern": {
261-
"level": "majority"
262-
}
263-
},
264-
"command_name": "find"
265-
}
266204
}
267205
],
268206
"outcome": {
@@ -276,7 +214,7 @@
276214
"__safeContent__": [
277215
{
278216
"$binary": {
279-
"base64": "ThpoKfQ8AkOzkFfNC1+9PF0pY2nIzfXvRdxQgjkNbBw=",
217+
"base64": "31eCYlbQoVboc5zwC8IoyJVSkag9PxREka8dkmbXJeY=",
280218
"subType": "00"
281219
}
282220
}

test/spec/client-side-encryption/tests/legacy/fle2-BypassQueryAnalysis.yml renamed to test/spec/client-side-encryption/tests/legacy/fle2v2-BypassQueryAnalysis.yml

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1+
# Requires libmongocrypt 1.8.0.
12
runOn:
2-
- minServerVersion: "6.0.0"
3+
- minServerVersion: "7.0.0"
4+
serverless: "forbid"
5+
# Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
36
# FLE 2 Encrypted collections are not supported on standalone.
47
topology: [ "replicaset", "sharded", "load-balanced" ]
58
database_name: &database_name "default"
69
collection_name: &collection_name "default"
710
data: []
811
encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
9-
key_vault_data: [{'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}}, {'_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'}} ]
12+
key_vault_data: [{'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
1013

1114
tests:
1215
- description: "BypassQueryAnalysis decrypts"
@@ -22,16 +25,16 @@ tests:
2225
"_id": 1,
2326
"encryptedIndexed": {
2427
"$binary": {
25-
# Payload has an IndexKey of key1 and UserKey of key2.
26-
"base64": "BHEBAAAFZAAgAAAAAHb62aV7+mqmaGcotPLdG3KP7S8diFwWMLM/5rYtqLrEBXMAIAAAAAAVJ6OWHRv3OtCozHpt3ZzfBhaxZirLv3B+G8PuaaO4EgVjACAAAAAAsZXWOWA+UiCBbrJNB6bHflB/cn7pWSvwWN2jw4FPeIUFcABQAAAAAMdD1nV2nqeI1eXEQNskDflCy8I7/HvvqDKJ6XxjhrPQWdLqjz+8GosGUsB7A8ee/uG9/guENuL25XD+Fxxkv1LLXtavHOlLF7iW0u9yabqqBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AE0AAAAAq83vqxI0mHYSNBI0VniQEkzZZBBDgeZh+h+gXEmOrSFtVvkUcnHWj/rfPW7iJ0G3UJ8zpuBmUM/VjOMJCY4+eDqdTiPIwX+/vNXegc8FZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsAA==",
28+
# Payload has an IndexKey of key1 and UserKey of key1.
29+
"base64": "C18BAAAFZAAgAAAAANnt+eLTkv4GdDPl8IAfJOvTzArOgFJQ2S/DcLza4W0DBXMAIAAAAAD2u+omZme3P2gBPehMQyQHQ153tPN1+z7bksYA9jKTpAVwADAAAAAAUnCOQqIvmR65YKyYnsiVfVrg9hwUVO3RhhKExo3RWOzgaS0QdsBL5xKFS0JhZSoWBXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAAgAAAAV2AFAAAAAAEjRWeBI0mHYSNBI0VniQEpQbp/ZJpWBKeDtKLiXb0P2E9wvc0g3f373jnYQYlJquOrlPOoEy3ngsHPJuSUijvWDsrQzqYa349K7G/66qaXEFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsBWwAIAAAAACkm0o9bj6j0HuADKc0svbqO2UHj6GrlNdF6yKNxh63xRJrAAAAAAAAAAAAAA==",
2730
"subType": "06"
2831
}
2932
}
3033
}
3134
- name: find
3235
arguments:
3336
filter: { "_id": 1 }
34-
result: [{"_id": 1, "encryptedIndexed": "value123" }]
37+
result: [{"_id": 1, "encryptedIndexed": "123" }]
3538
expectations:
3639
- command_started_event:
3740
command:
@@ -73,29 +76,7 @@ tests:
7376
$db: keyvault
7477
readConcern: { level: "majority" }
7578
command_name: find
76-
- command_started_event:
77-
command:
78-
find: datakeys
79-
filter: {
80-
"$or": [
81-
{
82-
"_id": {
83-
"$in": [
84-
{'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}
85-
]
86-
}
87-
},
88-
{
89-
"keyAltNames": {
90-
"$in": []
91-
}
92-
}
93-
]
94-
}
95-
$db: keyvault
96-
readConcern: { level: "majority" }
97-
command_name: find
9879
outcome:
9980
collection:
10081
data:
101-
- {"_id": 1, "encryptedIndexed": { "$$type": "binData" }, "__safeContent__": [{ "$binary" : { "base64" : "ThpoKfQ8AkOzkFfNC1+9PF0pY2nIzfXvRdxQgjkNbBw=", "subType" : "00" } }] }
82+
- {"_id": 1, "encryptedIndexed": { "$$type": "binData" }, "__safeContent__": [{ "$binary" : { "base64" : "31eCYlbQoVboc5zwC8IoyJVSkag9PxREka8dkmbXJeY=", "subType" : "00" } }] }

0 commit comments

Comments
 (0)