迁移到 8.12编辑

本节讨论将应用程序迁移到 Elasticsearch 8.12 时需要注意的更改。

另请参阅 8.14 中的新增功能发行说明

重大更改编辑

8.12 中没有重大更改

值得注意的更改编辑

8.12 中有一些值得注意的更改,您需要注意,我们可能认为值得注意的更改包括:

  • 技术预览版中功能的更改。
  • 日志格式的更改。
  • 非公共 API 的更改。
  • 修复严重错误的行为更改。

授权更改编辑

修复了来自声明的 JWT 主体

详细信息
这会在 JWT 由任何 JWT 领域实际验证之前更改其主体的格式。JWT 主体是一种方便的方式,用于引用尚未由 JWT 领域验证的 JWT。JWT 主体打印在审计和常规日志(特别是用于审计身份验证失败)以及智能领域链重新排序优化中。JWT 主体不需要与 JWT 身份验证用户的主题相同,但通常情况下,它们应该相似。以前,JWT 主体是由各个领域构建的,方式与领域构建经过身份验证的用户的主题的方式相同。这样做的好处是,在更简单的 JWT 领域配置中(例如,链中的单个 JWT 领域),JWT 主体和经过身份验证的用户的主题非常相似。然而,缺点是,通常情况下,JWT 主体和用户主体可能会有很大差异(即,在一个 JWT 领域构建 JWT 主体而另一个领域构建用户主体的情况下)。另一个缺点是(未经身份验证的)JWT 主体依赖于领域排序,这使得从其主体标识 JWT 依赖于 ES 身份验证领域配置。此 PR 实现了用于构建 JWT 主体的一致的固定逻辑,该逻辑仅依赖于 JWT 的声明,而不依赖于 ES 配置。

影响
用户将观察到 JWT(失败)身份验证情况下 authentication_failed 审计日志事件的 user.name 属性的格式和值发生了变化。

Java API 更改编辑

Plugin.createComponents 方法已重构为采用单个 PluginServices 对象

详细信息
Plugin.createComponents 当前采用多个不同的服务参数。每次添加新服务时,此方法的签名都会更改。该方法现在已修改为采用单个接口对象,新服务将添加到该对象中。这将减少将来引入新服务时的 API 不兼容问题。

影响
覆盖 createComponents 的插件需要重构为覆盖 ES 8.12+ 上的新方法

REST API 更改编辑

[ES|QL] pow 函数始终返回双精度值

详细信息
这更正了 ES|QL 语言设计中的一个早期错误。最初,我们曾考虑让 pow 返回与其输入相同的类型,但在实践中,即使对于整数输入,这也会很快超出可表示的范围,并且我们经常返回 null。这还在与双精度值(底层 Java 函数使用)之间的转换方面产生了许多边缘情况。此 PR 中的版本遵循 Java 规范,始终将其输入转换为双精度值,并返回双精度值。这样做还可以显着减少代码行数。

影响
低。大多数查询在更改后应继续正常运行。