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 "json_schema": {
21 "properties": {
22 "encrypted_w_altname": {
23 "encrypt": {
24 "keyId": "/altname",
25 "bsonType": "string",
26 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
27 }
28 },
29 "encrypted_string": {
30 "encrypt": {
31 "keyId": [
32 {
33 "$binary": {
34 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
35 "subType": "04"
36 }
37 }
38 ],
39 "bsonType": "string",
40 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
41 }
42 },
43 "random": {
44 "encrypt": {
45 "keyId": [
46 {
47 "$binary": {
48 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
49 "subType": "04"
50 }
51 }
52 ],
53 "bsonType": "string",
54 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random"
55 }
56 },
57 "encrypted_string_equivalent": {
58 "encrypt": {
59 "keyId": [
60 {
61 "$binary": {
62 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
63 "subType": "04"
64 }
65 }
66 ],
67 "bsonType": "string",
68 "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
69 }
70 }
71 },
72 "bsonType": "object"
73 },
74 "key_vault_data": [
75 {
76 "status": 1,
77 "_id": {
78 "$binary": {
79 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
80 "subType": "04"
81 }
82 },
83 "masterKey": {
84 "provider": "aws",
85 "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0",
86 "region": "us-east-1"
87 },
88 "updateDate": {
89 "$date": {
90 "$numberLong": "1552949630483"
91 }
92 },
93 "keyMaterial": {
94 "$binary": {
95 "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO",
96 "subType": "00"
97 }
98 },
99 "creationDate": {
100 "$date": {
101 "$numberLong": "1552949630483"
102 }
103 },
104 "keyAltNames": [
105 "altname",
106 "another_altname"
107 ]
108 }
109 ],
110 "tests": [
111 {
112 "description": "Aggregate with deterministic encryption",
113 "skipReason": "SERVER-39395",
114 "clientOptions": {
115 "autoEncryptOpts": {
116 "kmsProviders": {
117 "aws": {}
118 }
119 }
120 },
121 "operations": [
122 {
123 "name": "aggregate",
124 "arguments": {
125 "pipeline": [
126 {
127 "$match": {
128 "encrypted_string": "457-55-5642"
129 }
130 }
131 ]
132 },
133 "result": [
134 {
135 "_id": 1,
136 "encrypted_string": "string0"
137 }
138 ]
139 }
140 ],
141 "expectations": [
142 {
143 "command_started_event": {
144 "command": {
145 "listCollections": 1,
146 "filter": {
147 "name": "default"
148 }
149 },
150 "command_name": "listCollections"
151 }
152 },
153 {
154 "command_started_event": {
155 "command": {
156 "find": "datakeys",
157 "filter": {
158 "$or": [
159 {
160 "_id": {
161 "$in": [
162 {
163 "$binary": {
164 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
165 "subType": "04"
166 }
167 }
168 ]
169 }
170 },
171 {
172 "keyAltNames": {
173 "$in": []
174 }
175 }
176 ]
177 },
178 "$db": "keyvault",
179 "readConcern": {
180 "level": "majority"
181 }
182 },
183 "command_name": "find"
184 }
185 },
186 {
187 "command_started_event": {
188 "command": {
189 "aggregate": "default",
190 "pipeline": [
191 {
192 "$match": {
193 "encrypted_string": "457-55-5642"
194 }
195 }
196 ]
197 },
198 "command_name": "aggregate"
199 }
200 }
201 ],
202 "outcome": {
203 "collection": {
204 "data": [
205 {
206 "_id": 1,
207 "encrypted_string": {
208 "$binary": {
209 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
210 "subType": "06"
211 }
212 }
213 }
214 ]
215 }
216 }
217 },
218 {
219 "description": "Aggregate with empty pipeline",
220 "skipReason": "SERVER-40829 hides agg support behind enableTestCommands flag.",
221 "clientOptions": {
222 "autoEncryptOpts": {
223 "kmsProviders": {
224 "aws": {}
225 }
226 }
227 },
228 "operations": [
229 {
230 "name": "aggregate",
231 "arguments": {
232 "pipeline": []
233 },
234 "result": [
235 {
236 "_id": 1,
237 "encrypted_string": "string0"
238 }
239 ]
240 }
241 ],
242 "expectations": [
243 {
244 "command_started_event": {
245 "command": {
246 "listCollections": 1,
247 "filter": {
248 "name": "default"
249 }
250 },
251 "command_name": "listCollections"
252 }
253 },
254 {
255 "command_started_event": {
256 "command": {
257 "aggregate": "default",
258 "pipeline": [],
259 "cursor": {}
260 },
261 "command_name": "aggregate"
262 }
263 },
264 {
265 "command_started_event": {
266 "command": {
267 "find": "datakeys",
268 "filter": {
269 "$or": [
270 {
271 "_id": {
272 "$in": [
273 {
274 "$binary": {
275 "base64": "AAAAAAAAAAAAAAAAAAAAAA==",
276 "subType": "04"
277 }
278 }
279 ]
280 }
281 },
282 {
283 "keyAltNames": {
284 "$in": []
285 }
286 }
287 ]
288 },
289 "$db": "keyvault",
290 "readConcern": {
291 "level": "majority"
292 }
293 },
294 "command_name": "find"
295 }
296 }
297 ],
298 "outcome": {
299 "collection": {
300 "data": [
301 {
302 "_id": 1,
303 "encrypted_string": {
304 "$binary": {
305 "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==",
306 "subType": "06"
307 }
308 }
309 }
310 ]
311 }
312 }
313 },
314 {
315 "description": "Aggregate should fail with random encryption",
316 "skipReason": "SERVER-39395",
317 "clientOptions": {
318 "autoEncryptOpts": {
319 "kmsProviders": {
320 "aws": {}
321 }
322 }
323 },
324 "operations": [
325 {
326 "name": "aggregate",
327 "arguments": {
328 "pipeline": [
329 {
330 "$match": {
331 "random": "abc"
332 }
333 }
334 ]
335 },
336 "result": {
337 "errorContains": "Cannot query on fields encrypted with the randomized encryption"
338 }
339 }
340 ]
341 },
342 {
343 "description": "Database aggregate should fail",
344 "clientOptions": {
345 "autoEncryptOpts": {
346 "kmsProviders": {
347 "aws": {}
348 }
349 }
350 },
351 "operations": [
352 {
353 "name": "aggregate",
354 "object": "database",
355 "arguments": {
356 "pipeline": [
357 {
358 "$currentOp": {
359 "allUsers": false,
360 "idleConnections": false,
361 "localOps": true
362 }
363 },
364 {
365 "$match": {
366 "command.aggregate": {
367 "$eq": 1
368 }
369 }
370 },
371 {
372 "$project": {
373 "command": 1
374 }
375 },
376 {
377 "$project": {
378 "command.lsid": 0
379 }
380 }
381 ]
382 },
383 "result": {
384 "errorContains": "non-collection command not supported for auto encryption: aggregate"
385 }
386 }
387 ]
388 }
389 ]
390}
View as plain text