Add QE prefix+suffix GA and rename API to string

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Component/s: Client Side Encryption
    • None
    • Needed
    • Hide

      Summary of necessary driver changes

      • Rename QE "text" APIs to "string"
        • rename TextOpts to StringOpts
        • rename "TextPreview" algorithm to "String"
        • add queryType "prefix"
        • add queryType "suffix"
        • document "prefix" and "suffix" as stable.
      • Update spec and prose tests for the new names.
      • Upgrade to libmongocrypt 1.19.1+ to support the new names.

      "substring" will be added in DRIVERS-3540 pending server changes.

      "prefixPreview" and "suffixPreview" are still experimental and planned for removal in DRIVERS-3548.

      The API renames break compatibility of experimental QE APIs. This is expected to be OK in a minor release since APIs were documented as "unstable API and subject to backwards breaking changes".

      Commits for syncing spec/prose tests

      Changelog

      • 2026-06-16: changed scope to only add "prefix" and "suffix" without dropping "prefixPreview" and "suffixPreview". Motivated by slack thread
      Show
      Summary of necessary driver changes Rename QE "text" APIs to "string" rename TextOpts to StringOpts rename "TextPreview" algorithm to "String" add queryType "prefix" add queryType "suffix" document "prefix" and "suffix" as stable. Update spec and prose tests for the new names. Upgrade to libmongocrypt 1.19.1+ to support the new names. "substring" will be added in DRIVERS-3540 pending server changes. "prefixPreview" and "suffixPreview" are still experimental and planned for removal in DRIVERS-3548 . The API renames break compatibility of experimental QE APIs. This is expected to be OK in a minor release since APIs were documented as "unstable API and subject to backwards breaking changes". Commits for syncing spec/prose tests mongodb/specifications@c9b3ee made the initial change. mongodb/specifications@7a3f70 restored prefixPreview+suffixPreview. Changelog 2026-06-16: changed scope to only add "prefix" and "suffix" without dropping "prefixPreview" and "suffixPreview". Motivated by slack thread
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6293 In Progress 2.4.0
      CXX-3467 Backlog
      CSHARP-5984 Done 3.10.0
      GODRIVER-3863 Backlog 2.8.0
      JAVA-6168 In Progress
      NODE-7537 In Progress
      PYTHON-5799 Backlog
      PHPLIB-1827 Ready for Work
      RUBY-3805 Backlog
      RUST-2402 Ready for Work 3.8.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 */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-6293 In Progress 2.4.0 CXX-3467 Backlog CSHARP-5984 Done 3.10.0 GODRIVER-3863 Backlog 2.8.0 JAVA-6168 In Progress NODE-7537 In Progress PYTHON-5799 Backlog PHPLIB-1827 Ready for Work RUBY-3805 Backlog RUST-2402 Ready for Work 3.8.0

      Summary

      Add "prefix" and "suffix" QE query types, and rename APIs from "text" to "string".

      Motivation

      This is a continuation of work done in DRIVERS-3227. Text indexes are currently documented as experimental.

      Renaming "text" to "string" is intended to avoid confusion with existing MongoDB text search.

      Quoting Queryable Encryption Biweekly Sync notes:

      need to ensure we don’t use “Text search” in public APIs

      Though the renames break API, QE Text is documented as:

      These features are unstable and their security is not guaranteed until released as Generally Available (GA). The GA version of these features may not be backwards compatible with the preview version.

      Who is the affected end user?

      Users of QE wanting to use text indexes in production.

      Is this issue urgent?

      Planned for server 9.0. See Initiative Plan: Queryable Encryption under 3.24

      Acceptance Criteria

      • Add "suffix" and "prefix" in the specification and document as stable.
      • Rename "textPreview" to "string" for "suffix" and "prefix".
      • Rename "TextOpts" to "StringOpts".
      • Upgrade libmongocrypt with needed protocol changes (MONGOCRYPT-856 + MONGOCRYPT-937).
      • Continue to support "prefixPreview" and "suffixPreview" on older servers. These will be dropped in DRIVERS-3548.

            Assignee:
            Kevin Albertson
            Reporter:
            Kevin Albertson
            Kevin Albertson Kevin Albertson
            Rishabh Bisht Rishabh Bisht
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: