MongoDB C++11 Driver r3.8.0
Release Notes - C++ Driver - Version 3.8.0
What's New
- Support MongoDB server version 6.0 and 7.0
- Support C++20 language standard
- Support updated Queryable Encryption protocol
- Introduces backwards breaking changes to the Queryable Encryption protocol. Using Queryable Encryption now requires MongoDB server version 7.0+.
- Support new Queryable Encryption features
- Add client_encryption::create_encrypted_collection to automatically create data encryption keys when creating a new encrypted collection.
- Support new security features
- Add ability to fetch KMS credentials automatically from Azure, GCP, and AWS environments.
- Support authentication with KMS AWS temporary credentials.
- Cache fetched AWS credentials.
- Support AWS IAM Roles for service accounts, EKS in particular.
- Add srvMaxHosts option to limit the number of mongos servers used in connecting to sharded clusters.
- Retry operations if the connection handshake fails.
Dependency updates
- Minimum C Driver (libmongoc) version bumped to 1.24.0.
Deprecations and Removals
Support for below operating systems will be dropped in an upcoming release.
- macOS 10.14
- macOS 10.15
- Ubuntu 14.04
Bug
- [CXX-2451] - Kerberos on Windows should not pass username to SSPI when password is not set
- [CXX-2548] - Disable causal consistency in implicit sessions
- [CXX-2599] - Error if RewrapManyDataKey is called with masterKey and without provider
- [CXX-2670] - options::aggregate::append ignores readConcern
New Feature
- [CXX-2307] - Add native support for AWS IAM Roles for service accounts, EKS in particular
- [CXX-2318] - Provide options to limit number of mongos servers used in connecting to sharded clusters
- [CXX-2425] - Key Management API
- [CXX-2474] - Add ClientEncryption entity and Key Management API operations to Unified Test Format
- [CXX-2496] - Add Queryable Encryption behavior for CreateCollection() and Collection.Drop()
- [CXX-2500] - Add Queryable Encryption API to AutoEncryptionOpts
- [CXX-2502] - Add Queryable Encryption API to ClientEncryptionOpts
- [CXX-2508] - Obtain AWS credentials for CSFLE in the same way as for MONGODB-AWS
- [CXX-2546] - Automatically create Queryable Encryption keys
- [CXX-2554] - Cache AWS Credentials Where Possible
Improvement
- [CXX-1712] - Overload bsoncxx::to_json to accept a bsoncxx::array::view
- [CXX-2172] - Support AWS authentication with temporary credentials in CSFLE
- [CXX-2284] - Append platform data to handshake
- [CXX-2344] - Use OP_MSG to authenticate if server supports OP_MSG
- [CXX-2393] - Drivers should retry operations if connection handshake fails
- [CXX-2394] - Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY
- [CXX-2433] - Support In-Use Encryption Shared Library
- [CXX-2441] - Add example of iterating change stream indefinitely
- [CXX-2490] - Make allowDiskUse opt-out rather than opt-in in 6.0
- [CXX-2491] - Clustered Indexes for all Collections
- [CXX-2517] - Support for Range Indexes
- [CXX-2527] - Reduce expected removeKeyAltName operations to a single findOneAndUpdate
- [CXX-2528] - Ensure "does not fail" in CSE Prose Test 13 accounts for (no) matching documents
- [CXX-2534] - Allow RewrapManyDataKeyResult.bulkWriteResult to be optional
- [CXX-2551] - Add support for GCP attached service accounts when using GCP KMS
- [CXX-2562] - Error if RewrapManyDataKey is called with libmongocrypt < 1.5.2
- [CXX-2565] - Support the Azure VM-assigned Managed Identity for Automatic KMS Credentials
- [CXX-2610] - Improve test coverage for retryable handshake errors
- [CXX-2637] - Deprecate currentOp/collStats commands by 7.0
- [CXX-2642] - Drivers should not create the ECC collection in v2 of queryable encryption
- [CXX-2664] - Bump maxWireVersion for MongoDB 7.0
See full list of changes in JIRA.
Reporting Issues
Think you’ve found a bug? Want to see a new feature in the C++ Driver? Please open a case in our issue management tool, Jira:- Create an account and login.
- Navigate to the CXX project.
- Click Create Issue. Please provide as much information as possible about the issue type and how to reproduce it.
- Bug reports in Jira for all driver projects (i.e. CXX, CDRIVER etc) and the Core Server (i.e. SERVER) projects are public.