Block deprecated suffixPreview/prefixPreview query type strings at collection creation and CRUD time when libmongocrypt is updated

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Server Security
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Once libmongocrypt supports the new "suffix" and "prefix" query type names, block the deprecated "suffixPreview" and "prefixPreview" strings at collection creation and CRUD time.

       

      SERVER-116329 renamed the FLE2 query types suffixPreview to suffix and prefixPreview to prefix, following the same deprecation pattern as rangePreview to range (SERVER-85756). However, because libmongocrypt does not yet recognize the new names, the blocking of deprecated names was deferred.

       

      libmongocrypt should have the suffix/prefix names in this grep when it is successfully updated and unblocked

      ```

      ubuntu@ip-10-122-12-153:~/mongo$ grep 'SUFFIX|PREFIX' src/third_party/libmongocrypt/dist/src/mc-efc.c

          } else if (mstr_eq_ignore_case(mstrv_lit(MONGOCRYPT_QUERY_TYPE_SUFFIXPREVIEW_STR), qtv))

      {         *out = SUPPORTS_SUFFIX_PREVIEW_QUERIES;     }

      else if (mstr_eq_ignore_case(mstrv_lit(MONGOCRYPT_QUERY_TYPE_PREFIXPREVIEW_STR), qtv)) {

              *out = SUPPORTS_PREFIX_PREVIEW_QUERIES;

                  & (SUPPORTS_SUBSTRING_PREVIEW_QUERIES | SUPPORTS_SUFFIX_PREVIEW_QUERIES

                     | SUPPORTS_PREFIX_PREVIEW_QUERIES)) {

      ```

      Acceptance Criteria:

      Change the following

      • Collection creation (src/mongo/db/shard_role/ddl/create_command.cpp) — Add uassert calls to reject SuffixPreviewDeprecated and PrefixPreviewDeprecated at collection creation, matching the existing RangePreviewDeprecated pattern.
      • (src/mongo/crypto/fle_crypto.cpp — getAndValidateSchema) — Add uassert calls to reject operations on collections that still use the deprecated names, prompting users to recreate with the new names. This matches the existing RangePreviewDeprecated CRUD-time blocking.

       

            Assignee:
            Unassigned
            Reporter:
            Owen Chen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: