From 76f1221e224ae37a5ac7b70171233d6a2a3ba458 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Wed, 12 Jun 2024 10:02:59 -0700 Subject: [PATCH 1/7] PYTHON-4206 - QE Range Protocol V2 (#1670) --- pymongo/asynchronous/encryption.py | 25 +- pymongo/asynchronous/encryption_options.py | 10 +- pymongo/synchronous/encryption.py | 25 +- pymongo/synchronous/encryption_options.py | 10 +- .../etc/data/range-encryptedFields-Date.json | 7 +- ...ge-encryptedFields-DecimalNoPrecision.json | 7 +- ...ange-encryptedFields-DecimalPrecision.json | 7 +- ...nge-encryptedFields-DoubleNoPrecision.json | 7 +- ...range-encryptedFields-DoublePrecision.json | 7 +- .../etc/data/range-encryptedFields-Int.json | 7 +- .../etc/data/range-encryptedFields-Long.json | 7 +- .../spec/legacy/azureKMS.json | 11 + ...son => fle2v2-Rangev2-Date-Aggregate.json} | 37 +- ...n => fle2v2-Rangev2-Date-Correctness.json} | 10 +- ...e.json => fle2v2-Rangev2-Date-Delete.json} | 31 +- ...fle2v2-Rangev2-Date-FindOneAndUpdate.json} | 37 +- ...on => fle2v2-Rangev2-Date-InsertFind.json} | 37 +- ...e.json => fle2v2-Rangev2-Date-Update.json} | 37 +- ... => fle2v2-Rangev2-Decimal-Aggregate.json} | 37 +- ...> fle2v2-Rangev2-Decimal-Correctness.json} | 10 +- ...son => fle2v2-Rangev2-Decimal-Delete.json} | 31 +- ...2v2-Rangev2-Decimal-FindOneAndUpdate.json} | 37 +- ...=> fle2v2-Rangev2-Decimal-InsertFind.json} | 37 +- ...son => fle2v2-Rangev2-Decimal-Update.json} | 37 +- ...2-Rangev2-DecimalPrecision-Aggregate.json} | 37 +- ...Rangev2-DecimalPrecision-Correctness.json} | 10 +- ...e2v2-Rangev2-DecimalPrecision-Delete.json} | 31 +- ...v2-DecimalPrecision-FindOneAndUpdate.json} | 37 +- ...-Rangev2-DecimalPrecision-InsertFind.json} | 37 +- ...e2v2-Rangev2-DecimalPrecision-Update.json} | 37 +- ...n => fle2v2-Rangev2-Double-Aggregate.json} | 37 +- ...=> fle2v2-Rangev2-Double-Correctness.json} | 10 +- ...json => fle2v2-Rangev2-Double-Delete.json} | 31 +- ...e2v2-Rangev2-Double-FindOneAndUpdate.json} | 37 +- ... => fle2v2-Rangev2-Double-InsertFind.json} | 37 +- ...json => fle2v2-Rangev2-Double-Update.json} | 37 +- ...v2-Rangev2-DoublePrecision-Aggregate.json} | 37 +- ...-Rangev2-DoublePrecision-Correctness.json} | 10 +- ...le2v2-Rangev2-DoublePrecision-Delete.json} | 31 +- ...ev2-DoublePrecision-FindOneAndUpdate.json} | 37 +- ...2-Rangev2-DoublePrecision-InsertFind.json} | 37 +- ...le2v2-Rangev2-DoublePrecision-Update.json} | 37 +- ...json => fle2v2-Rangev2-Int-Aggregate.json} | 37 +- ...on => fle2v2-Rangev2-Int-Correctness.json} | 10 +- ...te.json => fle2v2-Rangev2-Int-Delete.json} | 31 +- ... fle2v2-Rangev2-Int-FindOneAndUpdate.json} | 37 +- ...son => fle2v2-Rangev2-Int-InsertFind.json} | 37 +- ...te.json => fle2v2-Rangev2-Int-Update.json} | 37 +- ...son => fle2v2-Rangev2-Long-Aggregate.json} | 37 +- ...n => fle2v2-Rangev2-Long-Correctness.json} | 10 +- ...e.json => fle2v2-Rangev2-Long-Delete.json} | 31 +- ...fle2v2-Rangev2-Long-FindOneAndUpdate.json} | 37 +- ...on => fle2v2-Rangev2-Long-InsertFind.json} | 37 +- ...e.json => fle2v2-Rangev2-Long-Update.json} | 37 +- ...ype.json => fle2v2-Rangev2-WrongType.json} | 9 +- .../spec/legacy/gcpKMS.json | 11 + .../spec/legacy/kmipKMS.json | 139 ++++++ .../spec/unified/createDataKey.json | 64 +++ .../spec/unified/rewrapManyDataKey.json | 453 +++++++++++++++++- test/test_encryption.py | 43 +- 60 files changed, 1445 insertions(+), 727 deletions(-) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-Aggregate.json => fle2v2-Rangev2-Date-Aggregate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-Correctness.json => fle2v2-Rangev2-Date-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-Delete.json => fle2v2-Rangev2-Date-Delete.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-FindOneAndUpdate.json => fle2v2-Rangev2-Date-FindOneAndUpdate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-InsertFind.json => fle2v2-Rangev2-Date-InsertFind.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Date-Update.json => fle2v2-Rangev2-Date-Update.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-Aggregate.json => fle2v2-Rangev2-Decimal-Aggregate.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-Correctness.json => fle2v2-Rangev2-Decimal-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-Delete.json => fle2v2-Rangev2-Decimal-Delete.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-FindOneAndUpdate.json => fle2v2-Rangev2-Decimal-FindOneAndUpdate.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-InsertFind.json => fle2v2-Rangev2-Decimal-InsertFind.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Decimal-Update.json => fle2v2-Rangev2-Decimal-Update.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-Aggregate.json => fle2v2-Rangev2-DecimalPrecision-Aggregate.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-Correctness.json => fle2v2-Rangev2-DecimalPrecision-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-Delete.json => fle2v2-Rangev2-DecimalPrecision-Delete.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-FindOneAndUpdate.json => fle2v2-Rangev2-DecimalPrecision-FindOneAndUpdate.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-InsertFind.json => fle2v2-Rangev2-DecimalPrecision-InsertFind.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DecimalPrecision-Update.json => fle2v2-Rangev2-DecimalPrecision-Update.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-Aggregate.json => fle2v2-Rangev2-Double-Aggregate.json} (98%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-Correctness.json => fle2v2-Rangev2-Double-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-Delete.json => fle2v2-Rangev2-Double-Delete.json} (98%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-FindOneAndUpdate.json => fle2v2-Rangev2-Double-FindOneAndUpdate.json} (98%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-InsertFind.json => fle2v2-Rangev2-Double-InsertFind.json} (98%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Double-Update.json => fle2v2-Rangev2-Double-Update.json} (98%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-Aggregate.json => fle2v2-Rangev2-DoublePrecision-Aggregate.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-Correctness.json => fle2v2-Rangev2-DoublePrecision-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-Delete.json => fle2v2-Rangev2-DoublePrecision-Delete.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-FindOneAndUpdate.json => fle2v2-Rangev2-DoublePrecision-FindOneAndUpdate.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-InsertFind.json => fle2v2-Rangev2-DoublePrecision-InsertFind.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-DoublePrecision-Update.json => fle2v2-Rangev2-DoublePrecision-Update.json} (96%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-Aggregate.json => fle2v2-Rangev2-Int-Aggregate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-Correctness.json => fle2v2-Rangev2-Int-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-Delete.json => fle2v2-Rangev2-Int-Delete.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-FindOneAndUpdate.json => fle2v2-Rangev2-Int-FindOneAndUpdate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-InsertFind.json => fle2v2-Rangev2-Int-InsertFind.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Int-Update.json => fle2v2-Rangev2-Int-Update.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-Aggregate.json => fle2v2-Rangev2-Long-Aggregate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-Correctness.json => fle2v2-Rangev2-Long-Correctness.json} (99%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-Delete.json => fle2v2-Rangev2-Long-Delete.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-FindOneAndUpdate.json => fle2v2-Rangev2-Long-FindOneAndUpdate.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-InsertFind.json => fle2v2-Rangev2-Long-InsertFind.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-Long-Update.json => fle2v2-Rangev2-Long-Update.json} (95%) rename test/client-side-encryption/spec/legacy/{fle2v2-Range-WrongType.json => fle2v2-Rangev2-WrongType.json} (95%) diff --git a/pymongo/asynchronous/encryption.py b/pymongo/asynchronous/encryption.py index cc9c30f98..5537ebed6 100644 --- a/pymongo/asynchronous/encryption.py +++ b/pymongo/asynchronous/encryption.py @@ -456,13 +456,10 @@ class Algorithm(str, enum.Enum): .. versionadded:: 4.2 """ - RANGEPREVIEW = "RangePreview" - """RangePreview. + RANGE = "Range" + """Range. - .. note:: Support for Range queries is in beta. - Backwards-breaking changes may be made before the final release. - - .. versionadded:: 4.4 + .. versionadded:: 4.8 """ @@ -475,11 +472,9 @@ class QueryType(str, enum.Enum): EQUALITY = "equality" """Used to encrypt a value for an equality query.""" - RANGEPREVIEW = "rangePreview" + RANGE = "range" """Used to encrypt a value for a range query. - .. note:: Support for Range queries is in beta. - Backwards-breaking changes may be made before the final release. """ @@ -836,10 +831,14 @@ class ClientEncryption(Generic[_DocumentType]): when the algorithm is :attr:`Algorithm.INDEXED`. An integer value *must* be given when the :attr:`Algorithm.INDEXED` algorithm is used. - :param range_opts: Experimental only, not intended for public use. + :param range_opts: Index options for `range` queries. See + :class:`RangeOpts` for some valid options. :return: The encrypted value, a :class:`~bson.binary.Binary` with subtype 6. + .. versionchanged:: 4.8 + Added the `range_opts` parameter. + .. versionchanged:: 4.7 ``key_id`` can now be passed in as a :class:`uuid.UUID`. @@ -888,10 +887,14 @@ class ClientEncryption(Generic[_DocumentType]): when the algorithm is :attr:`Algorithm.INDEXED`. An integer value *must* be given when the :attr:`Algorithm.INDEXED` algorithm is used. - :param range_opts: Experimental only, not intended for public use. + :param range_opts: Index options for `range` queries. See + :class:`RangeOpts` for some valid options. :return: The encrypted expression, a :class:`~bson.RawBSONDocument`. + .. versionchanged:: 4.8 + Added the `range_opts` parameter. + .. versionchanged:: 4.7 ``key_id`` can now be passed in as a :class:`uuid.UUID`. diff --git a/pymongo/asynchronous/encryption_options.py b/pymongo/asynchronous/encryption_options.py index 73d1932c6..cdef2d1d1 100644 --- a/pymongo/asynchronous/encryption_options.py +++ b/pymongo/asynchronous/encryption_options.py @@ -231,20 +231,20 @@ class AutoEncryptionOpts: class RangeOpts: - """Options to configure encrypted queries using the rangePreview algorithm.""" + """Options to configure encrypted queries using the range algorithm.""" def __init__( self, sparsity: int, + trim_factor: int, min: Optional[Any] = None, max: Optional[Any] = None, precision: Optional[int] = None, ) -> None: - """Options to configure encrypted queries using the rangePreview algorithm. - - .. note:: This feature is experimental only, and not intended for public use. + """Options to configure encrypted queries using the range algorithm. :param sparsity: An integer. + :param trim_factor: An integer. :param min: A BSON scalar value corresponding to the type being queried. :param max: A BSON scalar value corresponding to the type being queried. :param precision: An integer, may only be set for double or decimal128 types. @@ -254,6 +254,7 @@ class RangeOpts: self.min = min self.max = max self.sparsity = sparsity + self.trim_factor = trim_factor self.precision = precision @property @@ -261,6 +262,7 @@ class RangeOpts: doc = {} for k, v in [ ("sparsity", int64.Int64(self.sparsity)), + ("trimFactor", self.trim_factor), ("precision", self.precision), ("min", self.min), ("max", self.max), diff --git a/pymongo/synchronous/encryption.py b/pymongo/synchronous/encryption.py index cb248c564..f0887a129 100644 --- a/pymongo/synchronous/encryption.py +++ b/pymongo/synchronous/encryption.py @@ -454,13 +454,10 @@ class Algorithm(str, enum.Enum): .. versionadded:: 4.2 """ - RANGEPREVIEW = "RangePreview" - """RangePreview. + RANGE = "Range" + """Range. - .. note:: Support for Range queries is in beta. - Backwards-breaking changes may be made before the final release. - - .. versionadded:: 4.4 + .. versionadded:: 4.8 """ @@ -473,11 +470,9 @@ class QueryType(str, enum.Enum): EQUALITY = "equality" """Used to encrypt a value for an equality query.""" - RANGEPREVIEW = "rangePreview" + RANGE = "range" """Used to encrypt a value for a range query. - .. note:: Support for Range queries is in beta. - Backwards-breaking changes may be made before the final release. """ @@ -834,10 +829,14 @@ class ClientEncryption(Generic[_DocumentType]): when the algorithm is :attr:`Algorithm.INDEXED`. An integer value *must* be given when the :attr:`Algorithm.INDEXED` algorithm is used. - :param range_opts: Experimental only, not intended for public use. + :param range_opts: Index options for `range` queries. See + :class:`RangeOpts` for some valid options. :return: The encrypted value, a :class:`~bson.binary.Binary` with subtype 6. + .. versionchanged:: 4.8 + Added the `range_opts` parameter. + .. versionchanged:: 4.7 ``key_id`` can now be passed in as a :class:`uuid.UUID`. @@ -886,10 +885,14 @@ class ClientEncryption(Generic[_DocumentType]): when the algorithm is :attr:`Algorithm.INDEXED`. An integer value *must* be given when the :attr:`Algorithm.INDEXED` algorithm is used. - :param range_opts: Experimental only, not intended for public use. + :param range_opts: Index options for `range` queries. See + :class:`RangeOpts` for some valid options. :return: The encrypted expression, a :class:`~bson.RawBSONDocument`. + .. versionchanged:: 4.8 + Added the `range_opts` parameter. + .. versionchanged:: 4.7 ``key_id`` can now be passed in as a :class:`uuid.UUID`. diff --git a/pymongo/synchronous/encryption_options.py b/pymongo/synchronous/encryption_options.py index 03bc01d18..5b1cebd7b 100644 --- a/pymongo/synchronous/encryption_options.py +++ b/pymongo/synchronous/encryption_options.py @@ -231,20 +231,20 @@ class AutoEncryptionOpts: class RangeOpts: - """Options to configure encrypted queries using the rangePreview algorithm.""" + """Options to configure encrypted queries using the range algorithm.""" def __init__( self, sparsity: int, + trim_factor: int, min: Optional[Any] = None, max: Optional[Any] = None, precision: Optional[int] = None, ) -> None: - """Options to configure encrypted queries using the rangePreview algorithm. - - .. note:: This feature is experimental only, and not intended for public use. + """Options to configure encrypted queries using the range algorithm. :param sparsity: An integer. + :param trim_factor: An integer. :param min: A BSON scalar value corresponding to the type being queried. :param max: A BSON scalar value corresponding to the type being queried. :param precision: An integer, may only be set for double or decimal128 types. @@ -254,6 +254,7 @@ class RangeOpts: self.min = min self.max = max self.sparsity = sparsity + self.trim_factor = trim_factor self.precision = precision @property @@ -261,6 +262,7 @@ class RangeOpts: doc = {} for k, v in [ ("sparsity", int64.Int64(self.sparsity)), + ("trimFactor", self.trim_factor), ("precision", self.precision), ("min", self.min), ("max", self.max), diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-Date.json b/test/client-side-encryption/etc/data/range-encryptedFields-Date.json index 97a2b2d4e..defa6e37f 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-Date.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-Date.json @@ -10,10 +10,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -30,4 +33,4 @@ } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-DecimalNoPrecision.json b/test/client-side-encryption/etc/data/range-encryptedFields-DecimalNoPrecision.json index 4d284475f..dbe28e9c1 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-DecimalNoPrecision.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-DecimalNoPrecision.json @@ -10,14 +10,17 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-DecimalPrecision.json b/test/client-side-encryption/etc/data/range-encryptedFields-DecimalPrecision.json index 53449182b..538ab20f0 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-DecimalPrecision.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-DecimalPrecision.json @@ -10,10 +10,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -29,4 +32,4 @@ } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-DoubleNoPrecision.json b/test/client-side-encryption/etc/data/range-encryptedFields-DoubleNoPrecision.json index b478a772d..fb4f46d37 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-DoubleNoPrecision.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-DoubleNoPrecision.json @@ -10,14 +10,17 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-DoublePrecision.json b/test/client-side-encryption/etc/data/range-encryptedFields-DoublePrecision.json index 395a36968..07d1c84d6 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-DoublePrecision.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-DoublePrecision.json @@ -10,10 +10,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -29,4 +32,4 @@ } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-Int.json b/test/client-side-encryption/etc/data/range-encryptedFields-Int.json index 61b7082df..4f0b4854e 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-Int.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-Int.json @@ -10,10 +10,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -26,4 +29,4 @@ } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/etc/data/range-encryptedFields-Long.json b/test/client-side-encryption/etc/data/range-encryptedFields-Long.json index b18b84b6e..32fe1ea15 100644 --- a/test/client-side-encryption/etc/data/range-encryptedFields-Long.json +++ b/test/client-side-encryption/etc/data/range-encryptedFields-Long.json @@ -10,10 +10,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -26,4 +29,4 @@ } } ] -} +} \ No newline at end of file diff --git a/test/client-side-encryption/spec/legacy/azureKMS.json b/test/client-side-encryption/spec/legacy/azureKMS.json index afecf40b0..b0f511137 100644 --- a/test/client-side-encryption/spec/legacy/azureKMS.json +++ b/test/client-side-encryption/spec/legacy/azureKMS.json @@ -78,6 +78,17 @@ "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" } + }, + "encrypted_string_kmip_delegated": { + "encrypt": { + "keyId": [ + { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba6" + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } } }, "bsonType": "object" diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Aggregate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Aggregate.json index 9eaabe0d7..63a2db3ef 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -226,10 +228,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -283,10 +288,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -346,10 +354,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -383,12 +394,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -445,12 +450,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Correctness.json index fa887e089..fae25a1c0 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Delete.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Delete.json index cce4faf18..63a2b29fc 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -215,10 +217,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -272,10 +277,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -336,10 +344,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -373,12 +384,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-FindOneAndUpdate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-FindOneAndUpdate.json index 4392b6768..049186c86 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -230,10 +232,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -287,10 +292,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -352,10 +360,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -389,12 +400,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -451,12 +456,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-InsertFind.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-InsertFind.json index 27ce7881d..d0751434b 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -222,10 +224,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -279,10 +284,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -337,10 +345,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -374,12 +385,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -436,12 +441,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Update.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Update.json index f7d5a6af6..1e7750fee 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Date-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Date-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -226,10 +228,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -283,10 +288,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -354,10 +362,13 @@ "path": "encryptedDate", "bsonType": "date", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -391,12 +402,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -453,12 +458,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Aggregate.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Aggregate.json index 401ee34e3..5f573a933 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Aggregate.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -206,10 +208,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -253,10 +258,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -306,10 +314,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -335,12 +346,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=", @@ -1119,12 +1124,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Correctness.json index 758d3e573..4316a31c3 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Correctness.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Delete.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Delete.json index 24a08f318..a94dd40fe 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Delete.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -197,10 +199,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -244,10 +249,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -298,10 +306,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -327,12 +338,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-FindOneAndUpdate.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-FindOneAndUpdate.json index 2a8070ecf..5226facfb 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-FindOneAndUpdate.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -208,10 +210,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -255,10 +260,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -310,10 +318,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -339,12 +350,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=", @@ -1123,12 +1128,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-InsertFind.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-InsertFind.json index 2ef63f42b..b6615454b 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-InsertFind.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -202,10 +204,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -249,10 +254,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -297,10 +305,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -326,12 +337,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=", @@ -1110,12 +1115,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Update.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Update.json index 8064eb1b1..ceef8ca9b 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Decimal-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Decimal-Update.json @@ -1,11 +1,10 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -23,10 +22,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -206,10 +208,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -253,10 +258,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -314,10 +322,13 @@ "path": "encryptedDecimalNoPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -343,12 +354,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=", @@ -1127,12 +1132,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Aggregate.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Aggregate.json index 8cf143c09..35cc4aba8 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -217,10 +219,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -273,10 +278,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -335,10 +343,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -373,12 +384,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -479,12 +484,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Correctness.json index a4b06998f..895444588 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Delete.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Delete.json index fad823483..e000c4058 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -208,10 +210,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -264,10 +269,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -327,10 +335,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -365,12 +376,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-FindOneAndUpdate.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-FindOneAndUpdate.json index fb8f4f414..27f10a30a 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -219,10 +221,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -275,10 +280,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -339,10 +347,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -377,12 +388,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -483,12 +488,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-InsertFind.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-InsertFind.json index 79562802e..5fb96730d 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -213,10 +215,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -269,10 +274,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -326,10 +334,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -362,12 +373,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -466,12 +471,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Update.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Update.json index cc93b7694..f67ae3ca2 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DecimalPrecision-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DecimalPrecision-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -217,10 +219,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -273,10 +278,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -343,10 +351,13 @@ "path": "encryptedDecimalPrecision", "bsonType": "decimal", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -379,12 +390,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -483,12 +488,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Aggregate.json similarity index 98% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Aggregate.json index 79f26660f..e14ca8ff0 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -208,10 +210,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -255,10 +260,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -308,10 +316,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -335,12 +346,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=", @@ -733,12 +738,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Correctness.json index 117e56af6..edb336743 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Delete.json similarity index 98% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Delete.json index 40d8ed5bb..6821c9793 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -199,10 +201,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -246,10 +251,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -300,10 +308,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -327,12 +338,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-FindOneAndUpdate.json similarity index 98% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-FindOneAndUpdate.json index f0893ce66..298a4506c 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -210,10 +212,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -257,10 +262,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -312,10 +320,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -339,12 +350,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=", @@ -737,12 +742,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-InsertFind.json similarity index 98% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-InsertFind.json index d3dc2f830..0c6f9e987 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -204,10 +206,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -251,10 +256,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -299,10 +307,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -326,12 +337,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=", @@ -724,12 +729,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Update.json similarity index 98% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Update.json index 9d6a1fbfd..dabe8a093 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Double-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Double-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -208,10 +210,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -255,10 +260,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -316,10 +324,13 @@ "path": "encryptedDoubleNoPrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" } @@ -343,12 +354,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=", @@ -741,12 +746,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Aggregate.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Aggregate.json index 4188685a2..8d434dc27 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -217,10 +219,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -273,10 +278,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -335,10 +343,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -371,12 +382,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -475,12 +480,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Correctness.json index 60f1ea7a3..87d0e3dd8 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Delete.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Delete.json index 4ed591d3f..a9315dec9 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -208,10 +210,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -264,10 +269,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -327,10 +335,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -363,12 +374,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-FindOneAndUpdate.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-FindOneAndUpdate.json index d8fbbfae7..28bebe0db 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -219,10 +221,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -275,10 +280,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -339,10 +347,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -375,12 +386,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -479,12 +484,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-InsertFind.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-InsertFind.json index 4213b066d..3b3176be6 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -213,10 +215,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -269,10 +274,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -326,10 +334,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -362,12 +373,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -466,12 +471,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Update.json similarity index 96% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Update.json index 89eb4c338..be2d0e9f4 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-DoublePrecision-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-DoublePrecision-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -217,10 +219,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -273,10 +278,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -343,10 +351,13 @@ "path": "encryptedDoublePrecision", "bsonType": "double", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -379,12 +390,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=", @@ -483,12 +488,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Aggregate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Aggregate.json index 686f0241b..c689dede1 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -214,10 +216,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -267,10 +272,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -326,10 +334,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -359,12 +370,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -421,12 +426,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Correctness.json index 2964624f2..9dc4e4e50 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Delete.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Delete.json index 531b3e759..4a6b34a1d 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -205,10 +207,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -258,10 +263,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -318,10 +326,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -351,12 +362,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-FindOneAndUpdate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-FindOneAndUpdate.json index 402086cdb..2bf905fa6 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -216,10 +218,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -269,10 +274,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -330,10 +338,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -363,12 +374,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -425,12 +430,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-InsertFind.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-InsertFind.json index 965b8a551..a5eb4d60e 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -210,10 +212,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -263,10 +268,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -317,10 +325,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -350,12 +361,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -412,12 +417,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Update.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Update.json index 6cf44ac78..e826ea2ac 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Int-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Int-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -214,10 +216,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -267,10 +272,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -334,10 +342,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -367,12 +378,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -429,12 +434,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Aggregate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Aggregate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Aggregate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Aggregate.json index 6edb38a80..d5020f592 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Aggregate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Aggregate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -214,10 +216,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -267,10 +272,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -326,10 +334,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -359,12 +370,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -421,12 +426,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Correctness.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Correctness.json similarity index 99% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Correctness.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Correctness.json index 3d33f7381..d81e0933f 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Correctness.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Correctness.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Delete.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Delete.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Delete.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Delete.json index 1b3278201..3720d0034 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Delete.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Delete.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -205,10 +207,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -258,10 +263,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -318,10 +326,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -351,12 +362,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-FindOneAndUpdate.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-FindOneAndUpdate.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-FindOneAndUpdate.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-FindOneAndUpdate.json index b8e3b888a..5e4b5ae0d 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-FindOneAndUpdate.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-FindOneAndUpdate.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -216,10 +218,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -269,10 +274,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -330,10 +338,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -363,12 +374,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -425,12 +430,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-InsertFind.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-InsertFind.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-InsertFind.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-InsertFind.json index d637fcf9e..0d4858062 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-InsertFind.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-InsertFind.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -210,10 +212,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -263,10 +268,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -317,10 +325,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -350,12 +361,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -412,12 +417,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=", - "subType": "00" - } - }, { "$binary": { "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Update.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Update.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Update.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Update.json index 1b76019a4..2d3321fd8 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-Long-Update.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-Long-Update.json @@ -1,13 +1,12 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" - ], - "maxServerVersion": "7.99.99" + ] } ], "database_name": "default", @@ -25,10 +24,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -214,10 +216,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -267,10 +272,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -334,10 +342,13 @@ "path": "encryptedLong", "bsonType": "long", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberInt": "1" + }, "sparsity": { "$numberLong": "1" }, @@ -367,12 +378,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=", - "subType": "00" - } - }, { "$binary": { "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=", @@ -429,12 +434,6 @@ "$$type": "binData" }, "__safeContent__": [ - { - "$binary": { - "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=", - "subType": "00" - } - }, { "$binary": { "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=", diff --git a/test/client-side-encryption/spec/legacy/fle2v2-Range-WrongType.json b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-WrongType.json similarity index 95% rename from test/client-side-encryption/spec/legacy/fle2v2-Range-WrongType.json rename to test/client-side-encryption/spec/legacy/fle2v2-Rangev2-WrongType.json index 704a693b8..621560450 100644 --- a/test/client-side-encryption/spec/legacy/fle2v2-Range-WrongType.json +++ b/test/client-side-encryption/spec/legacy/fle2v2-Rangev2-WrongType.json @@ -1,13 +1,13 @@ { "runOn": [ { - "minServerVersion": "7.0.0", + "minServerVersion": "8.0.0", "topology": [ "replicaset", "sharded", "load-balanced" ], - "maxServerVersion": "7.99.99" + "maxServerVersion": "8.99.99" } ], "database_name": "default", @@ -25,10 +25,13 @@ "path": "encryptedInt", "bsonType": "int", "queries": { - "queryType": "rangePreview", + "queryType": "range", "contention": { "$numberLong": "0" }, + "trimFactor": { + "$numberLong": "1" + }, "sparsity": { "$numberLong": "1" }, diff --git a/test/client-side-encryption/spec/legacy/gcpKMS.json b/test/client-side-encryption/spec/legacy/gcpKMS.json index c2c08b8a2..65f12ec13 100644 --- a/test/client-side-encryption/spec/legacy/gcpKMS.json +++ b/test/client-side-encryption/spec/legacy/gcpKMS.json @@ -78,6 +78,17 @@ "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" } + }, + "encrypted_string_kmip_delegated": { + "encrypt": { + "keyId": [ + { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba6" + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } } }, "bsonType": "object" diff --git a/test/client-side-encryption/spec/legacy/kmipKMS.json b/test/client-side-encryption/spec/legacy/kmipKMS.json index 5749d21ab..349328b43 100644 --- a/test/client-side-encryption/spec/legacy/kmipKMS.json +++ b/test/client-side-encryption/spec/legacy/kmipKMS.json @@ -78,6 +78,17 @@ "bsonType": "string", "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" } + }, + "encrypted_string_kmip_delegated": { + "encrypt": { + "keyId": [ + { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba6" + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } } }, "bsonType": "object" @@ -117,6 +128,38 @@ "altname", "kmip_altname" ] + }, + { + "_id": { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba6" + }, + "keyMaterial": { + "$binary": { + "base64": "5TLMFWlguBWe5GUESTvOVtkdBsCrynhnV72XRyZ66/nk+EP9/1oEp1t1sg0+vwCTqULHjBiUE6DRx2mYD/Eup1+u2Jgz9/+1sV1drXeOPALNPkSgiZiDbIb67zRi+wTABEcKcegJH+FhmSGxwUoQAiHCsCbcvia5P8tN1lt98YQ=", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1634220190041" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1634220190041" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": "11" + }, + "keyAltNames": [ + "delegated" + ] } ], "tests": [ @@ -218,6 +261,102 @@ ] } } + }, + { + "description": "Insert a document with auto encryption using KMIP delegated KMS provider", + "clientOptions": { + "autoEncryptOpts": { + "kmsProviders": { + "kmip": {} + } + } + }, + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encrypted_string_kmip_delegated": "string0" + } + } + } + ], + "expectations": [ + { + "command_started_event": { + "command": { + "listCollections": 1, + "filter": { + "name": "default" + } + }, + "command_name": "listCollections" + } + }, + { + "command_started_event": { + "command": { + "find": "datakeys", + "filter": { + "$or": [ + { + "_id": { + "$in": [ + { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba6" + } + ] + } + }, + { + "keyAltNames": { + "$in": [] + } + } + ] + }, + "$db": "keyvault" + }, + "command_name": "find" + } + }, + { + "command_started_event": { + "command": { + "insert": "default", + "documents": [ + { + "_id": 1, + "encrypted_string_kmip_delegated": { + "$binary": { + "base64": "AXQR6a/GiE33gUNeYK6Wy6YCkB+8NVfAAjIbvLqyXIg6g1a8tXrym92DPoqmxpcdQyH0vQM3aFNMz7tZwQBimKs29ztZV/LWjM633HhO5ACl9A==", + "subType": "06" + } + } + } + ], + "ordered": true + }, + "command_name": "insert" + } + } + ], + "outcome": { + "collection": { + "data": [ + { + "_id": 1, + "encrypted_string_kmip_delegated": { + "$binary": { + "base64": "AXQR6a/GiE33gUNeYK6Wy6YCkB+8NVfAAjIbvLqyXIg6g1a8tXrym92DPoqmxpcdQyH0vQM3aFNMz7tZwQBimKs29ztZV/LWjM633HhO5ACl9A==", + "subType": "06" + } + } + } + ] + } + } } ] } diff --git a/test/client-side-encryption/spec/unified/createDataKey.json b/test/client-side-encryption/spec/unified/createDataKey.json index 110c726f9..f99fa3dbc 100644 --- a/test/client-side-encryption/spec/unified/createDataKey.json +++ b/test/client-side-encryption/spec/unified/createDataKey.json @@ -337,6 +337,70 @@ } ] }, + { + "description": "create datakey with KMIP delegated KMS provider", + "operations": [ + { + "name": "createDataKey", + "object": "clientEncryption0", + "arguments": { + "kmsProvider": "kmip", + "opts": { + "masterKey": { + "delegated": true + } + } + }, + "expectResult": { + "$$type": "binData" + } + } + ], + "expectEvents": [ + { + "client": "client0", + "events": [ + { + "commandStartedEvent": { + "databaseName": "keyvault", + "command": { + "insert": "datakeys", + "documents": [ + { + "_id": { + "$$type": "binData" + }, + "keyMaterial": { + "$$type": "binData" + }, + "creationDate": { + "$$type": "date" + }, + "updateDate": { + "$$type": "date" + }, + "status": { + "$$exists": true + }, + "masterKey": { + "provider": "kmip", + "keyId": { + "$$type": "string" + }, + "delegated": true + } + } + ], + "writeConcern": { + "w": "majority" + } + } + } + } + ] + } + ] + }, { "description": "create datakey with local KMS provider", "operations": [ diff --git a/test/client-side-encryption/spec/unified/rewrapManyDataKey.json b/test/client-side-encryption/spec/unified/rewrapManyDataKey.json index 6b3c9664a..8803491db 100644 --- a/test/client-side-encryption/spec/unified/rewrapManyDataKey.json +++ b/test/client-side-encryption/spec/unified/rewrapManyDataKey.json @@ -246,6 +246,36 @@ "masterKey": { "provider": "local" } + }, + { + "_id": { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba5" + }, + "keyAltNames": [ + "kmip_delegated_key" + ], + "keyMaterial": { + "$binary": { + "base64": "5TLMFWlguBWe5GUESTvOVtkdBsCrynhnV72XRyZ66/nk+EP9/1oEp1t1sg0+vwCTqULHjBiUE6DRx2mYD/Eup1+u2Jgz9/+1sV1drXeOPALNPkSgiZiDbIb67zRi+wTABEcKcegJH+FhmSGxwUoQAiHCsCbcvia5P8tN1lt98YQ=", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1641024000000" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1641024000000" + } + }, + "status": 1, + "masterKey": { + "provider": "kmip", + "keyId": "11", + "delegated": true + } } ] } @@ -317,8 +347,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 4, - "modifiedCount": 4, + "matchedCount": 5, + "modifiedCount": 5, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -440,6 +470,34 @@ "$$unsetOrMatches": false } }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "aws", + "key": "arn:aws:kms:us-east-1:579766882180:key/061334ae-07a8-4ceb-a813-8135540e837d", + "region": "us-east-1" + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, { "q": { "_id": { @@ -502,8 +560,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 4, - "modifiedCount": 4, + "matchedCount": 5, + "modifiedCount": 5, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -625,6 +683,34 @@ "$$unsetOrMatches": false } }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "azure", + "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", + "keyName": "key-name-csfle" + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, { "q": { "_id": { @@ -689,8 +775,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 4, - "modifiedCount": 4, + "matchedCount": 5, + "modifiedCount": 5, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -818,6 +904,36 @@ "$$unsetOrMatches": false } }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "gcp", + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle" + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, { "q": { "_id": { @@ -878,8 +994,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 4, - "modifiedCount": 4, + "matchedCount": 5, + "modifiedCount": 5, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -1032,6 +1148,257 @@ "upsert": { "$$unsetOrMatches": false } + }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + } + ], + "writeConcern": { + "w": "majority" + } + } + } + } + ] + } + ] + }, + { + "description": "rewrap with new KMIP delegated KMS provider", + "operations": [ + { + "name": "rewrapManyDataKey", + "object": "clientEncryption0", + "arguments": { + "filter": { + "keyAltNames": { + "$ne": "kmip_delegated_key" + } + }, + "opts": { + "provider": "kmip", + "masterKey": { + "delegated": true + } + } + }, + "expectResult": { + "bulkWriteResult": { + "insertedCount": 0, + "matchedCount": 5, + "modifiedCount": 5, + "deletedCount": 0, + "upsertedCount": 0, + "upsertedIds": {}, + "insertedIds": { + "$$unsetOrMatches": {} + } + } + } + } + ], + "expectEvents": [ + { + "client": "client0", + "events": [ + { + "commandStartedEvent": { + "databaseName": "keyvault", + "command": { + "find": "datakeys", + "filter": { + "keyAltNames": { + "$ne": "kmip_delegated_key" + } + }, + "readConcern": { + "level": "majority" + } + } + } + }, + { + "commandStartedEvent": { + "databaseName": "keyvault", + "command": { + "update": "datakeys", + "ordered": true, + "updates": [ + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "kmip", + "delegated": true, + "keyId": { + "$$type": "string" + } + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } } ], "writeConcern": { @@ -1063,8 +1430,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 4, - "modifiedCount": 4, + "matchedCount": 5, + "modifiedCount": 5, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -1180,6 +1547,32 @@ "$$unsetOrMatches": false } }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "provider": "local" + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, { "q": { "_id": { @@ -1229,8 +1622,8 @@ "expectResult": { "bulkWriteResult": { "insertedCount": 0, - "matchedCount": 5, - "modifiedCount": 5, + "matchedCount": 6, + "modifiedCount": 6, "deletedCount": 0, "upsertedCount": 0, "upsertedIds": {}, @@ -1294,6 +1687,16 @@ "keyName": "key-name-csfle" } }, + { + "_id": { + "$uuid": "7411e9af-c688-4df7-8143-5e60ae96cba5" + }, + "masterKey": { + "provider": "kmip", + "keyId": "11", + "delegated": true + } + }, { "_id": { "$binary": { @@ -1447,6 +1850,32 @@ "$$unsetOrMatches": false } }, + { + "q": { + "_id": { + "$$type": "binData" + } + }, + "u": { + "$set": { + "masterKey": { + "$$type": "object" + }, + "keyMaterial": { + "$$type": "binData" + } + }, + "$currentDate": { + "updateDate": true + } + }, + "multi": { + "$$unsetOrMatches": false + }, + "upsert": { + "$$unsetOrMatches": false + } + }, { "q": { "_id": { diff --git a/test/test_encryption.py b/test/test_encryption.py index 0e232f440..585847b10 100644 --- a/test/test_encryption.py +++ b/test/test_encryption.py @@ -2602,11 +2602,10 @@ class TestQueryableEncryptionDocsExample(EncryptionIntegrationTest): client_encryption.close() -# https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/tests/README.rst#range-explicit-encryption +# https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/tests/README.md#22-range-explicit-encryption class TestRangeQueryProse(EncryptionIntegrationTest): @client_context.require_no_standalone - @client_context.require_version_min(7, 0, -1) - @client_context.require_version_max(7, 9, 99) + @client_context.require_version_min(8, 0, -1) def setUp(self): super().setUp() self.key1_document = json_data("etc", "data", "keys", "key1-document.json") @@ -2634,8 +2633,8 @@ class TestRangeQueryProse(EncryptionIntegrationTest): find_payload = self.client_encryption.encrypt_expression( expression=expression, key_id=key_id or self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, - query_type=QueryType.RANGEPREVIEW, + algorithm=Algorithm.RANGE, + query_type=QueryType.RANGE, contention_factor=0, range_opts=range_opts, ) @@ -2656,7 +2655,7 @@ class TestRangeQueryProse(EncryptionIntegrationTest): return self.client_encryption.encrypt( cast_func(i), key_id=self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, + algorithm=Algorithm.RANGE, contention_factor=0, range_opts=range_opts, ) @@ -2668,7 +2667,7 @@ class TestRangeQueryProse(EncryptionIntegrationTest): insert_payload = self.client_encryption.encrypt( cast_func(6), key_id=self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, + algorithm=Algorithm.RANGE, contention_factor=0, range_opts=range_opts, ) @@ -2735,7 +2734,7 @@ class TestRangeQueryProse(EncryptionIntegrationTest): self.client_encryption.encrypt( cast_func(201), key_id=self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, + algorithm=Algorithm.RANGE, contention_factor=0, range_opts=range_opts, ) @@ -2747,7 +2746,7 @@ class TestRangeQueryProse(EncryptionIntegrationTest): self.client_encryption.encrypt( 6 if cast_func != int else float(6), key_id=self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, + algorithm=Algorithm.RANGE, contention_factor=0, range_opts=range_opts, ) @@ -2762,44 +2761,54 @@ class TestRangeQueryProse(EncryptionIntegrationTest): self.client_encryption.encrypt( cast_func(6), key_id=self.key1_id, - algorithm=Algorithm.RANGEPREVIEW, + algorithm=Algorithm.RANGE, contention_factor=0, range_opts=RangeOpts( - min=cast_func(0), max=cast_func(200), sparsity=1, precision=2 + min=cast_func(0), + max=cast_func(200), + sparsity=1, + trim_factor=1, + precision=2, ), ) def test_double_no_precision(self): - self.run_test_cases("DoubleNoPrecision", RangeOpts(sparsity=1), float) + self.run_test_cases("DoubleNoPrecision", RangeOpts(sparsity=1, trim_factor=1), float) def test_double_precision(self): self.run_test_cases( "DoublePrecision", - RangeOpts(min=0.0, max=200.0, sparsity=1, precision=2), + RangeOpts(min=0.0, max=200.0, sparsity=1, trim_factor=1, precision=2), float, ) def test_decimal_no_precision(self): self.run_test_cases( - "DecimalNoPrecision", RangeOpts(sparsity=1), lambda x: Decimal128(str(x)) + "DecimalNoPrecision", RangeOpts(sparsity=1, trim_factor=1), lambda x: Decimal128(str(x)) ) def test_decimal_precision(self): self.run_test_cases( "DecimalPrecision", - RangeOpts(min=Decimal128("0.0"), max=Decimal128("200.0"), sparsity=1, precision=2), + RangeOpts( + min=Decimal128("0.0"), + max=Decimal128("200.0"), + sparsity=1, + trim_factor=1, + precision=2, + ), lambda x: Decimal128(str(x)), ) def test_datetime(self): self.run_test_cases( "Date", - RangeOpts(min=DatetimeMS(0), max=DatetimeMS(200), sparsity=1), + RangeOpts(min=DatetimeMS(0), max=DatetimeMS(200), sparsity=1, trim_factor=1), lambda x: DatetimeMS(x).as_datetime(), ) def test_int(self): - self.run_test_cases("Int", RangeOpts(min=0, max=200, sparsity=1), int) + self.run_test_cases("Int", RangeOpts(min=0, max=200, sparsity=1, trim_factor=1), int) # https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/tests/README.rst#automatic-data-encryption-keys From 5dd6ffbbb8ce3b4959dee71518a23e4f4d585b14 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Wed, 12 Jun 2024 11:02:19 -0700 Subject: [PATCH 2/7] PYTHON-4347 Improve performance by only calling get_topology once (#1673) --- pymongo/asynchronous/mongo_client.py | 9 ++++++--- pymongo/synchronous/mongo_client.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pymongo/asynchronous/mongo_client.py b/pymongo/asynchronous/mongo_client.py index 8319755d0..2f13b92c6 100644 --- a/pymongo/asynchronous/mongo_client.py +++ b/pymongo/asynchronous/mongo_client.py @@ -854,6 +854,7 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): server_monitoring_mode=options.server_monitoring_mode, ) + self._opened = False self._init_background() if _IS_SYNC and connect: @@ -1528,9 +1529,11 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): If this client was created with "connect=False", calling _get_topology launches the connection process in the background. """ - await self._topology.open() - async with self._lock: - self._kill_cursors_executor.open() + if not self._opened: + await self._topology.open() + async with self._lock: + self._kill_cursors_executor.open() + self._opened = True return self._topology @contextlib.asynccontextmanager diff --git a/pymongo/synchronous/mongo_client.py b/pymongo/synchronous/mongo_client.py index 69bfa7a9d..20d1b3f82 100644 --- a/pymongo/synchronous/mongo_client.py +++ b/pymongo/synchronous/mongo_client.py @@ -853,6 +853,7 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): server_monitoring_mode=options.server_monitoring_mode, ) + self._opened = False self._init_background() if _IS_SYNC and connect: @@ -1527,9 +1528,11 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): If this client was created with "connect=False", calling _get_topology launches the connection process in the background. """ - self._topology.open() - with self._lock: - self._kill_cursors_executor.open() + if not self._opened: + self._topology.open() + with self._lock: + self._kill_cursors_executor.open() + self._opened = True return self._topology @contextlib.contextmanager From 6715cd3ba47755bffa107136e085e76c86efd0af Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Wed, 12 Jun 2024 11:07:35 -0700 Subject: [PATCH 3/7] BUMP 4.9.0.dev0 (#1672) --- doc/changelog.rst | 25 ++++++++++++++++++++++++- pymongo/_version.py | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/doc/changelog.rst b/doc/changelog.rst index 7da4b2457..da52dab47 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -1,6 +1,22 @@ Changelog ========= +Changes in Version 4.9.0 +------------------------- + +PyMongo 4.9 brings a number of improvements including: + +- A new asynchronous API with full asyncio support. + +Issues Resolved +............... + +See the `PyMongo 4.9 release notes in JIRA`_ for the list of resolved issues +in this release. + +.. _PyMongo 4.9 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=39940 + + Changes in Version 4.8.0 ------------------------- @@ -10,7 +26,6 @@ PyMongo 4.8 brings a number of improvements including: - The handshake metadata for "os.name" on Windows has been simplified to "Windows" to improve import time. - The repr of ``bson.binary.Binary`` is now redacted when the subtype is SENSITIVE_SUBTYPE(8). -- A new asynchronous API with full asyncio support. Unavoidable breaking changes ............................ @@ -18,6 +33,14 @@ Unavoidable breaking changes - Since we are now using ``hatch`` as our build backend, we no longer have a ``setup.py`` file and require installation using ``pip``. +Issues Resolved +............... + +See the `PyMongo 4.8 release notes in JIRA`_ for the list of resolved issues +in this release. + +.. _PyMongo 4.8 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=37057 + Changes in Version 4.7.3 ------------------------- diff --git a/pymongo/_version.py b/pymongo/_version.py index bc7653c26..537a340cc 100644 --- a/pymongo/_version.py +++ b/pymongo/_version.py @@ -18,7 +18,7 @@ from __future__ import annotations import re from typing import List, Tuple, Union -__version__ = "4.8.0.dev1" +__version__ = "4.9.0.dev0" def get_version_tuple(version: str) -> Tuple[Union[int, str], ...]: From 4ec79fbde7fc91f3a3c54b89242abf9563e3f772 Mon Sep 17 00:00:00 2001 From: Esa Jokinen <58781154+oh2fih@users.noreply.github.com> Date: Wed, 12 Jun 2024 21:09:57 +0300 Subject: [PATCH 4/7] PYTHON-4492 Fallback to stdlib ssl when pyopenssl import fails with AttributeError (#1669) --- pymongo/ssl_support.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pymongo/ssl_support.py b/pymongo/ssl_support.py index 849fbf701..6a5dd278d 100644 --- a/pymongo/ssl_support.py +++ b/pymongo/ssl_support.py @@ -15,6 +15,7 @@ """Support for SSL in PyMongo.""" from __future__ import annotations +import warnings from typing import Optional from pymongo.errors import ConfigurationError @@ -23,7 +24,17 @@ HAVE_SSL = True try: import pymongo.pyopenssl_context as _ssl -except ImportError: +except (ImportError, AttributeError) as exc: + if isinstance(exc, AttributeError): + warnings.warn( + "Failed to use the installed version of PyOpenSSL. " + "Falling back to stdlib ssl, disabling OCSP support. " + "This is likely caused by incompatible versions " + "of PyOpenSSL < 23.2.0 and cryptography >= 42.0.0. " + "Try updating PyOpenSSL >= 23.2.0 to enable OCSP.", + UserWarning, + stacklevel=2, + ) try: import pymongo.ssl_context as _ssl # type: ignore[no-redef] except ImportError: From 9a980202f817f02b652078408ebe2d842eb3612b Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Wed, 12 Jun 2024 13:55:58 -0700 Subject: [PATCH 5/7] PYTHON-4348 PYTHON-4455 Fix missing changes from async beta merge (#1674) --- pymongo/asynchronous/mongo_client.py | 13 +++++++------ pymongo/asynchronous/pool.py | 13 +++++++------ pymongo/synchronous/mongo_client.py | 11 +++++------ pymongo/synchronous/pool.py | 13 +++++++------ 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/pymongo/asynchronous/mongo_client.py b/pymongo/asynchronous/mongo_client.py index 2f13b92c6..ae1a63009 100644 --- a/pymongo/asynchronous/mongo_client.py +++ b/pymongo/asynchronous/mongo_client.py @@ -902,7 +902,7 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): def _after_fork(self) -> None: """Resets topology in a child after successfully forking.""" - self._init_background() + self._init_background(self._topology._pid) # Reset the session pool to avoid duplicate sessions in the child process. self._topology._session_pool.reset() @@ -1383,7 +1383,9 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): the server may change. In such cases, store a local reference to a ServerDescription first, then use its properties. """ - server = await self._topology.select_server(writable_server_selector, _Op.TEST) + server = await (await self._get_topology()).select_server( + writable_server_selector, _Op.TEST + ) return getattr(server.description, attr_name) @@ -1634,9 +1636,9 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): # always send primaryPreferred when directly connected to a repl set # member. # Thread safe: if the type is single it cannot change. - topology = await self._get_topology() - single = topology.description.topology_type == TOPOLOGY_TYPE.Single - + # NOTE: We already opened the Topology when selecting a server so there's no need + # to call _get_topology() again. + single = self._topology.description.topology_type == TOPOLOGY_TYPE.Single async with self._checkout(server, session) as conn: if single: if conn.is_repl and not (session and session.in_transaction): @@ -1655,7 +1657,6 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): operation: str, ) -> AsyncContextManager[tuple[Connection, _ServerMode]]: assert read_preference is not None, "read_preference must not be None" - _ = await self._get_topology() server = await self._select_server(read_preference, session, operation) return self._conn_from_server(read_preference, server, session) diff --git a/pymongo/asynchronous/pool.py b/pymongo/asynchronous/pool.py index df0fb636e..156da7b77 100644 --- a/pymongo/asynchronous/pool.py +++ b/pymongo/asynchronous/pool.py @@ -216,13 +216,14 @@ elif sys.platform == "darwin": "version": platform.mac_ver()[0], } elif sys.platform == "win32": + _ver = sys.getwindowsversion() _METADATA["os"] = { - "type": platform.system(), - # "Windows XP", "Windows 7", "Windows 10", etc. - "name": " ".join((platform.system(), platform.release())), - "architecture": platform.machine(), - # Windows patch level (e.g. 5.1.2600-SP3) - "version": "-".join(platform.win32_ver()[1:3]), + "type": "Windows", + "name": "Windows", + # Avoid using platform calls, see PYTHON-4455. + "architecture": os.environ.get("PROCESSOR_ARCHITECTURE") or platform.machine(), + # Windows patch level (e.g. 10.0.17763-SP0). + "version": ".".join(map(str, _ver[:3])) + f"-SP{_ver[-1] or '0'}", } elif sys.platform.startswith("java"): _name, _ver, _arch = platform.java_ver()[-1] diff --git a/pymongo/synchronous/mongo_client.py b/pymongo/synchronous/mongo_client.py index 20d1b3f82..5c6efe15d 100644 --- a/pymongo/synchronous/mongo_client.py +++ b/pymongo/synchronous/mongo_client.py @@ -901,7 +901,7 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): def _after_fork(self) -> None: """Resets topology in a child after successfully forking.""" - self._init_background() + self._init_background(self._topology._pid) # Reset the session pool to avoid duplicate sessions in the child process. self._topology._session_pool.reset() @@ -1382,7 +1382,7 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): the server may change. In such cases, store a local reference to a ServerDescription first, then use its properties. """ - server = self._topology.select_server(writable_server_selector, _Op.TEST) + server = (self._get_topology()).select_server(writable_server_selector, _Op.TEST) return getattr(server.description, attr_name) @@ -1633,9 +1633,9 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): # always send primaryPreferred when directly connected to a repl set # member. # Thread safe: if the type is single it cannot change. - topology = self._get_topology() - single = topology.description.topology_type == TOPOLOGY_TYPE.Single - + # NOTE: We already opened the Topology when selecting a server so there's no need + # to call _get_topology() again. + single = self._topology.description.topology_type == TOPOLOGY_TYPE.Single with self._checkout(server, session) as conn: if single: if conn.is_repl and not (session and session.in_transaction): @@ -1654,7 +1654,6 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): operation: str, ) -> ContextManager[tuple[Connection, _ServerMode]]: assert read_preference is not None, "read_preference must not be None" - _ = self._get_topology() server = self._select_server(read_preference, session, operation) return self._conn_from_server(read_preference, server, session) diff --git a/pymongo/synchronous/pool.py b/pymongo/synchronous/pool.py index 391db4e7a..3918116ba 100644 --- a/pymongo/synchronous/pool.py +++ b/pymongo/synchronous/pool.py @@ -216,13 +216,14 @@ elif sys.platform == "darwin": "version": platform.mac_ver()[0], } elif sys.platform == "win32": + _ver = sys.getwindowsversion() _METADATA["os"] = { - "type": platform.system(), - # "Windows XP", "Windows 7", "Windows 10", etc. - "name": " ".join((platform.system(), platform.release())), - "architecture": platform.machine(), - # Windows patch level (e.g. 5.1.2600-SP3) - "version": "-".join(platform.win32_ver()[1:3]), + "type": "Windows", + "name": "Windows", + # Avoid using platform calls, see PYTHON-4455. + "architecture": os.environ.get("PROCESSOR_ARCHITECTURE") or platform.machine(), + # Windows patch level (e.g. 10.0.17763-SP0). + "version": ".".join(map(str, _ver[:3])) + f"-SP{_ver[-1] or '0'}", } elif sys.platform.startswith("java"): _name, _ver, _arch = platform.java_ver()[-1] From 6f8a22d7d4d01fae6364a8cb7cf3a8262bfe7e0c Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 12 Jun 2024 19:13:55 -0500 Subject: [PATCH 6/7] PYTHON-4497 Fix handling of Python executable in run-tests (#1677) --- .evergreen/run-tests.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 2d9a7d4e2..d47e3a950 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -31,9 +31,6 @@ set -o xtrace AUTH=${AUTH:-noauth} SSL=${SSL:-nossl} TEST_ARGS="${*:1}" -PYTHON=$(which python) -# TODO: Remove when we drop PyPy 3.8 support. -OLD_PYPY=$(python -c "import sys; print(sys.implementation.name.lower() == 'pypy' and sys.implementation.version < (7, 3, 12))") export PIP_QUIET=1 # Quiet by default export PIP_PREFER_BINARY=1 # Prefer binary dists by default @@ -113,10 +110,6 @@ fi if [ "$COMPRESSORS" = "snappy" ]; then python -m pip install '.[snappy]' - if [ "$OLD_PYPY" == "True" ]; then - pip install "python-snappy<0.7.0" - fi - PYTHON=python elif [ "$COMPRESSORS" = "zstd" ]; then python -m pip install zstandard fi @@ -237,7 +230,7 @@ if [ -n "$PERF_TEST" ]; then TEST_ARGS="test/performance/perf_test.py" fi -echo "Running $AUTH tests over $SSL with python $PYTHON" +echo "Running $AUTH tests over $SSL with python $(which python)" python -c 'import sys; print(sys.version)' @@ -246,7 +239,7 @@ python -c 'import sys; print(sys.version)' # Run the tests with coverage if requested and coverage is installed. # Only cover CPython. PyPy reports suspiciously low coverage. -PYTHON_IMPL=$($PYTHON -c "import platform; print(platform.python_implementation())") +PYTHON_IMPL=$(python -c "import platform; print(platform.python_implementation())") if [ -n "$COVERAGE" ] && [ "$PYTHON_IMPL" = "CPython" ]; then # Keep in sync with combine-coverage.sh. # coverage >=5 is needed for relative_files=true. From 48bdbfd2782ad58b7270f77106e7cac6ced938b7 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Thu, 13 Jun 2024 14:35:10 -0700 Subject: [PATCH 7/7] PYTHON-4347 Ensure client can be opened after fork() (#1681) --- pymongo/asynchronous/mongo_client.py | 1 + pymongo/synchronous/mongo_client.py | 1 + 2 files changed, 2 insertions(+) diff --git a/pymongo/asynchronous/mongo_client.py b/pymongo/asynchronous/mongo_client.py index ae1a63009..9fc26bd92 100644 --- a/pymongo/asynchronous/mongo_client.py +++ b/pymongo/asynchronous/mongo_client.py @@ -896,6 +896,7 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]): # this closure. When the client is freed, stop the executor soon. self_ref: Any = weakref.ref(self, executor.close) self._kill_cursors_executor = executor + self._opened = False def _should_pin_cursor(self, session: Optional[ClientSession]) -> Optional[bool]: return self._options.load_balanced and not (session and session.in_transaction) diff --git a/pymongo/synchronous/mongo_client.py b/pymongo/synchronous/mongo_client.py index 5c6efe15d..92bd95034 100644 --- a/pymongo/synchronous/mongo_client.py +++ b/pymongo/synchronous/mongo_client.py @@ -895,6 +895,7 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]): # this closure. When the client is freed, stop the executor soon. self_ref: Any = weakref.ref(self, executor.close) self._kill_cursors_executor = executor + self._opened = False def _should_pin_cursor(self, session: Optional[ClientSession]) -> Optional[bool]: return self._options.load_balanced and not (session and session.in_transaction)