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仕様に従います。この方法で行うことで、コード行数をかなり削減できます。
影響
低い。ほとんどのクエリは、変更後も機能し続けるはずです。