Skip to content

CXX-2828 QE Range Protocol V2 #1162

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 64 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
cbf2971
sync spec tests
adriandole Jun 11, 2024
99901fc
prefer crypt_shared for spec tests
adriandole Jun 12, 2024
da7bac8
update libmongoc to 1.27
adriandole Jun 12, 2024
91dcae4
Don't use crypt_shared, evergreen doesn't like it
adriandole Jun 13, 2024
57b3a61
update sbom
adriandole Jun 20, 2024
647e715
C driver 1.27 changelog
adriandole Jun 20, 2024
b920212
range v2 rename
adriandole Jun 25, 2024
5c44ca3
sync spec tests
adriandole Jun 25, 2024
149ed13
range data files
adriandole Jun 25, 2024
74278ae
replace rangePreview with range
adriandole Jun 25, 2024
0160af1
Download 1.28.0
adriandole Jul 9, 2024
562e62d
bump mongoc
adriandole Jul 10, 2024
c1e98f6
bump evergreen mongoc version
adriandole Jul 10, 2024
294e48f
bson 1.28
adriandole Sep 12, 2024
9c08313
range docstrings
adriandole Sep 12, 2024
209a8f0
C driver 1.28 documentation
adriandole Sep 12, 2024
3b7367c
range prose test requires 8.0
adriandole Sep 12, 2024
f3289b0
bump C driver
adriandole Sep 13, 2024
9ecf8ba
Bump 'latest' variant to Debian 12
adriandole Sep 13, 2024
5093a30
remove debian 10 latest
adriandole Sep 13, 2024
47dd63a
debian 12 compile fix?!
adriandole Sep 13, 2024
3c2a493
debian fix attempt 2
adriandole Sep 16, 2024
fd0af47
another gcc 12 fix
adriandole Sep 16, 2024
305c457
gcc 12 fixes
adriandole Sep 16, 2024
52c150f
more
adriandole Sep 16, 2024
39912ef
move fix
adriandole Sep 18, 2024
1554ca2
+1
adriandole Sep 18, 2024
9f2df65
+1
adriandole Sep 18, 2024
1419741
disable flag on debian 12
adriandole Sep 18, 2024
233eb69
shell script is the worst """language"""
adriandole Sep 18, 2024
b6713d6
evg version bump
adriandole Sep 19, 2024
73068a4
uninitialized warning fix
adriandole Sep 23, 2024
f99d34b
enable cse in evg compile
adriandole Sep 23, 2024
33edfc8
wrong name
adriandole Sep 23, 2024
9c1514b
separate libmongocrypt evg script
adriandole Sep 23, 2024
7101937
libmongocrypt symbols
adriandole Sep 24, 2024
e3fc6bb
test file listing
adriandole Sep 24, 2024
15f80e5
set trimFactor
adriandole Sep 25, 2024
696f51b
import mongoc trim factor
adriandole Sep 25, 2024
9b1e0c0
trimFactor is i32
adriandole Sep 25, 2024
e1e88cc
snake case
adriandole Sep 25, 2024
d4cfbd6
apply trim factor in prose tests
adriandole Sep 25, 2024
d9c4482
update payloads to include trimFactor and sparsity
adriandole Sep 26, 2024
c1881b6
Revert "separate libmongocrypt evg script"
adriandole Sep 27, 2024
f75bdf6
Reapply "separate libmongocrypt evg script"
adriandole Sep 27, 2024
949c6ce
formatting
adriandole Sep 27, 2024
d7c19c3
prose test 23
adriandole Sep 27, 2024
5ba6719
server 8.0 required for prose test 23
adriandole Sep 28, 2024
2f9ec28
Revert "Reapply "separate libmongocrypt evg script""
adriandole Sep 30, 2024
d31fdd2
client_side_encryption flag not used by C++
adriandole Sep 30, 2024
50afab0
C driver 1.28 released
adriandole Sep 30, 2024
9957d8d
update `purls.txt` and regenerate SBOM
kevinAlbs Sep 30, 2024
8053c46
update references to required C driver version
kevinAlbs Oct 1, 2024
c04ae46
update CHANGELOG
kevinAlbs Oct 1, 2024
c6dff6e
add comment for not erroring on `restrict`
kevinAlbs Oct 1, 2024
b5e171b
remove experimental warning
kevinAlbs Oct 1, 2024
055d8ec
include `trimFactor` in `range` docs reference
kevinAlbs Oct 1, 2024
863c3b5
add new files to list
kevinAlbs Oct 1, 2024
b908101
update fle2v2-Compact
kevinAlbs Oct 1, 2024
9fea8c2
Merge branch 'master' into merged.review.rangev2
kevinAlbs Oct 1, 2024
0d05d0d
do not error for maybe-uninitialized on RHEL 7
kevinAlbs Oct 1, 2024
886a198
remove no-longer-needed `-Wno-unused-parameter`
kevinAlbs Oct 1, 2024
d9b83ff
apply fix to C flags, not C++ flags
kevinAlbs Oct 1, 2024
8c07a6d
remove rangePreview in comments
adriandole Oct 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .evergreen/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,12 @@ linux*)
if [[ "${distro_id:?}" != rhel7* ]]; then
cxx_flags+=("-Wno-expansion-to-defined")
else
cxx_flags+=("-Wno-unused-parameter") # TODO: remove once C driver is upgraded to include fix of CDRIVER-5673.
cc_flags+=("-Wno-maybe-uninitialized") # Ignore false-positive warning in C driver build.
fi

