[[breaking-changes-7.10]] == Breaking changes in 7.10 ++++ 7.10 ++++ This section discusses the changes that you need to be aware of when migrating your application to {es} 7.10. See also <> and <>. // * <> // * <> //NOTE: The notable-breaking-changes tagged regions are re-used in the //Installation and Upgrade Guide //tag::notable-breaking-changes[] [discrete] [[breaking_710_security_changes]] === Authentication changes [[api-keys-require-name-property]] .API keys now require a `name` property. [%collapsible] ==== *Details* + The `name` property is now required to create or grant an API key. [source,js] ---- { "...": "...", "api_key": { "name": "key-1" } } ---- // NOTCONSOLE *Impact* + To avoid errors, specify the `name` property when creating or granting API keys. ==== [discrete] [[breaking_710_indices_changes]] === Indices changes [[bc-deprecate-rest-api-access-to-system-indices]] .REST API access to system indices is deprecated. [%collapsible] ==== *Details* + We are deprecating REST API access to system indices. Most REST API requests that attempt to access system indices will return the following deprecation warning: [source,text] ---- this request accesses system indices: [.system_index_name], but in a future major version, direct access to system indices will be prevented by default ---- The following REST API endpoints access system indices as part of their implementation and will not return the deprecation warning: * `GET _cluster/health` * `GET {index}/_recovery` * `GET _cluster/allocation/explain` * `GET _cluster/state` * `POST _cluster/reroute` * `GET {index}/_stats` * `GET {index}/_segments` * `GET {index}/_shard_stores` * `GET _cat/[indices,aliases,health,recovery,shards,segments]` *Impact* + To avoid deprecation warnings, do not use unsupported REST APIs to access system indices. ==== [discrete] [[breaking_710_java_changes]] === Java changes [[supplier-searchlookup-arg]] .The `MappedFieldType#fielddataBuilder` method now accepts a `Supplier` argument. [%collapsible] ==== *Details* + To support future feature development, the existing `MappedFieldType#fielddataBuilder` method now accepts a new `Supplier` argument. *Impact* + If you develop or maintain a mapper plugin, update your implementation of the `MappedFieldType#fielddataBuilder` method to accommodate the new signature. ==== [discrete] [[breaking_710_ml_changes]] === Machine learning changes [[ml-allow-no-deprecations]] .The `allow_no_jobs` and `allow_no_datafeeds` API parameters are deprecated. [%collapsible] ==== *Details* + The `allow_no_jobs` and `allow_no_datafeeds` parameters in {ml} APIs are deprecated in favor of `allow_no_match`. The old parameters are still accepted by the APIs but a deprecation warning is emitted when the old parameter name is used in the request body or as a request parameter. High-level REST client classes now send the new `allow_no_match` parameter. *Impact* + To avoid deprecation warnings, use the `allow_no_match` parameter. ==== [discrete] [[breaking_710_mapping_changes]] === Mapping changes [[mapping-boosts]] .The `boost` parameter on field mappings has been deprecated. [%collapsible] ==== *Details* + Index-time boosts have been deprecated since the 5.x line, but it is still possible to declare field-specific boosts in the mappings. This is now deprecated as well, and will be removed entirely in 8.0.0. Mappings containing field boosts will continue to work in 7.x but will emit a deprecation warning. *Impact* + The `boost` setting should be removed from templates and mappings. Use boosts directly on queries instead. ==== [discrete] [[breaking_710_networking_changes]] === Networking changes [keep-idle-and-keep-internal-limits] .The `*.tcp.keep_idle` and `*.tcp.keep_interval` settings are now limited to `300` seconds. [%collapsible] ==== *Details* + The `{network,transport,http}.tcp.keep_idle` and `{network,transport,http}.tcp.keep_interval` settings now have a maximum value of `300` seconds, equivalent to 5 minutes. *Impact* + If specified, ensure the `{network,transport,http}.tcp.keep_idle` and `{network,transport,http}.tcp.keep_interval` settings do not exceed `300` seconds. Setting `{network,transport,http}.tcp.keep_idle` or `{network,transport,http}.tcp.keep_interval` to a value greater than `300` seconds in `elasticsearch.yml` will result in an error on startup. ==== [discrete] [[breaking_710_search_changes]] === Search changes [[max-doc-value-field-search-limits]] .The `index.max_docvalue_fields_search` setting now limits doc value fields returned by `inner_hits` or the `top_hits` aggregation. [%collapsible] ==== *Details* + The `index.max_docvalue_fields_search` setting limits the number of doc value fields retrieved by a search. Previously, this setting applied only to doc value fields returned by the `docvalue_fields` parameter in a top-level search. The setting now also applies to doc value fields returned by an `inner_hits` section or `top_hits` aggregation. *Impact* + If you use `inner_hits` or the `top_hits` aggregation, ensure `index.max_docvalue_fields_search` is configured correctly for your use case. ==== [discrete] [[breaking_710_snapshot_restore_changes]] === Snapshot and restore changes [[respository-stats-api-deprecated]] .The repository stats API has been deprecated. [%collapsible] ==== *Details* + The repository stats API was introduced as an experimental API in 7.8.0. The {ref}/repositories-metering-apis.html[repositories metering APIs] now replace the repository stats API. The repository stats API has been deprecated and will be removed in 8.0.0. *Impact* + Use the {ref}/repositories-metering-apis.html[repositories metering APIs]. Discontinue use of the repository stats API. ==== //end::notable-breaking-changes[]