...

Text file src/go.mongodb.org/mongo-driver/testdata/client-side-encryption/legacy/fle2v2-Range-Int-Correctness.yml

Documentation: go.mongodb.org/mongo-driver/testdata/client-side-encryption/legacy

     1# Test correctness results.
     2# Does not include command monitoring expectations or outcome assertions to make tests more readable.
     3
     4# Requires libmongocrypt 1.8.0.
     5runOn:
     6  - minServerVersion: "7.0.0"
     7    # Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
     8    # FLE 2 Encrypted collections are not supported on standalone.
     9    topology: [ "replicaset", "sharded", "load-balanced" ]
    10    # Skip tests for "rangePreview" algorithm on Server 8.0+. Server 8.0 drops "rangePreview" and adds "range".
    11    maxServerVersion: "7.99.99"
    12database_name: &database_name "default"
    13collection_name: &collection_name "default"
    14data: []
    15encrypted_fields: &encrypted_fields {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
    16key_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'}} ]
    17tests:
    18  - description: "Find with $gt"
    19    clientOptions:
    20      autoEncryptOpts:
    21        kmsProviders:
    22          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    23    operations:
    24      - name: insertOne
    25        arguments:
    26          document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
    27      - name: insertOne
    28        arguments:
    29          document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
    30      - name: find
    31        arguments:
    32          filter: { encryptedInt: { $gt: { $numberInt: "0" } }}
    33        result: [*doc1]
    34
    35  - description: "Find with $gte"
    36    clientOptions:
    37      autoEncryptOpts:
    38        kmsProviders:
    39          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    40    operations:
    41      - name: insertOne
    42        arguments: { document: *doc0 }
    43      - name: insertOne
    44        arguments: { document: *doc1 }
    45      - name: find
    46        arguments:
    47          filter: { encryptedInt: { $gte: { $numberInt: "0" } }}
    48          # sort so results from range queries are ordered.
    49          sort: { _id: 1 }
    50        result: [*doc0, *doc1]
    51
    52  - description: "Find with $gt with no results"
    53    clientOptions:
    54      autoEncryptOpts:
    55        kmsProviders:
    56          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    57    operations:
    58      - name: insertOne
    59        arguments: { document: *doc0 }
    60      - name: insertOne
    61        arguments: { document: *doc1 }
    62      - name: find
    63        arguments:
    64          filter: { encryptedInt: { $gt: { $numberInt: "1" } }}
    65        result: []
    66
    67  - description: "Find with $lt"
    68    clientOptions:
    69      autoEncryptOpts:
    70        kmsProviders:
    71          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    72    operations:
    73      - name: insertOne
    74        arguments: { document: *doc0 }
    75      - name: insertOne
    76        arguments: { document: *doc1 }
    77      - name: find
    78        arguments:
    79          filter: { encryptedInt: { $lt: { $numberInt: "1" } }}
    80        result: [*doc0]
    81
    82  - description: "Find with $lte"
    83    clientOptions:
    84      autoEncryptOpts:
    85        kmsProviders:
    86          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    87    operations:
    88      - name: insertOne
    89        arguments: { document: *doc0 }
    90      - name: insertOne
    91        arguments: { document: *doc1 }
    92      - name: find
    93        arguments:
    94          filter: { encryptedInt: { $lte: { $numberInt: "1" } }}
    95          # sort so results from range queries are ordered.
    96          sort: { _id: 1 }
    97        result: [*doc0, *doc1]
    98
    99  - description: "Find with $lt below min"
   100    clientOptions:
   101      autoEncryptOpts:
   102        kmsProviders:
   103          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   104    operations:
   105      - name: insertOne
   106        arguments: { document: *doc0 }
   107      - name: insertOne
   108        arguments: { document: *doc1 }
   109      - name: find
   110        arguments:
   111          filter: { encryptedInt: { $lt: { $numberInt: "0" } }}
   112        result:
   113          errorContains: must be greater than the range minimum
   114
   115  - description: "Find with $gt above max"
   116    clientOptions:
   117      autoEncryptOpts:
   118        kmsProviders:
   119          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   120    operations:
   121      - name: insertOne
   122        arguments: { document: *doc0 }
   123      - name: insertOne
   124        arguments: { document: *doc1 }
   125      - name: find
   126        arguments:
   127          filter: { encryptedInt: { $gt: { $numberInt: "200" } }}
   128        result:
   129          errorContains: must be less than the range maximum
   130
   131  - description: "Find with $gt and $lt"
   132    clientOptions:
   133      autoEncryptOpts:
   134        kmsProviders:
   135          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   136    operations:
   137      - name: insertOne
   138        arguments: { document: *doc0 }
   139      - name: insertOne
   140        arguments: { document: *doc1 }
   141      - name: find
   142        arguments:
   143          filter: { encryptedInt: { $gt: { $numberInt: "0" }, $lt: { $numberInt: "2"} }}
   144        result: [*doc1]
   145
   146  - description: "Find with equality"
   147    clientOptions:
   148      autoEncryptOpts:
   149        kmsProviders:
   150          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   151    operations:
   152      - name: insertOne
   153        arguments: { document: *doc0 }
   154      - name: insertOne
   155        arguments: { document: *doc1 }
   156      - name: find
   157        arguments:
   158          filter: { encryptedInt: { $numberInt: "0" } }
   159        result: [*doc0]
   160      - name: find
   161        arguments:
   162          filter: { encryptedInt: { $numberInt: "1" } }
   163        result: [*doc1]
   164
   165  - description: "Find with full range"
   166    clientOptions:
   167      autoEncryptOpts:
   168        kmsProviders:
   169          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   170    operations:
   171      - name: insertOne
   172        arguments: { document: *doc0 }
   173      - name: insertOne
   174        arguments: { document: *doc1 }
   175      - name: find
   176        arguments:
   177          filter: { encryptedInt: { $gte: {$numberInt: "0"}, $lte: {$numberInt: "200"} } }
   178          # sort so results from range queries are ordered.
   179          sort: { _id: 1 }
   180        result: [*doc0, *doc1]
   181
   182  - description: "Find with $in"
   183    clientOptions:
   184      autoEncryptOpts:
   185        kmsProviders:
   186          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   187    operations:
   188      - name: insertOne
   189        arguments: { document: *doc0 }
   190      - name: insertOne
   191        arguments: { document: *doc1 }
   192      - name: find
   193        arguments:
   194          filter: { encryptedInt: { $in: [ {$numberInt: "0"} ] } }
   195        result: [*doc0]
   196
   197  - description: "Insert out of range"
   198    clientOptions:
   199      autoEncryptOpts:
   200        kmsProviders:
   201          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   202    operations:
   203      - name: insertOne
   204        arguments:
   205          document: { _id: 0, encryptedInt: { $numberInt: "-1" }}
   206        result:
   207          errorContains: value must be greater than or equal to the minimum value
   208
   209  - description: "Insert min and max"
   210    clientOptions:
   211      autoEncryptOpts:
   212        kmsProviders:
   213          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   214    operations:
   215      - name: insertOne
   216        arguments:
   217          document: *doc0
   218      - name: insertOne
   219        arguments:
   220          document: &doc200 { _id: 200, encryptedInt: { $numberInt: "200" }}
   221      - name: find
   222        arguments:
   223          filter: {}
   224          # sort so results from range queries are ordered.
   225          sort: { _id: 1 }
   226        result: [*doc0, *doc200]
   227
   228  - description: "Aggregate with $gte"
   229    clientOptions:
   230      autoEncryptOpts:
   231        kmsProviders:
   232          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   233    operations:
   234      - name: insertOne
   235        arguments: { document: *doc0 }
   236      - name: insertOne
   237        arguments: { document: *doc1 }
   238      - name: aggregate
   239        arguments:
   240          pipeline:
   241          - { $match: { encryptedInt: { $gte: { $numberInt: "0" } }} }
   242          # sort so results from range queries are ordered.
   243          - { $sort: { _id: 1 }}
   244
   245        result: [*doc0, *doc1]
   246
   247  - description: "Aggregate with $gt with no results"
   248    clientOptions:
   249      autoEncryptOpts:
   250        kmsProviders:
   251          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   252    operations:
   253      - name: insertOne
   254        arguments: { document: *doc0 }
   255      - name: insertOne
   256        arguments: { document: *doc1 }
   257      - name: aggregate
   258        arguments:
   259          pipeline:
   260          - { $match: { encryptedInt: { $gt: { $numberInt: "1" } }} }
   261        result: []
   262
   263  - description: "Aggregate with $lt"
   264    clientOptions:
   265      autoEncryptOpts:
   266        kmsProviders:
   267          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   268    operations:
   269      - name: insertOne
   270        arguments: { document: *doc0 }
   271      - name: insertOne
   272        arguments: { document: *doc1 }
   273      - name: aggregate
   274        arguments:
   275          pipeline:
   276          - { $match: { encryptedInt: { $lt: { $numberInt: "1" } }} }
   277        result: [*doc0]
   278
   279  - description: "Aggregate with $lte"
   280    clientOptions:
   281      autoEncryptOpts:
   282        kmsProviders:
   283          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   284    operations:
   285      - name: insertOne
   286        arguments: { document: *doc0 }
   287      - name: insertOne
   288        arguments: { document: *doc1 }
   289      - name: aggregate
   290        arguments:
   291          pipeline:
   292          - { $match: { encryptedInt: { $lte: { $numberInt: "1" } }} }
   293          # sort so results from range queries are ordered.
   294          - { $sort: { _id: 1 }}
   295        result: [*doc0, *doc1]
   296
   297  - description: "Aggregate with $lt below min"
   298    clientOptions:
   299      autoEncryptOpts:
   300        kmsProviders:
   301          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   302    operations:
   303      - name: insertOne
   304        arguments: { document: *doc0 }
   305      - name: insertOne
   306        arguments: { document: *doc1 }
   307      - name: aggregate
   308        arguments:
   309          pipeline:
   310          - { $match: { encryptedInt: { $lt: { $numberInt: "0" } }} }
   311        result:
   312          errorContains: must be greater than the range minimum
   313
   314  - description: "Aggregate with $gt above max"
   315    clientOptions:
   316      autoEncryptOpts:
   317        kmsProviders:
   318          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   319    operations:
   320      - name: insertOne
   321        arguments: { document: *doc0 }
   322      - name: insertOne
   323        arguments: { document: *doc1 }
   324      - name: aggregate
   325        arguments:
   326          pipeline:
   327          - { $match: { encryptedInt: { $gt: { $numberInt: "200" } }} }
   328        result:
   329          errorContains: must be less than the range maximum
   330
   331  - description: "Aggregate with $gt and $lt"
   332    clientOptions:
   333      autoEncryptOpts:
   334        kmsProviders:
   335          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   336    operations:
   337      - name: insertOne
   338        arguments: { document: *doc0 }
   339      - name: insertOne
   340        arguments: { document: *doc1 }
   341      - name: aggregate
   342        arguments:
   343          pipeline:
   344          - { $match: { encryptedInt: { $gt: { $numberInt: "0" }, $lt: { $numberInt: "2"} }} }
   345        result: [*doc1]
   346
   347  - description: "Aggregate with equality"
   348    clientOptions:
   349      autoEncryptOpts:
   350        kmsProviders:
   351          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   352    operations:
   353      - name: insertOne
   354        arguments: { document: *doc0 }
   355      - name: insertOne
   356        arguments: { document: *doc1 }
   357      - name: aggregate
   358        arguments:
   359          pipeline:
   360          - { $match: { encryptedInt: { $numberInt: "0" } } }
   361        result: [*doc0]
   362      - name: aggregate
   363        arguments:
   364          pipeline:
   365          - { $match: { encryptedInt: { $numberInt: "1" } } }
   366        result: [*doc1]
   367
   368  - description: "Aggregate with full range"
   369    clientOptions:
   370      autoEncryptOpts:
   371        kmsProviders:
   372          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   373    operations:
   374      - name: insertOne
   375        arguments: { document: *doc0 }
   376      - name: insertOne
   377        arguments: { document: *doc1 }
   378      - name: aggregate
   379        arguments:
   380          pipeline:
   381          - { $match: { encryptedInt: { $gte: {$numberInt: "0"}, $lte: {$numberInt: "200"} } } }
   382          # sort so results from range queries are ordered.
   383          - { $sort: { _id: 1 }}
   384        result: [*doc0, *doc1]
   385
   386  - description: "Aggregate with $in"
   387    clientOptions:
   388      autoEncryptOpts:
   389        kmsProviders:
   390          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   391    operations:
   392      - name: insertOne
   393        arguments: { document: *doc0 }
   394      - name: insertOne
   395        arguments: { document: *doc1 }
   396      - name: aggregate
   397        arguments:
   398          pipeline:
   399          - { $match: { encryptedInt: { $in: [ {$numberInt: "0"} ] } } }
   400        result: [*doc0]
   401
   402  - description: "Wrong type: Insert Double"
   403    clientOptions:
   404      autoEncryptOpts:
   405        kmsProviders:
   406          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   407    operations:
   408      - name: insertOne
   409        arguments: { document: { _id: 0, encryptedInt: { $numberDouble: "0" }} }
   410        result:
   411          # Expect an error from mongocryptd.
   412          errorContains: "cannot encrypt element"
   413
   414  - description: "Wrong type: Find Double"
   415    clientOptions:
   416      autoEncryptOpts:
   417        kmsProviders:
   418          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   419    operations:
   420      - name: find
   421        arguments:
   422          filter: { encryptedInt: { $gte: { $numberDouble: "0" } }}
   423        result:
   424          # expect an error from libmongocrypt.
   425          errorContains: "field type is not supported"

View as plain text