...

Text file src/go.mongodb.org/mongo-driver/testdata/client-side-encryption/legacy/fle2v2-Range-Decimal-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    # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
    10    topology: [ "replicaset" ]
    11    # Skip tests for "rangePreview" algorithm on Server 8.0+. Server 8.0 drops "rangePreview" and adds "range".
    12    maxServerVersion: "7.99.99"
    13database_name: &database_name "default"
    14collection_name: &collection_name "default"
    15data: []
    16encrypted_fields: &encrypted_fields {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalNoPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
    17key_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'}} ]
    18tests:
    19  - description: "Find with $gt"
    20    clientOptions:
    21      autoEncryptOpts:
    22        kmsProviders:
    23          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    24    operations:
    25      - name: insertOne
    26        arguments:
    27          document: &doc0 { _id: 0, encryptedDecimalNoPrecision: { $numberDecimal: "0.0" } }
    28      - name: insertOne
    29        arguments:
    30          document: &doc1 { _id: 1, encryptedDecimalNoPrecision: { $numberDecimal: "1.0" } }
    31      - name: find
    32        arguments:
    33          filter: { encryptedDecimalNoPrecision: { $gt: { $numberDecimal: "0.0" } }}
    34        result: [*doc1]
    35
    36  - description: "Find with $gte"
    37    clientOptions:
    38      autoEncryptOpts:
    39        kmsProviders:
    40          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    41    operations:
    42      - name: insertOne
    43        arguments: { document: *doc0 }
    44      - name: insertOne
    45        arguments: { document: *doc1 }
    46      - name: find
    47        arguments:
    48          filter: { encryptedDecimalNoPrecision: { $gte: { $numberDecimal: "0.0" } }}
    49          # sort so results from range queries are ordered.
    50          sort: { _id: 1 }
    51        result: [*doc0, *doc1]
    52
    53  - description: "Find with $gt with no results"
    54    clientOptions:
    55      autoEncryptOpts:
    56        kmsProviders:
    57          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    58    operations:
    59      - name: insertOne
    60        arguments: { document: *doc0 }
    61      - name: insertOne
    62        arguments: { document: *doc1 }
    63      - name: find
    64        arguments:
    65          filter: { encryptedDecimalNoPrecision: { $gt: { $numberDecimal: "1.0" } }}
    66        result: []
    67
    68  - description: "Find with $lt"
    69    clientOptions:
    70      autoEncryptOpts:
    71        kmsProviders:
    72          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    73    operations:
    74      - name: insertOne
    75        arguments: { document: *doc0 }
    76      - name: insertOne
    77        arguments: { document: *doc1 }
    78      - name: find
    79        arguments:
    80          filter: { encryptedDecimalNoPrecision: { $lt: { $numberDecimal: "1.0" } }}
    81        result: [*doc0]
    82
    83  - description: "Find with $lte"
    84    clientOptions:
    85      autoEncryptOpts:
    86        kmsProviders:
    87          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    88    operations:
    89      - name: insertOne
    90        arguments: { document: *doc0 }
    91      - name: insertOne
    92        arguments: { document: *doc1 }
    93      - name: find
    94        arguments:
    95          filter: { encryptedDecimalNoPrecision: { $lte: { $numberDecimal: "1.0" } }}
    96          # sort so results from range queries are ordered.
    97          sort: { _id: 1 }
    98        result: [*doc0, *doc1]
    99
   100  - description: "Find with $gt and $lt"
   101    clientOptions:
   102      autoEncryptOpts:
   103        kmsProviders:
   104          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   105    operations:
   106      - name: insertOne
   107        arguments: { document: *doc0 }
   108      - name: insertOne
   109        arguments: { document: *doc1 }
   110      - name: find
   111        arguments:
   112          filter: { encryptedDecimalNoPrecision: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }}
   113        result: [*doc1]
   114
   115  - description: "Find with equality"
   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: { encryptedDecimalNoPrecision: { $numberDecimal: "0.0" } }
   128        result: [*doc0]
   129      - name: find
   130        arguments:
   131          filter: { encryptedDecimalNoPrecision: { $numberDecimal: "1.0" } }
   132        result: [*doc1]
   133
   134  - description: "Find with $in"
   135    clientOptions:
   136      autoEncryptOpts:
   137        kmsProviders:
   138          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   139    operations:
   140      - name: insertOne
   141        arguments: { document: *doc0 }
   142      - name: insertOne
   143        arguments: { document: *doc1 }
   144      - name: find
   145        arguments:
   146          filter: { encryptedDecimalNoPrecision: { $in: [ {$numberDecimal: "0.0"} ] } }
   147        result: [*doc0]
   148
   149  - description: "Aggregate with $gte"
   150    clientOptions:
   151      autoEncryptOpts:
   152        kmsProviders:
   153          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   154    operations:
   155      - name: insertOne
   156        arguments: { document: *doc0 }
   157      - name: insertOne
   158        arguments: { document: *doc1 }
   159      - name: aggregate
   160        arguments:
   161          pipeline:
   162          - { $match: { encryptedDecimalNoPrecision: { $gte: { $numberDecimal: "0.0" } }} }
   163          # sort so results from range queries are ordered.
   164          - { $sort: { _id: 1 }}
   165        result: [*doc0, *doc1]
   166
   167  - description: "Aggregate with $gt with no results"
   168    clientOptions:
   169      autoEncryptOpts:
   170        kmsProviders:
   171          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   172    operations:
   173      - name: insertOne
   174        arguments: { document: *doc0 }
   175      - name: insertOne
   176        arguments: { document: *doc1 }
   177      - name: aggregate
   178        arguments:
   179          pipeline:
   180          - { $match: { encryptedDecimalNoPrecision: { $gt: { $numberDecimal: "1.0" } }} }
   181        result: []
   182
   183  - description: "Aggregate with $lt"
   184    clientOptions:
   185      autoEncryptOpts:
   186        kmsProviders:
   187          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   188    operations:
   189      - name: insertOne
   190        arguments: { document: *doc0 }
   191      - name: insertOne
   192        arguments: { document: *doc1 }
   193      - name: aggregate
   194        arguments:
   195          pipeline:
   196          - { $match: { encryptedDecimalNoPrecision: { $lt: { $numberDecimal: "1.0" } }} }
   197        result: [*doc0]
   198
   199  - description: "Aggregate with $lte"
   200    clientOptions:
   201      autoEncryptOpts:
   202        kmsProviders:
   203          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   204    operations:
   205      - name: insertOne
   206        arguments: { document: *doc0 }
   207      - name: insertOne
   208        arguments: { document: *doc1 }
   209      - name: aggregate
   210        arguments:
   211          pipeline:
   212          - { $match: { encryptedDecimalNoPrecision: { $lte: { $numberDecimal: "1.0" } }} }
   213          # sort so results from range queries are ordered.
   214          - { $sort: { _id: 1 }}
   215        result: [*doc0, *doc1]
   216
   217  - description: "Aggregate with $gt and $lt"
   218    clientOptions:
   219      autoEncryptOpts:
   220        kmsProviders:
   221          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   222    operations:
   223      - name: insertOne
   224        arguments: { document: *doc0 }
   225      - name: insertOne
   226        arguments: { document: *doc1 }
   227      - name: aggregate
   228        arguments:
   229          pipeline:
   230          - { $match: { encryptedDecimalNoPrecision: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }} }
   231        result: [*doc1]
   232
   233  - description: "Aggregate with equality"
   234    clientOptions:
   235      autoEncryptOpts:
   236        kmsProviders:
   237          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   238    operations:
   239      - name: insertOne
   240        arguments: { document: *doc0 }
   241      - name: insertOne
   242        arguments: { document: *doc1 }
   243      - name: aggregate
   244        arguments:
   245          pipeline:
   246          - { $match: { encryptedDecimalNoPrecision: { $numberDecimal: "0.0" } } }
   247        result: [*doc0]
   248      - name: aggregate
   249        arguments:
   250          pipeline:
   251          - { $match: { encryptedDecimalNoPrecision: { $numberDecimal: "1.0" } } }
   252        result: [*doc1]
   253
   254  - description: "Aggregate with $in"
   255    clientOptions:
   256      autoEncryptOpts:
   257        kmsProviders:
   258          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   259    operations:
   260      - name: insertOne
   261        arguments: { document: *doc0 }
   262      - name: insertOne
   263        arguments: { document: *doc1 }
   264      - name: aggregate
   265        arguments:
   266          pipeline:
   267          - { $match: { encryptedDecimalNoPrecision: { $in: [ {$numberDecimal: "0.0"} ] } } }
   268        result: [*doc0]
   269
   270  - description: "Wrong type: Insert Int"
   271    clientOptions:
   272      autoEncryptOpts:
   273        kmsProviders:
   274          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   275    operations:
   276      - name: insertOne
   277        arguments: { document: { _id: 0, encryptedDecimalNoPrecision: { $numberInt: "0" }} }
   278        result:
   279          # Expect an error from mongocryptd.
   280          errorContains: "cannot encrypt element"
   281
   282  - description: "Wrong type: Find Int"
   283    clientOptions:
   284      autoEncryptOpts:
   285        kmsProviders:
   286          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   287    operations:
   288      - name: find
   289        arguments:
   290          filter: { encryptedDecimalNoPrecision: { $gte: { $numberInt: "0" } }}
   291          # sort so results from range queries are ordered.
   292          sort: { _id: 1 }
   293        result:
   294          # expect an error from libmongocrypt.
   295          errorContains: "field type is not supported"

View as plain text