DRIVERS-1950:
Note: the following instructions do not account for the rename of the shared library. Please also see DRIVERS-2338.
The csfle shared library is a new component that replaces the mongocryptd process. csfle is loaded by libmongocrypt at runtime.
Please see the following specifications PRs for a description of the driver changes:
Please see the C driver implementation for reference.
Bindings changes
Upgrade libmongocrypt dependency to 1.5.0. Drivers can use 1.5.0-alpha0 to test. Binaries are available from this upload-all task.
Update the bindings to libmongocrypt to add the new functions:
- mongocrypt_csfle_version_string
- mongocrypt_csfle_version
- mongocrypt_setopt_append_csfle_search_path
- mongocrypt_setopt_set_csfle_lib_path_override
Driver changes
Pass AutoEncryptionOpts.extraOptions.csflePath to libmongocrypt with {} mongocrypt_setopt_set_crypt_shared_lib_path_override.
If AutoEncryptionOpts.bypassAutoEncryption is unset or false, pass "$SYSTEM" to mongocrypt_setopt_append_csfle_search_path for the mongocrypt_t in a MongoClient configured with AutoEncryptionOpts.
If AutoEncryptionOpts.extraOptions.csfleRequired is true, error if csfle is not loaded. Determine if csfle is loaded by checking if mongocrypt_csfle_version_string is NULL.
Do not attempt to spawn mongocryptd if csfle is loaded.
Test changes
Please see https://github.com/mongodb/specifications/pull/1199 for a description of test changes.
Please see https://github.com/mongodb-labs/drivers-evergreen-tools/pull/196 for a script to download the csfle shared library.