Skip to content

MongoDB C++11 Driver r3.8.0

Compare
Choose a tag to compare
@kevinAlbs kevinAlbs released this 21 Jun 14:19
· 298 commits to master since this release
2e645d0

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.