1{
2 "runOn": [
3 {
4 "minServerVersion": "4.1.10"
5 }
6 ],
7 "database_name": "default",
8 "collection_name": "default",
9 "data": [
10 {
11 "_id": 1,
12 "encrypted_string": {
13 "$binary": {
14 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
15 "subType": "06"
16 }
17 }
18 },
19 {
20 "_id": 2,
21 "encrypted_string": {
22 "$binary": {
23 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
24 "subType": "06"
25 }
26 }
27 }
28 ],
29 "json_schema": {
30 "properties": {
31 "encrypted_w_altname": {
32 "encrypt": {
33 "keyId": "/altname",
34 "bsonType": "string",
35 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
36 }
37 },
38 "encrypted_string": {
39 "encrypt": {
40 "keyId": [
41 {
42 "$binary": {
43 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
44 "subType": "04"
45 }
46 }
47 ],
48 "bsonType": "string",
49 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
50 }
51 },
52 "random": {
53 "encrypt": {
54 "keyId": [
55 {
56 "$binary": {
57 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
58 "subType": "04"
59 }
60 }
61 ],
62 "bsonType": "string",
63 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
64 }
65 },
66 "encrypted_string_equivalent": {
67 "encrypt": {
68 "keyId": [
69 {
70 "$binary": {
71 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
72 "subType": "04"
73 }
74 }
75 ],
76 "bsonType": "string",
77 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
78 }
79 }
80 },
81 "bsonType": "object"
82 },
83 "key_vault_data": [
84 {
85 "status": 1,
86 "_id": {
87 "$binary": {
88 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
89 "subType": "04"
90 }
91 },
92 "masterKey": {
93 "provider": "aws",
94 "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
95 "region": "us-east-1"
96 },
97 "updateDate": {
98 "$date": {
99 "$numberLong": "1552949630483"
100 }
101 },
102 "keyMaterial": {
103 "$binary": {
104 "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
105 "subType": "00"
106 }
107 },
108 "creationDate": {
109 "$date": {
110 "$numberLong": "1552949630483"
111 }
112 },
113 "keyAltNames": [
114 "altname",
115 "another_altname"
116 ]
117 }
118 ],
119 "tests": [
120 {
121 "description": "updateMany with deterministic encryption",
122 "clientOptions": {
123 "autoEncryptOpts": {
124 "kmsProviders": {
125 "aws": {}
126 }
127 }
128 },
129 "operations": [
130 {
131 "name": "updateMany",
132 "arguments": {
133 "filter": {
134 "encrypted_string": {
135 "$in": [
136 "string0",
137 "string1"
138 ]
139 }
140 },
141 "update": {
142 "$set": {
143 "encrypted_string": "string2",
144 "random": "abc"
145 }
146 }
147 },
148 "result": {
149 "matchedCount": 2,
150 "modifiedCount": 2,
151 "upsertedCount": 0
152 }
153 }
154 ],
155 "expectations": [
156 {
157 "command_started_event": {
158 "command": {
159 "listCollections": 1,
160 "filter": {
161 "name": "default"
162 }
163 },
164 "command_name": "listCollections"
165 }
166 },
167 {
168 "command_started_event": {
169 "command": {
170 "find": "datakeys",
171 "filter": {
172 "$or": [
173 {
174 "_id": {
175 "$in": [
176 {
177 "$binary": {
178 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
179 "subType": "04"
180 }
181 }
182 ]
183 }
184 },
185 {
186 "keyAltNames": {
187 "$in": []
188 }
189 }
190 ]
191 },
192 "$db": "keyvault",
193 "readConcern": {
194 "level": "majority"
195 }
196 },
197 "command_name": "find"
198 }
199 },
200 {
201 "command_started_event": {
202 "command": {
203 "update": "default",
204 "updates": [
205 {
206 "q": {
207 "encrypted_string": {
208 "$in": [
209 {
210 "$binary": {
211 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
212 "subType": "06"
213 }
214 },
215 {
216 "$binary": {
217 "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==",
218 "subType": "06"
219 }
220 }
221 ]
222 }
223 },
224 "u": {
225 "$set": {
226 "encrypted_string": {
227 "$binary": {
228 "base64": "AQAAAAAAAAAAAAAAAAAAAAACQ76HWOut3DZtQuV90hp1aaCpZn95vZIaWmn+wrBehcEtcFwyJlBdlyzDzZTWPZCPgiFq72Wvh6Y7VbpU9NAp3A==",
229 "subType": "06"
230 }
231 },
232 "random": {
233 "$$type": "binData"
234 }
235 }
236 },
237 "multi": true,
238 "upsert": false
239 }
240 ],
241 "ordered": true
242 },
243 "command_name": "update"
244 }
245 }
246 ],
247 "outcome": {
248 "collection": {
249 "data": [
250 {
251 "_id": 1,
252 "encrypted_string": {
253 "$binary": {
254 "base64": "AQAAAAAAAAAAAAAAAAAAAAACQ76HWOut3DZtQuV90hp1aaCpZn95vZIaWmn+wrBehcEtcFwyJlBdlyzDzZTWPZCPgiFq72Wvh6Y7VbpU9NAp3A==",
255 "subType": "06"
256 }
257 },
258 "random": {
259 "$$type": "binData"
260 }
261 },
262 {
263 "_id": 2,
264 "encrypted_string": {
265 "$binary": {
266 "base64": "AQAAAAAAAAAAAAAAAAAAAAACQ76HWOut3DZtQuV90hp1aaCpZn95vZIaWmn+wrBehcEtcFwyJlBdlyzDzZTWPZCPgiFq72Wvh6Y7VbpU9NAp3A==",
267 "subType": "06"
268 }
269 },
270 "random": {
271 "$$type": "binData"
272 }
273 }
274 ]
275 }
276 }
277 },
278 {
279 "description": "updateMany fails when filtering on a random field",
280 "clientOptions": {
281 "autoEncryptOpts": {
282 "kmsProviders": {
283 "aws": {}
284 }
285 }
286 },
287 "operations": [
288 {
289 "name": "updateMany",
290 "arguments": {
291 "filter": {
292 "random": "abc"
293 },
294 "update": {
295 "$set": {
296 "encrypted_string": "string1"
297 }
298 }
299 },
300 "result": {
301 "errorContains": "Cannot query on fields encrypted with the randomized encryption"
302 }
303 }
304 ]
305 }
306 ]
307}
View as plain text