[[release_notes_8_14]]
=== 8.14 Release notes

[discrete]
[[release_notes_8_14_0]]
=== 8.14.0 Release notes

[discrete]
==== Client
* Tested versions of Ruby for 8.14.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

[discrete]
==== API

API changes:

* All Connector APIs have been migrated to one common namespace `connector`:
** `connector_secret.delete` -> `connector.secret_delete`
** `connector_secret.get` -> `connector.secret_get`
** `connector_secret.post` -> `connector.secret_post`
** `connector_secret.put` -> `connector.secret_put`
** `connector_sync_job.cancel` -> `connector.sync_job_cancel`
** `connector_sync_job.check_in` -> `connector.sync_job_check_in`
** `connector_sync_job.delete` -> `connector.sync_job_delete`
** `connector_sync_job.error` -> `connector.sync_job_error`
** `connector_sync_job.get` -> `connector.sync_job_get`
** `connector_sync_job.post` -> `connector.sync_job_post`
** `connector_sync_job.update_stats` -> `connector.sync_job_update_stats`

* `connector.delete` - Adds Boolean parameter `:delete_sync_jobs`: Determines whether associated sync jobs are also deleted.
* `cross_cluster_replication.delete_auto_follow_pattern`, `cross_cluster_replication.follow`, `cross_cluster_replication.follow_info`, `cross_cluster_replication.get_auto_follow_pattern`, `cross_cluster_replication.pause_auto_follow_pattern`, `cross_cluster_replication.pause_follow`, `cross_cluster_replication.put_auto_follow_pattern`, `cross_cluster_replication.resume_auto_follow_pattern`, `cross_cluster_replication.resume_follow`, `cross_cluster_replication.stats`, `cross_cluster_replication.unfollow` - Add Time parameter `:master_timeout`:  Explicit operation timeout for connection to master node.
* `cross_cluster_replication.follow_stats`, `cross_cluster_replication.forget_follower`, `cross_cluster_replication.stats` - Add Time parameter `:timeout`: Explicit operation timeout.
* `indices/rollover` - Adds Boolean parameter `:target_failure` If set to true, the rollover action will be applied on the failure store of the data stream.
* `inference.get_model` - Parameter `inference_id` no longer required.
* `search_application.search` - Adds Boolean parameter `:typed_keys`: Specify whether aggregation and suggester names should be prefixed by their respective types in the response.
* `security.get_api_key`, `security.query_api_keys` - Add Boolean parameter `:with_profile_uid`: flag to also retrieve the API Key's owner profile uid, if it exists.

New APIs:

- `profiling.topn_functions` - Extracts a list of topN functions from Universal Profiling.
- `text_structure.find_field_structure` - Finds the structure of a text field in an index.
- `text_structure/find_message_structure`- Finds the structure of a list of messages. The messages must contain data that is suitable to be ingested into Elasticsearch.

APIs Migrated from experimental to stable:

- `esql.async_query`
- `esql.query`

New Experimental APIs:

- `connector.update_active_filtering` - Activates the draft filtering rules if they are in a validated state.
- `connector.update_filtering_validation` - Updates the validation info of the draft filtering rules.
