8.12への移行

このセクションでは、アプリケーションをElasticsearch 8.12に移行する際に注意すべき変更点について説明します。

詳細については、8.15の新機能およびリリースノートを参照してください。

破壊的変更

8.12には破壊的変更はありません。

注目すべき変更

8.12には注意すべき注目すべき変更があります。注目すべき変更と考えられる項目は以下の通りです。

  • テクニカルプレビューにある機能の変更。
  • ログフォーマットの変更。
  • 非公開APIの変更。
  • 重大なバグを修正する動作の変更。

認証の変更

クレームからのJWTプリンシパルの修正

詳細

これは、JWTが実際にJWTレルムによって検証される前に、JWTのプリンシパルのフォーマットを変更します。JWTのプリンシパルは、まだJWTレルムによって検証されていないJWTを指す便利な方法です。JWTのプリンシパルは、監査および通常のログ(特に認証失敗の監査用)に印刷され、スマートレルムチェーンの再順序最適化にも使用されます。JWTのプリンシパルは、JWTで認証されたユーザーのプリンシパルと同一である必要はありませんが、一般的には類似しているべきです。以前は、JWTのプリンシパルは、認証されたユーザーのプリンシパルを構築するのと同じ方法で、個々のレルムによって構築されていました。これには、より単純なJWTレルム構成(例:チェーン内の単一のJWTレルム)では、JWTのプリンシパルと認証されたユーザーのプリンシパルが非常に類似しているという利点がありました。しかし、一般的には、JWTのプリンシパルとユーザーのプリンシパルは非常に異なる場合があります(すなわち、1つのJWTレルムがJWTのプリンシパルを構築し、別のレルムがユーザーのプリンシパルを構築する場合)。もう1つの欠点は、(未認証の)JWTのプリンシパルがレルムの順序に依存しているため、プリンシパルからJWTを特定することがES認証レルムの構成に依存することです。このPRは、JWTのクレームのみに依存し、ESの構成には依存しない一貫した固定ロジックを実装します。

影響

ユーザーは、JWT(失敗した)認証ケースにおけるuser.name属性のauthentication_failed監査ログイベントのフォーマットと値の変更を観察します。

Java APIの変更

Plugin.createComponentsメソッドが単一のPluginServicesオブジェクトを受け取るようにリファクタリングされました。

詳細

Plugin.createComponentsは現在、いくつかの異なるサービス引数を受け取ります。このメソッドのシグネチャは、新しいサービスが追加されるたびに変更されます。現在、このメソッドは新しいサービスが追加される単一のインターフェースオブジェクトを受け取るように変更されました。これにより、将来新しいサービスが導入される際のAPIの互換性の問題が減少します。

影響

createComponentsをオーバーライドするプラグインは、ES 8.12+の新しいメソッドをオーバーライドするようにリファクタリングする必要があります。

REST APIの変更

[ES|QL] pow関数は常にdoubleを返します。

詳細

これは、ES|QL言語設計の以前の誤りを修正します。最初は、powが入力と同じ型を返すことを考えていましたが、実際には整数入力でもすぐに表現可能な範囲を超えてしまい、多くの場合nullを返していました。これにより、doubleへのキャストに関する多くのエッジケースが発生しました(基盤となるJava関数が使用するものです)。このPRのバージョンは、常に入力をdoubleにキャストし、doubleを返すことでJava仕様に従います。この方法で行うことで、コード行数をかなり削減できます。

影響

低い。ほとんどのクエリは、変更後も機能し続けるはずです。