if [[ "${distro_id:?}" == debian12* ]]; then
# Disable `restrict` warning on GCC 12 due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105651 and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329
cxx_flags+=("-Wno-error=restrict")
fi
;;
*)
Expand Down
26 changes: 5 additions & 21 deletions .mci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ variables:
# If updating mongoc_version_minimum, also update:
# - the default value of --c-driver-build-ref in etc/make_release.py
# - LIBMONGOC_REQUIRED_VERSION in src/mongocxx/CMakeLists.txt
mongoc_version_minimum: &mongoc_version_minimum "1.25.0"
# - the PURL version in etc/purls.txt
mongoc_version_minimum: &mongoc_version_minimum "1.28.0"

integration_matrix:
integration_matrix_tasks_single: &integration_matrix_tasks_single
Expand Down Expand Up @@ -1706,13 +1707,13 @@ buildvariants:
- name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- name: build_example_with_add_subdirectory

- name: debian11-release-latest
display_name: "Debian 11 Release (MongoDB Latest)"
- name: debian12-release-latest
display_name: "Debian 12 Release (MongoDB Latest)"
expansions:
build_type: "Release"
mongodb_version: "latest"
run_on:
- debian11-large
- debian12-large
tasks:
- name: compile_and_test_with_shared_libs
- name: compile_and_test_with_shared_libs_extra_alignment
Expand Down Expand Up @@ -1744,23 +1745,6 @@ buildvariants:
- name: build_example_with_add_subdirectory
- name: uninstall_check

- name: debian10-release-latest
display_name: "Debian 10 Release (MongoDB Latest)"
expansions:
build_type: "Release"
mongodb_version: "latest"
run_on:
- debian10-large
tasks:
- name: compile_and_test_with_shared_libs
- name: compile_and_test_with_shared_libs_extra_alignment
- name: compile_and_test_with_static_libs
- name: compile_and_test_with_static_libs_extra_alignment
- name: compile_and_test_with_shared_libs_replica_set_with_libmongocrypt
- name: compile_and_test_with_shared_libs_sharded_cluster_with_libmongocrypt
- name: build_example_with_add_subdirectory
- name: uninstall_check

- name: debian10-release-50
display_name: "Debian 10 Release (MongoDB 5.0)"
expansions:
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ Changes prior to 3.9.0 are documented as [release notes on GitHub](https://githu

## 3.11.0 [Unreleased]

### Added
- Introduces stable support for In-Use Encryption range indexes.

### Changed

- `FetchContent_MakeAvailable()` is used to populate dependencies instead of `FetchContent_Populate()` for the Mongo C Driver (when not provided by `CMAKE_PREFIX_PATH`) and mnmlstc/core (when automatically selected or when `BSONCXX_POLY_USE_MNMLSTC=ON`).
- Note: `FetchContent_Populate()` is still used for mnmlstc/core for CMake versions prior to 3.18 to avoid `add_subdirectory()` behavior.
- Test suite now uses Catch2 v3 via FetchContent instead of the bundled Catch2 v2 standalone header.
- C++14 or newer is now required to build tests when enabled with `ENABLE_TESTS=ON`.
- Bump minimum C Driver version to [1.28.0](https://github.com/mongodb/mongo-c-driver/releases/tag/1.28.0).

### Deprecated

Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ else()
endif()

# Also update etc/purls.txt.
set(LIBBSON_REQUIRED_VERSION 1.25.0)
set(LIBBSON_REQUIRED_VERSION 1.28.0)
set(LIBBSON_REQUIRED_ABI_VERSION 1.0)

# Also update etc/purls.txt.
set(LIBMONGOC_REQUIRED_VERSION 1.25.0)
set(LIBMONGOC_DOWNLOAD_VERSION 1.25.0)
set(LIBMONGOC_REQUIRED_VERSION 1.28.0)
set(LIBMONGOC_DOWNLOAD_VERSION 1.28.0)
set(LIBMONGOC_REQUIRED_ABI_VERSION 1.0)

set(NEED_DOWNLOAD_C_DRIVER false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedDate",
"bsonType": "date",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedDecimalNoPrecision",
"bsonType": "decimal",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedDecimalPrecision",
"bsonType": "decimal",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedDoubleNoPrecision",
"bsonType": "double",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedDoublePrecision",
"bsonType": "double",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedInt",
"bsonType": "int",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
"path": "encryptedLong",
"bsonType": "long",
"queries": {
"queryType": "rangePreview",
"queryType": "range",
"contention": {
"$numberLong": "0"
},
"trimFactor": {
"$numberInt": "1"
},
"sparsity": {
"$numberLong": "1"
},
Expand Down
11 changes: 11 additions & 0 deletions data/client_side_encryption/legacy/azureKMS.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 3 additions & 1 deletion data/client_side_encryption/legacy/fle2v2-Compact.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"runOn": [
{
"minServerVersion": "7.0.0",
"serverless": "forbid",
"topology": [
"replicaset",
"sharded",
Expand Down Expand Up @@ -131,6 +130,9 @@
"command": {
"compactStructuredEncryptionData": "default"
}
},
"result": {
"ok": 1
}
}
],
Expand Down
Loading