Миграция на 8.12
В этом разделе рассматриваются изменения, которые необходимо учитывать при миграции вашего приложения на Elasticsearch 8.12.
См. также Что нового в 8.17 и Справочные материалы по выпуску.
Изменения, требующие внимательного отношения
В 8.12 нет изменений, требующих внимательного отношения.
Заметные изменения
В 8.12 есть заметные изменения, о которых вам нужно знать, пункты, которые мы можем рассматривать как заметные изменения, это
- Изменения в функциях, которые находятся в техническом предварительном просмотре.
- Изменения в формате журналов.
- Изменения в недоступных API.
- Изменения в поведении, которые устраняют критические ошибки.
Изменения в авторизации
Исправленный JWT-субъект из данных утверждений
Подробности
Это изменяет формат JWT-субъекта перед фактической проверкой JWT любым областью JWT. JWT-субъект — удобный способ ссылки на JWT, который еще не был проверен областью JWT. JWT-субъект выводится в аудиторских и обычных журналах (в частности, для аудита ошибок аутентификации), а также в оптимизации переупорядочения цепочки областей smart. JWT-субъект НЕ должен совпадать с субъектом пользователя, авторизованного с помощью JWT, но, как правило, они должны быть похожи. Ранее JWT-субъект создавался отдельными областями таким же образом, как области создавали субъект авторизованного пользователя. Это имело преимущество в том, что в более простых конфигурациях областей JWT (например, в одной области JWT в цепочке) JWT-субъект и субъект авторизованного пользователя очень похожи. Однако недостатком является то, что, как правило, JWT-субъект и субъект пользователя могут сильно отличаться (например, в случае, когда одна область JWT строит JWT-субъект, а другая — субъект пользователя). Еще один недостаток заключается в том, что (неавторизованный) JWT-субъект зависел от порядка областей, что делает идентификацию JWT по его субъекту зависящей от конфигурации области аутентификации ES. Этот PR реализует согласованную исправленную логику построения JWT-субъекта, которая зависит только от утверждений JWT и не зависит от конфигурации ES.
Последствия
Пользователи увидят изменения в формате и значениях атрибута user.name событий аудита authentication_failed, в случае аутентификации JWT (с ошибкой).
Изменения в API Java
Метод Plugin.createComponents был переработан для приема одного объекта PluginServices
Подробности
Метод Plugin.createComponents в настоящее время принимает несколько разных аргументов службы. Подпись этого метода изменяется каждый раз, когда добавляется новая служба. Теперь метод был изменен, чтобы принимать один интерфейсный объект, к которому добавляются новые службы. Это позволит уменьшить проблемы с несовместимостью API при добавлении новой службы в будущем.
Последствия
Плагины, которые переопределяют createComponents, необходимо будет переработать, чтобы переопределить новый метод в ES 8.12+
Изменения в REST API
[ES|QL] функция pow всегда возвращает double
Подробности
Это исправляет предыдущую ошибку в разработке языка ES|QL. Изначально мы предполагали, что pow вернет тот же тип, что и ее входные данные, но на практике, даже для целочисленных входных данных, это быстро выходит за пределы представимого диапазона, и мы часто возвращали null. Это также создало множество граничных случаев при преобразовании в/из double (который используется в базовой функции Java). Версия в этом PR следует спецификации Java, всегда преобразуя входные данные в double и возвращая double. Такой подход также позволяет значительно сократить количество строк кода.
Последствия
Низкие. Большинство запросов должны продолжать работать с внесенными изменениями.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/migrating-8.12.html