Summary
Support and test Queryable Encryption (QE) with Client.bulkWrite.
Motivation
DRIVERS-716 adds driver API Client.bulkWrite for the bulkWrite command. MONGOCRYPT-588 adds support to libmongocrypt for processing the bulkWrite command.
https://github.com/mongodb/libmongocrypt/pull/745 describes expected server limitations: CSFLE is not supported. Multiple namespaces are not supported. Due to these limitations, Client.bulkWrite with QE is not yet expected to outperform Collection.bulkWrite.
Who is the affected end user?
Users wanting to use the new Client.bulkWrite API with QE.
How does this affect the end user?
Without this change, users would be required to continue using Collection.bulkWrite to use QE with bulk writes. This may be an unexpected gap in functionality.
How likely is it that this problem or use case will occur?
Not sure.
Is this issue urgent?
I prefer this be done with DRIVERS-716 for completeness. The work in libmongocrypt is already done in MONGOCRYPT-588. But I expect this can be deferred without significant user impact.
Is this ticket required by a downstream team?
No?
Is this ticket only for tests?
No. Drivers will also need to upgrade to libmongocrypt 1.10.0, and support the new MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB state.
Acceptance Criteria
Test QE works with Client.bulkWrite with the models: insertOne, updateOne, deleteOne, and deleteMany.
- related to
-
DRIVERS-716 Improved Bulk Write API
- In Progress
- split to
-
CDRIVER-5780 Support QE with Client.bulkWrite
- Blocked
-
CSHARP-5384 Support QE with Client.bulkWrite
- Blocked
-
CXX-3145 Support QE with Client.bulkWrite
- Blocked
-
GODRIVER-3403 Support QE with Client.bulkWrite
- Blocked
-
JAVA-5675 Support QE with Client.bulkWrite
- Blocked
-
MOTOR-1395 Support QE with Client.bulkWrite
- Blocked
-
NODE-6479 Support QE with Client.bulkWrite
- Blocked
-
PHPLIB-1572 Support QE with Client.bulkWrite
- Blocked
-
PYTHON-4929 Support QE with Client.bulkWrite
- Blocked
-
RUBY-3575 Support QE with Client.bulkWrite
- Blocked
-
RUST-2078 Support QE with Client.bulkWrite
- Blocked