[[release-notes-8.10.0]]
== {es} version 8.10.0

Also see <<breaking-changes-8.10,Breaking changes in 8.10>>.

[[breaking-8.10.0]]
[float]
=== Breaking changes

Analysis::
* Change pre-configured and cached analyzer components to use IndexVersion instead of Version {es-pull}97319[#97319]

Geo::
* Remove the unused executor builder for vector tile plugin {es-pull}96577[#96577]

[[bug-8.10.0]]
[float]
=== Bug fixes

Aggregations::
* Cardinality nested in time series doc values bug {es-pull}99007[#99007]
* Skip segment for `MatchNoDocsQuery` filters {es-pull}98295[#98295] (issue: {es-issue}94637[#94637])

Allocation::
* Do not assign ignored shards {es-pull}98265[#98265]
* Remove exception wrapping in `BatchedRerouteService` {es-pull}97224[#97224]

Application::
* [Profiling] Abort index creation on outdated index {es-pull}98864[#98864]
* [Profiling] Consider static settings in status {es-pull}97890[#97890]
* [Profiling] Mark executables without a name {es-pull}98884[#98884]

CRUD::
* Add missing sync on `indicesThatCannotBeCreated` {es-pull}97869[#97869]

Cluster Coordination::
* Fix cluster bootstrap warning for single-node discovery {es-pull}96895[#96895] (issue: {es-issue}96874[#96874])
* Fix election scheduling after discovery outage {es-pull}98420[#98420]
* Improve reliability of elections with message delays {es-pull}98354[#98354] (issue: {es-issue}97909[#97909])
* Make `TransportAddVotingConfigExclusionsAction` retryable {es-pull}98386[#98386]
* Release master service task on timeout {es-pull}97711[#97711]

Data streams::
* Avoid lifecycle NPE in the data stream lifecycle usage API {es-pull}98260[#98260]

Distributed::
* Avoid `transport_worker` thread in `TransportBroadcastAction` {es-pull}98001[#98001]
* Avoid `transport_worker` thread in `TransportBroadcastByNodeAction` {es-pull}97920[#97920] (issue: {es-issue}97914[#97914])
* Fork response reading in `TransportNodesAction` {es-pull}97899[#97899]

Downsampling::
* Copy "index.lifecycle.name" for ILM managed indices {es-pull}97110[#97110] (issue: {es-issue}96732[#96732])
* Downsampling: copy the `_tier_preference` setting {es-pull}96982[#96982] (issue: {es-issue}96733[#96733])

EQL::
* Fix async missing events {es-pull}97718[#97718] (issue: {es-issue}97644[#97644])

Geo::
* Fix how Maps#flatten handle map values inside a list {es-pull}98828[#98828]
* Fix mvt error when returning partial results {es-pull}98765[#98765] (issue: {es-issue}98730[#98730])

Health::
* `_health_report` SLM indicator should use the policy ID (not the name) {es-pull}99111[#99111]

Indices APIs::
* Ensure frozen indices have correct tier preference {es-pull}97967[#97967]

Infra/REST API::
* Fix possible NPE when transportversion is null in `MainResponse` {es-pull}97203[#97203]

Ingest Node::
* Revert "Add mappings for enrich fields" {es-pull}98683[#98683]

Machine Learning::
* Avoid risk of OOM in datafeeds when memory is constrained {es-pull}98324[#98324] (issue: {es-issue}89769[#89769])
* Detect infinite loop in the WordPiece tokenizer {es-pull}98206[#98206]
* Fix to stop aggregatable subobjects from being considered multi-fields, to support `"subobjects": false` in data frame analytics {es-pull}97705[#97705] (issue: {es-issue}88605[#88605])
* Fix weird `change_point` bug where all data values are equivalent {es-pull}97588[#97588]
* The model loading service should not notify listeners in a sync block {es-pull}97142[#97142]

Mapping::
* Fix `fields` API with `subobjects: false` {es-pull}97092[#97092] (issue: {es-issue}96700[#96700])

Network::
* Fork remote-cluster response handling {es-pull}97922[#97922]

Search::
* Fork CCS remote-cluster responses {es-pull}98124[#98124] (issue: {es-issue}97997[#97997])
* Fork CCS search-shards handling {es-pull}98209[#98209]
* Improve test coverage for CCS search cancellation and fix response bugs {es-pull}97029[#97029]
* Make `terminate_after` early termination friendly {es-pull}97540[#97540] (issue: {es-issue}97269[#97269])
* Track `max_score` in collapse when requested {es-pull}97703[#97703] (issue: {es-issue}97653[#97653])

Security::
* Fix NPE when `GetUser` with profile uid before profile index exists {es-pull}98961[#98961]

Snapshot/Restore::
* Fix `BlobCacheBufferedIndexInput` large read after clone {es-pull}98970[#98970]

TSDB::
* Mapped field types searchable with doc values {es-pull}97724[#97724]

Transform::
* Fix transform incorrectly calculating date bucket on updating old data {es-pull}97401[#97401] (issue: {es-issue}97101[#97101])

Watcher::
* Changing watcher to disable cookies in shared http client {es-pull}97591[#97591]

[[deprecation-8.10.0]]
[float]
=== Deprecations

Authorization::
* Mark `apm_user` for removal in a future major release {es-pull}87674[#87674]

[[enhancement-8.10.0]]
[float]
=== Enhancements

Aggregations::
* Improve error message when aggregation doesn't support counter field {es-pull}93545[#93545]
* Set default index mode for `TimeSeries` to `null` {es-pull}98808[#98808] (issue: {es-issue}97429[#97429])

Allocation::
* Add `node.roles` to cat allocation API {es-pull}96994[#96994]

Application::
* [Profiling] Add initial support for upgrades {es-pull}97380[#97380]
* [Profiling] Support index migrations {es-pull}97773[#97773]

Authentication::
* Avoid double get {es-pull}98067[#98067] (issue: {es-issue}97928[#97928])
* Give all acces to .slo-observability.* indice to kibana user {es-pull}97539[#97539]
* Refresh tokens without search {es-pull}97395[#97395]

Authorization::
* Add "operator" field to authenticate response {es-pull}97234[#97234]
* Read operator privs enabled from Env settings {es-pull}98246[#98246]
* [Fleet] Allow `kibana_system` to put datastream lifecycle {es-pull}97732[#97732]

Data streams::
* Install data stream template for Kibana reporting {es-pull}97765[#97765]

Downsampling::
* Change `MetricFieldProducer#metrics` field type from list to array {es-pull}97344[#97344]
* Improve iterating over many field producers during downsample operation {es-pull}97281[#97281]
* Run downsampling using persistent tasks {es-pull}97557[#97557] (issue: {es-issue}93582[#93582])

EQL::
* EQL to use only the necessary fields in the internal `field_caps` calls {es-pull}98987[#98987]

Engine::
* Fix edge case for active flag for flush on idle {es-pull}97332[#97332] (issue: {es-issue}97154[#97154])

Health::
* Adding special logic to the disk health check for search-only nodes {es-pull}98508[#98508]
* Health API Periodic Logging {es-pull}96772[#96772]

ILM+SLM::
* Separating SLM from ILM {es-pull}98184[#98184]

Infra/Core::
* Infrastructure to report upon document parsing {es-pull}97961[#97961]

Infra/Node Lifecycle::
* Check ILM status before reporting node migration STALLED {es-pull}98367[#98367] (issue: {es-issue}89486[#89486])

Infra/Plugins::
* Adding `ApiFilteringActionFilter` {es-pull}97985[#97985]

Infra/REST API::
* Enable Serverless API protections dynamically {es-pull}97079[#97079]
* Make `RestController` pluggable {es-pull}98187[#98187]

Infra/Settings::
* Mark customer settings for serverless {es-pull}98051[#98051]

Ingest Node::
* Allow custom geo ip database files to be downloaded {es-pull}97850[#97850]

Network::
* Add request header size limit for RCS transport connections {es-pull}98692[#98692]

Search::
* Add `completion_time` time field to `async_search` get and status response {es-pull}97700[#97700] (issue: {es-issue}88640[#88640])
* Add setting for search parallelism {es-pull}98455[#98455]
* Add support for concurrent collection when size is greater than zero {es-pull}98425[#98425]
* Cross-cluster search provides details about search on each cluster {es-pull}97731[#97731]
* Enable parallel collection in Dfs phase {es-pull}97416[#97416]
* Exclude clusters from a cross-cluster search {es-pull}97865[#97865]
* Improve MatchNoDocsQuery description {es-pull}96069[#96069] (issue: {es-issue}95741[#95741])
* Improve exists query rewrite {es-pull}97159[#97159]
* Improve match query rewrite {es-pull}97208[#97208]
* Improve prefix query rewrite {es-pull}97209[#97209]
* Improve wildcard query and terms query rewrite {es-pull}97594[#97594]
* Introduce Synonyms Management API used for synonym and synonym_graph filters {es-pull}97962[#97962] (issue: {es-issue}38523[#38523])
* Introduce a collector manager for `PartialHitCountCollector` {es-pull}97550[#97550]
* Introduce a collector manager for `QueryPhaseCollector` {es-pull}97410[#97410]
* Limit `_terms_enum` prefix size {es-pull}97488[#97488] (issue: {es-issue}96572[#96572])
* Support minimum_should_match field for terms_set query {es-pull}96082[#96082]
* Support type for simple query string {es-pull}96717[#96717]
* Unwrap IOException in `ContextIndexSearcher` concurrent code-path {es-pull}98459[#98459]
* Use a collector manager in DfsPhase Knn Search {es-pull}96689[#96689]
* Use the Weight#matches mode for highlighting by default {es-pull}96068[#96068]
* Wire `QueryPhaseCollectorManager` into the query phase {es-pull}97726[#97726]
* Wire concurrent top docs collector managers when size is 0 {es-pull}97755[#97755]
* `ProfileCollectorManager` to support child profile collectors {es-pull}97387[#97387]
* cleanup some code NoriTokenizerFactory and KuromojiTokenizerFactory {es-pull}92574[#92574]

Security::
* Add an API for managing the settings of Security system indices {es-pull}97630[#97630]
* Support getting active-only API keys via Get API keys API {es-pull}98259[#98259] (issue: {es-issue}97995[#97995])

Snapshot/Restore::
* Add Setting to optionally use mmap for shared cache IO {es-pull}97581[#97581]
* Collect additional object store stats for S3 {es-pull}98083[#98083]
* HDFS plugin add replication_factor param {es-pull}94132[#94132]

Store::
* Allow Lucene directory implementations to estimate their size {es-pull}97822[#97822]
* Allow `ByteSizeDirectory` to expose their data set sizes {es-pull}98085[#98085]

TSDB::
* Add tsdb metrics builtin component template {es-pull}97602[#97602]
* Include more downsampling status statistics {es-pull}96930[#96930] (issue: {es-issue}96760[#96760])
* `TimeSeriesIndexSearcher` to offload to the provided executor {es-pull}98414[#98414]

Transform::
* Support boxplot aggregation in transform {es-pull}96515[#96515]

[[feature-8.10.0]]
[float]
=== New features

Application::
* Enable Query Rules as technical preview {es-pull}97466[#97466]
* [Enterprise Search] Add connectors indices and ent-search pipeline {es-pull}97463[#97463]

Data streams::
* Introduce downsampling configuration for data stream lifecycle {es-pull}97041[#97041]

Search::
* Introduce executor for concurrent search {es-pull}98204[#98204]

Security::
* Beta release for API key based cross-cluster access {es-pull}98307[#98307]

[[upgrade-8.10.0]]
[float]
=== Upgrades

Network::
* Upgrade Netty to 4.1.94.Final {es-pull}97040[#97040]


