Implement encryption prose tests for $lookup support

XMLWordPrintableJSON

    • Type: New Feature
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: New Spec
    • 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
    • None
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      • Implement prose tests for encryption support in $lookup pipeline stages.
      • Actual support for encryption was added to libmongoc 2.0.0, available in PHPC 2.2.0.
      • libmongocrypt 1.14.0 is available in PHPC 2.2.0, which isn't released yet.

            Assignee:
            Pauline Vos
            Reporter:
            TPM Jira Automations Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 1 week
                1w
                Remaining:
                Remaining Estimate - 1 week
                1w
                Logged:
                Time Spent - Not Specified
                Not Specified