Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-6673

Support $lookup in CSFLE and QE

    • 3
    • Hide

      DRIVERS-3082:
      Summary of necessary driver changes

      • Upgrade libmongocrypt to 1.13.0.
      • Update libmongocrypt bindings to pass all listCollection results in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented.
      • Implement prose tests from 527e22d.

      libmongocrypt binding changes
      libmongocrypt's protocol previously assumed auto encrypting a command only required at most one schema. With $lookup there can be multiple schemas on an aggregate command. As a result, a small driver change is needed: feed all listCollections results to libmongocrypt in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. The previous protocol only required returning the first. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented (otherwise libmongocrypt returns an error if a command requires multiple schemas).

      The libmongocrypt documentation describes the updated protocol in integrating.md.

      See the small protocol change implemented in the C driver here.

      References

      Show
      DRIVERS-3082: Summary of necessary driver changes Upgrade libmongocrypt to 1.13.0. Update libmongocrypt bindings to pass all listCollection results in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented. Implement prose tests from 527e22d . libmongocrypt binding changes libmongocrypt's protocol previously assumed auto encrypting a command only required at most one schema. With $lookup there can be multiple schemas on an aggregate command. As a result, a small driver change is needed: feed all listCollections results to libmongocrypt in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. The previous protocol only required returning the first. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented (otherwise libmongocrypt returns an error if a command requires multiple schemas). The libmongocrypt documentation describes the updated protocol in integrating.md . See the small protocol change implemented in the C driver here . References libmongocrypt commit: 33fdf65 . libmongocrypt 1.13.0 binaries: A tarball containing all binaries are available in the upload all task. Smaller platform specific binaries are available on the build-and-test-and-upload tasks Specifications prose tests commit: 527e22d C driver implementation: PR#1880
    • Not Needed
    • Not Needed

      This ticket was split from DRIVERS-3082, please see that ticket for a detailed description.

            Assignee:
            neal.beeken@mongodb.com Neal Beeken
            Reporter:
            dbeng-pm-bot TPM Jira Automations Bot
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: