1
2# Requires libmongocrypt 1.8.0.
3runOn:
4 - minServerVersion: "7.0.0"
5 # Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
6 # FLE 2 Encrypted collections are not supported on standalone.
7 topology: [ "replicaset", "sharded", "load-balanced" ]
8 # Skip tests for "rangePreview" algorithm on Server 8.0+. Server 8.0 drops "rangePreview" and adds "range".
9 maxServerVersion: "7.99.99"
10database_name: &database_name "default"
11collection_name: &collection_name "default"
12data: []
13encrypted_fields: &encrypted_fields {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
14key_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'}} ]
15tests:
16 - description: "FLE2 Range Date. Insert and Find."
17 clientOptions:
18 autoEncryptOpts:
19 kmsProviders:
20 local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
21 operations:
22 - name: insertOne
23 arguments:
24 document: &doc0 { _id: 0, encryptedDate: { $date: { $numberLong: "0" }} }
25 - name: insertOne
26 arguments:
27 document: &doc1 { _id: 1, encryptedDate: { $date: { $numberLong: "1" }} }
28 - name: find
29 arguments:
30 filter: { encryptedDate: { $gt: { $date: { $numberLong: "0" }} } }
31 result: [*doc1]
32 expectations:
33 - command_started_event:
34 command:
35 listCollections: 1
36 filter:
37 name: *collection_name
38 command_name: listCollections
39 - command_started_event:
40 command:
41 find: datakeys
42 filter: {
43 "$or": [
44 {
45 "_id": {
46 "$in": [
47 {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
48 ]
49 }
50 },
51 {
52 "keyAltNames": {
53 "$in": []
54 }
55 }
56 ]
57 }
58 $db: keyvault
59 readConcern: { level: "majority" }
60 command_name: find
61 - command_started_event:
62 command:
63 insert: *collection_name
64 documents:
65 - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
66 ordered: true
67 encryptionInformation:
68 type: 1
69 schema:
70 default.default:
71 # libmongocrypt applies escCollection and ecocCollection to outgoing command.
72 escCollection: "enxcol_.default.esc"
73 ecocCollection: "enxcol_.default.ecoc"
74 <<: *encrypted_fields
75 command_name: insert
76 - command_started_event:
77 command:
78 insert: *collection_name
79 documents:
80 - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
81 ordered: true
82 encryptionInformation:
83 type: 1
84 schema:
85 default.default:
86 # libmongocrypt applies escCollection and ecocCollection to outgoing command.
87 escCollection: "enxcol_.default.esc"
88 ecocCollection: "enxcol_.default.ecoc"
89 <<: *encrypted_fields
90 command_name: insert
91 - command_started_event:
92 command:
93 find: *collection_name
94 filter:
95 "encryptedDate": {
96 "$gt": {
97 "$binary": {
98 "base64": "DUkFAAADcGF5bG9hZAAZBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVsACAAAAAA+MFEd8XfZSpbXKqqPC2L3TEFswkaG5Ff6aSgf8p+XVIAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWwAIAAAAABNPhSriux8W8qbwnhCczE3IzlhNEnGDpUwTFDZSL+eYQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFbAAgAAAAAHrUYj8A0hVgc6VklpDiljOnykrUSfEsjm56XO/bsfKdAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVsACAAAAAAIHYXP8RLcCboUmHN3+OlnEw1DxaLSnbTB9PdF228fFAAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWwAIAAAAADQbYYPxlCMMGe2MulbiurApFLoeJSMvTeDU3pyEA2jNwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFbAAgAAAAAFjBTzTpNxDEkA0vSRj0jCED9KDRlboMVyilKyDz5YR4AAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVsACAAAAAAWbp8JVJnx8fEVAJFa7WMfMa7wXeP5M3C8MX20J/i9n0AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWwAIAAAAAA9/YU9eI3D7QbXKIw/3/gzWJ6MZrCYhG0j1wNKgRQp5wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FbAAgAAAAAA9EsxoV1B2DcQ1NJRwuxXnvVR+vkD0wbbDYEI/zFEnDAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVsACAAAAAA+W0+zgLr85/PD7P9a94wk6MgNgrizx/XU9aCxAkp1IwAABJjbQAAAAAAAAAAAAAQcGF5bG9hZElkAAAAAAAQZmlyc3RPcGVyYXRvcgABAAAAAA==",
99 "subType": "06"
100 }
101 }
102 }
103 encryptionInformation:
104 type: 1
105 schema:
106 default.default:
107 # libmongocrypt applies escCollection and ecocCollection to outgoing command.
108 escCollection: "enxcol_.default.esc"
109 ecocCollection: "enxcol_.default.ecoc"
110 <<: *encrypted_fields
111 command_name: find
112 outcome:
113 collection:
114 # Outcome is checked using a separate MongoClient without auto encryption.
115 data:
116 -
117 {
118 "_id": 0,
119 "encryptedDate": { $$type: "binData" },
120 "__safeContent__": [
121 {
122 "$binary": {
123 "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
124 "subType": "00"
125 }
126 },
127 {
128 "$binary": {
129 "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
130 "subType": "00"
131 }
132 },
133 {
134 "$binary": {
135 "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
136 "subType": "00"
137 }
138 },
139 {
140 "$binary": {
141 "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
142 "subType": "00"
143 }
144 },
145 {
146 "$binary": {
147 "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
148 "subType": "00"
149 }
150 },
151 {
152 "$binary": {
153 "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
154 "subType": "00"
155 }
156 },
157 {
158 "$binary": {
159 "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
160 "subType": "00"
161 }
162 },
163 {
164 "$binary": {
165 "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
166 "subType": "00"
167 }
168 },
169 {
170 "$binary": {
171 "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
172 "subType": "00"
173 }
174 }
175 ]
176 }
177 -
178 {
179 "_id": 1,
180 "encryptedDate": { $$type: "binData" },
181 "__safeContent__": [
182 {
183 "$binary": {
184 "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
185 "subType": "00"
186 }
187 },
188 {
189 "$binary": {
190 "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
191 "subType": "00"
192 }
193 },
194 {
195 "$binary": {
196 "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
197 "subType": "00"
198 }
199 },
200 {
201 "$binary": {
202 "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
203 "subType": "00"
204 }
205 },
206 {
207 "$binary": {
208 "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
209 "subType": "00"
210 }
211 },
212 {
213 "$binary": {
214 "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
215 "subType": "00"
216 }
217 },
218 {
219 "$binary": {
220 "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
221 "subType": "00"
222 }
223 },
224 {
225 "$binary": {
226 "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
227 "subType": "00"
228 }
229 },
230 {
231 "$binary": {
232 "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
233 "subType": "00"
234 }
235 }
236 ]
237 }
View as plain text