Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2435

Update libmongocrypt payloads to new QE protocol

    • Needed
    • Hide

      QE will introduce breaking changes to the protocol. After this project is complete, the server will incompatible with older drivers and tools.

      Show
      QE will introduce breaking changes to the protocol. After this project is complete, the server will incompatible with older drivers and tools.
    • Hide

      Drivers are expected to update the Queryable Encryption (QE) tests. See https://github.com/mongodb/specifications/commit/64deb2837a2355f6002775c49b9b6c50c9dc560f for changes. Here is a summary:

      See https://github.com/mongodb/mongo-go-driver/pull/1213 for the example Go driver implementation.

      Also consider: To fix test failures without enabling QEv2: sync spec tests to https://github.com/mongodb/specifications/commit/baf3724155500acbb557e158b8a5d4334e7f3512 and skip to QE prose tests on server versions > 6.2.99. That may be helpful to backport to release branches so the tests on release branches do not fail against latest servers.

      Changelog:
      2023-04-26: libmongocrypt 1.8.0-alpha1 was released and removes the `mongocrypt_setopt_fle2v2` symbol. QEv2 is enabled by default.

      Show
      Drivers are expected to update the Queryable Encryption (QE) tests. See https://github.com/mongodb/specifications/commit/64deb2837a2355f6002775c49b9b6c50c9dc560f for changes. Here is a summary: Add `fle2v2-*` tests expecting the QEv2 protocol. Remove `fle2-*` tests expecting the QEv1 protocol. Upgrade libmongocrypt dependency to 1.8.0-alpha1 or newer. Binaries for 1.8.0-alpha1 are available here: https://spruce.mongodb.com/task/libmongocrypt_publish_upload_all_009a8122c10c529d9729e908bef1f7dc0d1b4549_23_04_26_12_54_15/files Update QE prose tests to require MongoDB Server 7.0.0+. See https://github.com/mongodb/mongo-go-driver/pull/1213 for the example Go driver implementation. Also consider: To fix test failures without enabling QEv2: sync spec tests to https://github.com/mongodb/specifications/commit/baf3724155500acbb557e158b8a5d4334e7f3512 and skip to QE prose tests on server versions > 6.2.99. That may be helpful to backport to release branches so the tests on release branches do not fail against latest servers. Changelog: 2023-04-26: libmongocrypt 1.8.0-alpha1 was released and removes the `mongocrypt_setopt_fle2v2` symbol. QEv2 is enabled by default.
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4584 Fixed 1.24.0
      CXX-2656 Fixed 3.8.0
      CSHARP-4541 Fixed 2.20.0
      GODRIVER-2761 Fixed 1.12.0
      JAVA-4891 Fixed 4.10.0
      NODE-5074 Fixed 5.3.0
      MOTOR-1100 Fixed 3.2
      PYTHON-3614 Fixed 4.4
      PHPLIB-1088 Fixed 1.16.0
      RUBY-3226 Fixed 2.19.0
      RUST-1605 Fixed 2.6.0
      PHPC-2203 Fixed 1.16.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-4584 Fixed 1.24.0 CXX-2656 Fixed 3.8.0 CSHARP-4541 Fixed 2.20.0 GODRIVER-2761 Fixed 1.12.0 JAVA-4891 Fixed 4.10.0 NODE-5074 Fixed 5.3.0 MOTOR-1100 Fixed 3.2 PYTHON-3614 Fixed 4.4 PHPLIB-1088 Fixed 1.16.0 RUBY-3226 Fixed 2.19.0 RUST-1605 Fixed 2.6.0 PHPC-2203 Fixed 1.16.0

      Summary

      PM-2972 proposes updating the Queryable Encryption protocol. This will require updating the payloads produced in libmongocrypt. Drivers will need to upgrade libmongocrypt and resync tests.

      Motivation

      Who is the affected end user?

      Users of Queryable Encryption. This does not impact Client-Side Field Level Encryption.

      How does this affect the end user?

      Users will need updated libmongocrypt to use Queryable Encryption with the new protocol. The protocol change is backwards breaking.

      Is this issue urgent?

      Must be completed before PM-2972 is released. The protocol changes are backwards breaking.

      Is this ticket required by a downstream team?

      Yes. Compass and mongosh.

      Is this ticket only for tests?

      No

            Assignee:
            kevin.albertson@mongodb.com Kevin Albertson
            Reporter:
            kevin.albertson@mongodb.com Kevin Albertson
            Kevin Albertson Kevin Albertson
            Esha Bhargava Esha Bhargava
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: