[[release-notes]] = Release notes [partintro] -- // Use these for links to issue and pulls. Note issues and pulls redirect one to // each other on Github, so don't worry too much on using the right prefix. :issue: https://github.com/elastic/kibana/issues/ :pull: https://github.com/elastic/kibana/pull/ Review important information about the {kib} 7.x releases. * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> * <> -- [[release-notes-7.13.2]] == {kib} 7.13.2 coming::[7.13.2] The 7.13.2 release includes the following bug fixes. [float] [[fixes-v7.13.2]] === Bug Fixes Fleet:: * Fixes the double install button on the Integrations page {kibana-pull}101511[#101511] * Fixes packages being upgraded accidentally after adding to policy {kibana-pull}101542[#101542] Lens & Visualizations:: * Fixes an issue where upgrading from 7.12.1 to 7.13.0 breaks *TSVB* vizualizations that don't have a defined timefield {kibana-pull}100864[#100864] Logs:: * Fixes the filter button in the log entry details flyout {kibana-pull}101011[#101011] Machine Learning:: * Updates datafeed_high_count_network_denies.json {kibana-pull}101681[#101681] * Fixes management app race condition {kibana-pull}100785[#100785] * Fixes missing selected-interval styling for Explorer anomaly charts and mismatched scheduled markers styling {kibana-pull}100272[#100272] Maps:: * Fixes an issue where EMS Boundaries with joins were unable to render {kibana-pull}101604[#101604] Sharing:: * Fixes the embeddables migrate function {kibana-pull}101470[#101470] [discrete] [[known-issue-7.13.12]] === Known issue *TSVB visualizations with annotations* can't be created as the index pattern dropdown on the *Annotations* tab is missing. The existing *TSVB* visualizations with annotations work fine. If you want to create *TSVB* visualizations with annotations, we recommend that you wait for the {kib} 7.13.3 release, then upgrade. For more information, refer to {kibana-issue}102180[#102180]. [[release-notes-7.13.1]] == {kib} 7.13.1 [discrete] [[known-issue-7.13.1]] === Known issue Kibana instances with dashboard panels that are `by value` and have drilldowns may fail to start after upgrade. We recommend that users who have been using drilldowns in Kibana wait for 7.13.2 to upgrade. For more information, refer to {kibana-issue}101430[#101430]. [float] [[fixes-v7.13.1]] === Bug Fixes Alerting:: * Adds ignore_above to alerts params mappings to handle immense params {kibana-pull}100726[#100726] Dashboard:: * Moves the by value migrations for 7.13 {kibana-pull}100622[#100622] * Fixes JSON editor height in Inspector on Safari {kibana-pull}99032[#99032] Fleet:: * Adds missing install button for integrations that aren't installed yet {kibana-pull}100370[#100370] Machine Learning:: * Fixes field used in remote desktop protocol (RDP) anomaly detection job to event.type {kibana-pull}100000[#100000] Management:: * Fixes large integer formatting with decimal part using numeral-js {kibana-pull}99609[#99609] Querying & Filtering:: * Using a range query in KQL against a scripted number field now works properly {kibana-pull}99554[#99554] Sharing:: * Adds appropriate table caption for table listing generated reports {kibana-pull}100118[#100118] Security:: * Gracefully handle malformed index patterns on role management pages {kibana-pull}99918[#99918] [[release-notes-7.13.0]] == {kib} 7.13.0 For information about the {kib} 7.13.0 release, review the following information. [float] [[security-update-7.13.0]] === Security updates Review the security updates that were found in previous versions of {kib}. [float] [[url-redirection-flaw]] ==== URL redirection flaw *Details* + In {kib} 7.12.1 and earlier, when a logged in user visits a maliciously created URL, {kib} could redirect users to an arbitrary website. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22141[CVE-2021-22141] *Solution* + Upgrade to {kib} 7.13.0. [float] [[reporting-vulnerability]] ==== Reporting vulnerability *Details* + In {kib} 7.0.0 to 7.12.1, To generate downloadable reports, {kib} uses an embedded version of the Chromium browser. When a user with permissions to generate reports is able to render arbitrary HTML with the browser, they may be able to leverage known Chromium vulnerabilities to conduct further attacks. {kib} contains a number of protections to prevent the browser from rendering arbitrary content. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22142[CVE-2021-22142] *Solution* + Upgrade to {kib} 7.13.0. [float] [[known-issue-7.13.0]] === Known issues .*Dev Tools* displays a 403 error with the `Access to Fleet API require the superuser role` message [%collapsible] ==== *Details* + When pages load, {kib} calls the Fleet packages API. For more information, refer to {kibana-issue}100285[#100285]. *Impact* + In some cases, *Dev Tools* displays a 403 error with the `Access to Fleet API require the superuser role` message, but you can continue to access *Fleet*. ==== .{agent}s unenrolling from a self-managed {fleet-server} hang at "Updating" and API keys are not invalidated [%collapsible] ==== *Details* + In {kib}, when you unenroll an {agent} from a self-managed {fleet-server}, the status may hang at "Updating". This problem only occurs with {agent}s connecting to a {fleet-server} started with a service token. *Impact* + You must do a force unenroll to remove the {agent} and invalidate the API keys, or unenrollment hangs indefinitely. https://github.com/elastic/fleet-server/issues/380[#380] ==== .*TSVB* references to the index pattern are not embedded [%collapsible] ==== *Details* + *TSVB* references to the index pattern are not embedded when exporting a saved object. This issue was reported at https://github.com/elastic/kibana/issues/103059[#103059] and was originally related to moving a *TSVB* visualization from one space to another. It should be noted that there may be different variants of this problem due to the fact that the used index pattern is not exported correctly. *Workaround* + You should export the used index patterns separately. ==== [float] [[breaking-changes-7.13.0]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.13.0, review the breaking changes, then mitigate the impact to your application. // tag::notable-breaking-changes[] [discrete] [[breaking-97206]] .Remove Elastic Agent routes and related services [%collapsible] ==== *Details* + Elastic Agents now use the Fleet Server to enroll agents, get agent policies, collect status information, and more. For more information, refer to {kibana-pull}97206[#97206]. *Impact* + To run and manage Elastic Agents, use the Fleet Server instead of {kib}. For more information, refer to {fleet-guide}/fleet-server.html[Fleet Server]. ==== [discrete] [[breaking-95789]] .Invalidate API keys for existing agents [%collapsible] ==== *Details* + The existing agents in {kib} are not migrated as part of the migration to Fleet. For more information, refer to {kibana-pull}95789[#95789]. *Impact* + The existing agent API keys are invalidated and display as `Inactive` on the *Agents* page. ==== [discrete] [[breaking-98039]] .Disable Explore underlying data context menu [%collapsible] ==== *Details* + The *Explore underlying data* context menu on dashboards is now disabled by default. For more information, refer to {kibana-pull}98039[#98039]. *Impact* + To enable the *Explore underlying data* context menu, set `xpack.discoverEnhanced.actions.exploreDataInContextMenu.enabled` to `true` in kibana.yml. ==== // end::notable-breaking-changes[] [float] [[deprecations-7.13.0]] === Deprecations The following functionality is deprecated in 7.13.0, and will be removed in 8.0.0. Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you upgrade to 7.13.0. [discrete] [[deprecation-97574]] .Deprecates scripted fields [%collapsible] ==== *Details* + Scripted fields are deprecated. For more information, refer to {kibana-pull}97574[#97574]. *Impact* + For greater flexibility and Painless scripting language support, use runtime fields. ==== [discrete] [[deprecation-96517]] .Deprecates the location map from Uptime [%collapsible] ==== *Details* + The location map is removed from the *Uptime* monitor page. For more information, refer to {kibana-pull}96517[#96517]. *Impact* + For monitoring details, refer to the *Availability* and *Last check* columns. ==== [discrete] [[deprecation-96398]] .Deprecates migrations.enableV2 setting [%collapsible] ==== *Details* + Deprecates the `migrations.enableV2` setting. For more information, refer to {kibana-pull}96398[#96398]. ==== [discrete] [[deprecation-95510]] .Deprecates the /src/legacy directory [%collapsible] ==== *Details* + The legacy `/src/legacy` directory is deprecated. For more information, refer to {kibana-pull}95510[#95510]. *Impact* + Use the `/src/legacy` directory in the Bazel build system. ==== [discrete] [[deprecation-94238]] .Deprecates legacy logging dest, json, verbosity, and rotate configurations [%collapsible] ==== *Details* + Deprecates legacy logging configuration in favor of the new {kib} Platform logging system. For example, deprecates `logging.json` and `logging.rotate.*`. For more information, refer to {kibana-pull}94238[#94238]. *Impact* + When `logging.root.appenders` is configured and won't show a deprecation warning, `--verbose` replaces the legacy-format logs with the {kib} platform log format. When {kib} platform logging is not configured, `--verbose` sets `logging.verbose: true` and provides a warning for the deprecated configuration. ==== [discrete] [[deprecation-93977]] .Deprecates old alerts APIs [%collapsible] ==== *Details* + The `/api/alerts/*` APIs are deprecated and will be removed in 8.0. For more information, refer to {kibana-pull}93977[#93977]. *Impact* + Use the new `/api/alerting/*` APIs. ==== [discrete] [[deprecation-92451]] .Deprecates old actions APIs [%collapsible] ==== *Details* + The old `/api/actions/*` APIs are deprecated and will be removed in 8.0. For more information, refer to {kibana-pull}92451[#92451]. *Impact* + Use the new `/api/actions/*` APIs. ==== [float] [[features-7.13.0]] === Features {kib} 7.13.0 adds the following new and notable features. Discover:: * Adds runtime field editor to Discover {kibana-pull}96762[#96762] * Integration of Runtime Fields editor - edit operation {kibana-pull}95498[#95498] Elastic Security:: For the Elastic Security 7.13.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Kibana Home & Add Data:: * Update Cloud plugin to handle new config in kibana.yml {kibana-pull}95569[#95569] Lens & Visualizations:: * Visualize runtime fields in *TSVB* {kibana-pull}95772[#95772] * Enables url drilldowns for range selection in *TSVB* {kibana-pull}95296[#95296] * Enable `dual mode`, support index patterns and strings in *TSVB* {kibana-pull}92812[#92812] Machine Learning:: * Anomaly detection rule lookback interval improvements {kibana-pull}97370[#97370] * Adds network ML module with four ML jobs for ECS network data {kibana-pull}96480[#96480] * Adds runtime support for anomaly charts & add composite validations {kibana-pull}96348[#96348] * Data frame analytics: Adds support for runtime fields {kibana-pull}95734[#95734] * Adds Anomaly Explorer charts embeddable {kibana-pull}94396[#94396] * Data frame analytics creation wizard: Add validation step {kibana-pull}93478[#93478] * Adding support for saved object based ML modules {kibana-pull}92855[#92855] * Adds search time runtime support for index based Data Visualizer {kibana-pull}95252[#95252] Metrics:: * Enhanced metrics widget on Observability overview page {kibana-pull}90879[#90879] Platform:: * Enable osquery plugin {kibana-pull}97422[#97422] * Client side search cache {kibana-pull}92439[#92439] Security:: * Added ability to create API keys {kibana-pull}92610[#92610] For more information about the features introduced in 7.13.0, refer to <>. [[enhancements-and-bug-fixes-v7.13.0]] === Enhancements and bug fixes For detailed information about the 7.13.0 release, review the enhancements and bug fixes. [float] [[enhancement-v7.13.0]] === Enhancements Alerting:: * Adds proxyBypassHosts and proxyOnlyHosts Kibana config keys {kibana-pull}95365[#95365] * Make alerts list sortable by name and status {kibana-pull}93426[#93426] * Adds Connectors APIs and deprecates old Actions APIs as per the new Alerting terminology {kibana-pull}92451[#92451] * Adds a Reason indicator to the onClose handler in AddAlert and EditAlert {kibana-pull}92149[#92149] * Ability to filter alerts by string parameters {kibana-pull}92036[#92036] APM:: * Adds agent central configuration for PHP agent {kibana-pull}97462[#97462] * Displays a column for service name in the logs tab in trace overview {kibana-pull}97451[#97451] * Moves the transaction type selector to the search bar {kibana-pull}96685[#96685] * Service overview: Instances table metadata foldout {kibana-pull}96467[#96467] * Instances latency distribution chart tooltips and axis fixes {kibana-pull}95577[#95577] * Color by span type when there's only one service {kibana-pull}90424[#90424] * Break down error table api removing the sparklines {kibana-pull}89138[#89138] Canvas:: * Fixes bug with plot sorting {kibana-pull}98084[#98084] * Creates a Labs service for Presentation Solutions {kibana-pull}95435[#95435] Dashboard:: * Only Apply Explicit Input On Copy To {kibana-pull}98083[#98083] * Makes *Lens* the default editor for creating new panels {kibana-pull}96181[#96181] * Adds shared toolbar component {kibana-pull}94139[#94139] * Adds ability to clone drilldowns {kibana-pull}91959[#91959] Discover:: * Do not set fieldsFromSource when not using fields API {kibana-pull}98575[#98575] * Fixes wrong sort order with empty sort URL parameter {kibana-pull}97434[#97434] * Adds an Options menu for switching between the two table modes {kibana-pull}97120[#97120] * Discover: Limit document table rendering {kibana-pull}96765[#96765] * Adds runtime field editor to Discover {kibana-pull}96762[#96762] * Integration of Runtime Fields editor - edit operation {kibana-pull}95498[#95498] * Improve sidebar rendering for large field lists {kibana-pull}95038[#95038] Elastic Security:: For the Elastic Security 7.13.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Hide Fleet Server policies in standalone agent instructions {kibana-pull}98787[#98787] * Adds troubleshooting link to setup instructions {kibana-pull}98531[#98531] * Adds ability to specify which integration variables should be configurable {kibana-pull}97163[#97163] * Configure Fleet packages and integrations through endpoint {kibana-pull}94509[#94509] * Adds submitOnBlur functionality to QueryStringInput {kibana-pull}93819[#93819] Kibana Home & Add Data:: * Update Cloud plugin to handle new config in kibana.yml {kibana-pull}95569[#95569] Lens & Visualizations:: * Advanced JSON input in visualize editor is always light scheme {kibana-pull}97232[#97232] * Better defaults for top values odering in *Lens* {kibana-pull}97099[#97099] * Visualize runtime fields in *TSVB* {kibana-pull}95772[#95772] * Enables url drilldowns for range selection in *TSVB* {kibana-pull}95296[#95296] * Allow import/export of timelion-sheet saved object in *Timelion* {kibana-pull}95048[#95048] * Allow modifying curve type for line/area series charts in *Lens* {kibana-pull}94675[#94675] * Carry previous configured formatter in Last value in *Lens* {kibana-pull}93784[#93784] * Integrates the color service in *TSVB* {kibana-pull}93749[#93749] * Change the default mode from last value to entire timerange in *TSVB* {kibana-pull}93608[#93608] * Enable `dual mode`, support index patterns and strings in *TSVB* {kibana-pull}92812[#92812] * Implement filtered metric in *Lens* {kibana-pull}92589[#92589] * Show an indicator when using Last Value mode in *TSVB* {kibana-pull}91977[#91977] * Adds the runtime field editor to *Lens* {kibana-pull}91882[#91882] * Introduces new chart switcher in *Lens* {kibana-pull}91844[#91844] * Control round and decimal places in Gauge Visualization when using aggregate functions like average {kibana-pull}91293[#91293] * Integrates legend color picker with the eui palette {kibana-pull}90589[#90589] * Transpose columns in *Lens* {kibana-pull}89748[#89748] * Support for number, date and IP range data types {kibana-pull}76971[#76971] Logs:: * Support runtime fields in the log threshold alert {kibana-pull}97603[#97603] * Display and query runtime fields from KIPs in the log stream and entry flyout {kibana-pull}97467[#97467] * Adds error.stack_trace to the default log formatter {kibana-pull}94906[#94906] * Support Kibana index patterns in the Logs app settings {kibana-pull}94849[#94849] Machine Learning:: * Fixes pagination and sorting on trained models list page {kibana-pull}99061[#99061] * Data Frame Analytics results: ensure model evaluation stats are shown {kibana-pull}97486[#97486] * UI enhancements for anomaly detection rule type {kibana-pull}97626[#97626] * Persist apply time range switch setting in anomaly detection job selector flyout {kibana-pull}97407[#97407] * Anomaly detection rule lookback interval improvements {kibana-pull}97370[#97370] * Adds annotation markers to the anomaly swim lane axis {kibana-pull}97202[#97202] * Data frame analytics: Ensure creation and results views display nested fields correctly {kibana-pull}96905[#96905] * Adds commonly used ranges to date picker {kibana-pull}96501[#96501] * Adds network ML module with four ML jobs for ECS network data {kibana-pull}96480[#96480] * Adds runtime support for anomaly charts & add composite validations {kibana-pull}96348[#96348] * Data frame analytics: Add accuracy and recall stats to results view {kibana-pull}96270[#96270] * Data frame analytics: Adds support for runtime fields {kibana-pull}95734[#95734] * Adds anomaly charts embeddables to Dashboard from Anomaly Explorer page {kibana-pull}95623[#95623] * Adds search time runtime support for index based Data Visualizer {kibana-pull}95252[#95252] * Adding ML module asset type {kibana-pull}94950[#94950] * Data frame analytics: Fix ROC curve chart for binary classification {kibana-pull}94791[#94791] * Adds Anomaly Explorer charts embeddable {kibana-pull}94396[#94396] * Data frame analytics creation wizard: Add validation step {kibana-pull}93478[#93478] * Adding support for saved object based ML modules {kibana-pull}92855[#92855] * Rename advanced setting ml:fileDataVisualizerMaxFileSize to fileUpload:maxFileSize and increase max geojson upload size to 1GB {kibana-pull}92620[#92620] * Use indices options in anomaly detection job wizards {kibana-pull}91830[#91830] Management:: * Fixes search sessions docs link {kibana-pull}98918[#98918] * Fixes display of expired session state in management {kibana-pull}98915[#98915] * Transforms/Data Frame Analytics: Fix freezing wizard for indices with massive amounts of fields {kibana-pull}98259[#98259] * Fixes handling of switching modes & handling of non JSON data {kibana-pull}97983[#97983] * Fixes copy as cURL {kibana-pull}97968[#97968] * Fixes field filtering {kibana-pull}97189[#97189] * Fixes runtime mapping texts to runtime fields, add transform switch modal {kibana-pull}97008[#97008] * Support max primary shard size rollover field {kibana-pull}96545[#96545] * Move other bucket into Search Source {kibana-pull}96384[#96384] * Added readonly toggle in cold phase {kibana-pull}96036[#96036] * Adds "Include aliases" toggle to the Restore Snapshot Wizard {kibana-pull}95882[#95882] * Display time labels in search session popover {kibana-pull}95082[#95082] * Make session name editable {kibana-pull}94610[#94610] * Cloud deployment form when adding new cluster {kibana-pull}94450[#94450] * Adds multitable support to Inspector {kibana-pull}94077[#94077] * Adds support for frozen phase {kibana-pull}93068[#93068] * Index pattern field editor {kibana-pull}88995[#88995] Maps:: * Show layer name in tooltip {kibana-pull}97175[#97175] * Adds visibility toggle and fit to bounds buttons to layer quick actions menu {kibana-pull}97013[#97013] * Enable filtering with spatial relationships on geo_point fields {kibana-pull}96849[#96849] * Enable distance filtering on geo_shape {kibana-pull}96832[#96832] * Adds cache control to mvt endpoints {kibana-pull}94861[#94861] * Do not track total hits for elasticsearch search requests {kibana-pull}91754[#91754] Metrics:: * Increase the groupBy pagination size on metric threshold alerts {kibana-pull}99683[#99683] * Adds anomalies tab to enhanced host details overlay {kibana-pull}96967[#96967] * Improved UI error messaging for handling ES query errors in a snapshot endpoint {kibana-pull}96871[#96871] * Adds log rate tab to enhanced host details overlay {kibana-pull}96596[#96596] * Change composite.size of snapshot ES query to improve speed {kibana-pull}95994[#95994] * Change top_hits aggregation to top_metrics for snapshot api {kibana-pull}95644[#95644] * Adds preview charts to Inventory alerts {kibana-pull}91658[#91658] * Enhanced metrics widget on Observability overview page {kibana-pull}90879[#90879] * Adds anomalies table to Metrics app {kibana-pull}90305[#90305] Monitoring:: * Fetch detection adoption metrics {kibana-pull}97789[#97789] * Added ability to possibly distinguish between Agent type metrics in APM {kibana-pull}95129[#95129] * Added cgroup option for APM cpu usage {kibana-pull}90873[#90873] Operations:: * HTTP-Server: Graceful shutdown {kibana-pull}97223[#97223] * Adds docker images for ARM64 based operating systems {kibana-pull}84831[#84831] Platform:: * Enable osquery plugin {kibana-pull}97422[#97422] * Adds search deep links for APM, Metrics, Logs, and Dev Tools {kibana-pull}96135[#96135] * Adds per space configuration to custom header banner {kibana-pull}94449[#94449] * Don't trigger auto-refresh until previous refresh completes {kibana-pull}93410[#93410] * Adds helper for using `find` with `pit` and `search_after` {kibana-pull}92981[#92981] * Client side search cache {kibana-pull}92439[#92439] * Adds id and copyMetaFrom arg to mapColumn fn + add configurable onError argument to math fn {kibana-pull}90481[#90481] Reporting:: * Re-write CSV Export using SearchSource {kibana-pull}88303[#88303] Security:: * Forbid setting the Location and Refresh custom response headers {kibana-pull}98129[#98129] * Adds config properties for HTTP security headers {kibana-pull}97158[#97158] * Added ability to create API keys {kibana-pull}92610[#92610] * Expose session invalidation API {kibana-pull}92376[#92376] Sharing:: * Allows editing broken visualizations caused by runtime fields changes {kibana-pull}94798[#94798] Uptime:: * Synthetics - add transfer size, resource size, and status to waterfall flyout {kibana-pull}97042[#97042] * Preconfigured alert history index connector {kibana-pull}94909[#94909] * Adds Custom Fleet Integration UI {kibana-pull}91584[#91584] * Support agent data streams {kibana-pull}91469[#91469] * Synthetic check steps list view {kibana-pull}90978[#90978] * Service overview: Introduce time-series comparison {kibana-pull}88665[#88665] * Search made easy {kibana-pull}88581[#88581] [float] [[fixes-v7.13.0]] === Bug Fixes Alerting:: * Fixing Elasticsearch query rule to allow matching on 0 documents {kibana-pull}97735[#97735] * Create task to cleanup action execution failures {kibana-pull}96971[#96971] * Skip rendering empty add action variables button as disabled {kibana-pull}96342[#96342] * Ensures ES Query uses the correct sort value to avoid duplicate detections {kibana-pull}94349[#94349] * Deprecates reloadAlerts and replaces with onSave in Alert creation and editing {kibana-pull}91997[#91997] APM:: * Persist transaction type when navigating from service inventory {kibana-pull}99407[#99407] * Fetch data from the service overview with correct transaction type {kibana-pull}98657[#98657] * Transaction duration histogram buckets without samples are clickable {kibana-pull}98540[#98540] * Fix responsive breakpoints in header controls {kibana-pull}98179[#98179] * Fix incorrect APM throughput (tpm) on home page {kibana-pull}95991[#95991] * Fix spaces issue for static index patterns {kibana-pull}95799[#95799] * Prevent infinite redirects on Observability getting started page {kibana-pull}95083[#95083] Canvas:: * Fixes browser timezone in screenshots {kibana-pull}93583[#93583] Dashboard:: * Disable context menu "Explore underlying data" by default {kibana-pull}98039[#98039] * Fixes Lens and TSVB chart tooltip positioning relative to global headers {kibana-pull}94247[#94247] * Improves lost indexpattern scenario in saved visualization {kibana-pull}91377[#91377] Design:: * A11y improvements, focus glitches fixes, unskip tests {kibana-pull}94148[#94148] Discover:: * Exclude metafields from fields request {kibana-pull}99443[#99443] * Request docvalue fields from fields {kibana-pull}98874[#98874] * Fixes redirect from Dashboard {kibana-pull}97098[#97098] * Sort option: Introduce format parameter {kibana-pull}96774[#96774] * Remove redundant execution of onRequestStart when fetching data {kibana-pull}94093[#94093] * The `discover:aggs:terms:size` advanced setting got removed since it was no longer used {kibana-pull}93437[#93437] * Close inspector when switching app {kibana-pull}92994[#92994] Elastic Security:: For the Elastic Security 7.13.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Correctly parse falsy YAML fields in agent policy integrations {kibana-pull}95966[#95966] * Match telemetry key names to UI agent states {kibana-pull}95567[#95567] * Ignore inactive agents when removing a policy {kibana-pull}94311[#94311] * Correctly track install status of an integration {kibana-pull}93464[#93464] * Fix default integration name when adding 10+ names {kibana-pull}93278[#93278] * Prevent duplicate enrollment token names {kibana-pull}92735[#92735] * Set all keyword and text fields for `index.query.default_field` index template setting {kibana-pull}91791[#91791] Lens & Visualizations:: * Fixes problem with controls not being displayed on a map in *Vega* {kibana-pull}97373[#97373] * Directly submit query in *Lens* {kibana-pull}97254[#97254] * Improve handling of mixed axes in *Lens* {kibana-pull}97236[#97236] * Improve custom label handling in *Lens* {kibana-pull}97219[#97219] * Visualize data table: Summary row is detached and jumps in Firefox {kibana-pull}97083[#97083] * Fixes mobile view in *Lens* {kibana-pull}96957[#96957] * Enable partial pasting in drilldowns {kibana-pull}96830[#96830] * Fixes problem with series being displayed twice {kibana-pull}96773[#96773] * Fixes bug with escape colons in field names in the metric/split parameter in *Timelion* {kibana-pull}96770[#96770] * Fixes fields clearing within the Editor {kibana-pull}96767[#96767] * Fixes annotation line doesn't work if no index pattern is applied in *TSVB* {kibana-pull}96646[#96646] * Fixes transferable logic to handle newer operations on datasource change in *Lens* {kibana-pull}96617[#96617] * Fixes not populating fields list if "Auto apply" is off in *TSVB* {kibana-pull}96298[#96298] * Wrong custom values formatting for the empty buckets in *TSVB* {kibana-pull}96293[#96293] * Fixes wrong field list on overriding index pattern for series in *TSVB* {kibana-pull}96204[#96204] * Stacked line charts incorrectly shows one term as 100% {kibana-pull}96203[#96203] * Do not re-render embeddable so often in *Lens* {kibana-pull}95653[#95653] * Fixes area percentage gaps with zero fitting function in *Lens* {kibana-pull}94086[#94086] * Fixes wrong suggestions from Datatable to other visualizations in *Lens* {kibana-pull}93920[#93920] * Remove warning about ordinal x-domain in *Lens* {kibana-pull}93049[#93049] * Set pie chart slices sorted clockwise in *Lens* {kibana-pull}92617[#92617] * Allow image loading without CORS policy by changing the default to crossOrigin=null in *Vega* {kibana-pull}91991[#91991] * Markdown variables not working for empty labels in *TSVB* {kibana-pull}91838[#91838] Logs:: * Handle undefined case for runtime_mappings in ML job configs {kibana-pull}98728[#98728] * Don't break log stream on syntactically invalid KQL {kibana-pull}98191[#98191] * Use create over update for log source configuration updates {kibana-pull}97818[#97818] * Allow for missing properties on ES shard failure responses {kibana-pull}96768[#96768] * Hide Create Alert option when user lacks privileges {kibana-pull}92000[#92000] Machine Learning:: * Fixes alerting rule preview {kibana-pull}98907[#98907] * Data frame analytics: Fix special character escaping for Vega scatterplot matrix {kibana-pull}98763[#98763] * Disable Single Metric Viewer and Anomaly Explorer charts for nested terms aggregations {kibana-pull}98510[#98510] * Fixes Single Metric Viewer and Anomaly Explorer charts still loading even after failure {kibana-pull}98490[#98490] * Improve check for runtime fields in datafeed query {kibana-pull}98289[#98289] * Fixes anomaly swim lane embeddable data fetch on minor resize {kibana-pull}98258[#98258] * Fixes Single Metric Viewer annotation tooltip hard to trigger {kibana-pull}98233[#98233] * Fixes Single Metric Viewer forecast bounds being cut off in time slider in context chart {kibana-pull}98027[#98027] * Data frame analytics map: Deselect node after node action or flyout close {kibana-pull}97922[#97922] * Data frame analytics wizard: Ensure progress is updated correctly {kibana-pull}97889[#97889] * Fixing categorization job wizard with CCS {kibana-pull}97855[#97855] * Fixes Anomaly Detection job model memory limit input editable when datafeed is open {kibana-pull}97723[#97723] * Fixes Data Visualizer event rate chart empty for some indices when using long time range {kibana-pull}97655[#97655] * Fixes vertical overflow of the anomaly swim lane embeddable {kibana-pull}97127[#97127] * Ensure ROC chart gets loaded correctly {kibana-pull}96890[#96890] * Fixes check for too many selected buckets in Anomaly Explorer charts {kibana-pull}96771[#96771] * Excludes metadata fields from jobs caps fields service response {kibana-pull}96548[#96548] * Fixes switches positioning on the transform and data frame analytics wizards {kibana-pull}96535[#96535] * Data frame analytics exploration: Ensure training filters work as expected {kibana-pull}96500[#96500] * Fixes anomaly detection wizard full time range chart blank with saved search containing runtime fields {kibana-pull}95700[#95700] * Adds pagination control to Data Visualizer failures to rendering all errors at a single time {kibana-pull}93839[#93839] * Fixes styling of Single Metric Viewer chart for dark theme {kibana-pull}93581[#93581] Management:: * Transforms: Fix handling of fields with keyword mapping available {kibana-pull}98882[#98882] * Fixes snapshot name wrapping issue {kibana-pull}97527[#97527] * Prevent # char in repository name {kibana-pull}97495[#97495] * Remove panel desaturation {kibana-pull}97473[#97473] * Fixes runtime mappings not copy-able in Transform wizard {kibana-pull}95996[#95996] * Extract License service from CCR and Watcher into license_api_guard plugin in x-pack {kibana-pull}95973[#95973] * Integer validator for timing and rollover fields {kibana-pull}95438[#95438] * Fixes Transform runtime mappings retain original definition when cloning {kibana-pull}95436[#95436] * Fixes Transform runtime mapping editor so mappings can be removed {kibana-pull}95108[#95108] * Remove cloud validation for slm policy {kibana-pull}93609[#93609] * Fix: do not send non-serializable fields over HTTP {kibana-pull}93207[#93207] * Correctly format numeric histograms outside Discover {kibana-pull}91576[#91576] * Prevent rewrite of date_histogram interval {kibana-pull}91408[#91408] Maps:: * Fixes cannot read propery 'getImage' of undefined {kibana-pull}97829[#97829] * Hide label UX for 3rd party mvt lines and polygons {kibana-pull}97731[#97731] * Fixes layer in preview mode shows different results after uploading geojson file when feature-count exceeds ES-search limit {kibana-pull}97157[#97157] * Only allow sorting on numeric fields for tracks {kibana-pull}96877[#96877] * Fixes fit to data doesn't work in TMS {kibana-pull}95980[#95980] * Remove invisible layers from querybar {kibana-pull}94943[#94943] * Safe-erase text-field {kibana-pull}94873[#94873] * Chunk geojson upload to keep import requests under 1MB {kibana-pull}93678[#93678] * Compare SearchFilters to determine whether mvt layers can skip update {kibana-pull}93531[#93531] * Support GeometryCollections in GeoJson upload {kibana-pull}93507[#93507] * Abort ES-search when tile request is cancelled {kibana-pull}92069[#92069] * Track tile loading status {kibana-pull}91585[#91585] Metrics:: * Prevent rerendering of Waffle Map when user opens View List or Manage Views modal {kibana-pull}99411[#99411] * Don't mount NodeContextMenu when is not visible {kibana-pull}99207[#99207] * Use the normalized field for CPU usage for Observability Overview {kibana-pull}98995[#98995] * Don't render node if group width is 0 or NaN {kibana-pull}98980[#98980] * Fixing race condition in Metric Threshold alerts {kibana-pull}98563[#98563] * Fixes chart count total in Metrics Explorer {kibana-pull}94792[#94792] * Fixes preview charts for inventory alerts when using a filter {kibana-pull}94561[#94561] * Use memory limit for K8S when available {kibana-pull}93686[#93686] * Hide Create Alert options for a read-only user {kibana-pull}91951[#91951] Monitoring:: * 7.13: Fix size with detection rule telemetry {kibana-pull}99900[#99900] * Limit alert creation to allowed spaces {kibana-pull}99128[#99128] Platform:: * Avoid adding the health monitoring data into the service status {kibana-pull}98265[#98265] * Remove ms label from CPU load on status page {kibana-pull}92836[#92836] Querying & Filtering:: * Remove resize-observer from FilterBar {kibana-pull}99603[#99603] * Skip slow wildcard checks when query is only * {kibana-pull}96902[#96902] * Fixes focus state of the changing all filters button after closing popover {kibana-pull}94919[#94919] * Fixes spaces are converted to non-breaking spaces in Safari. Support escaping unicode characters in KQL. Make non-breaking space part of a KQL grammar {kibana-pull}94688[#94688] Reporting:: * Adds a link to the reporting management dashboard in the started job toast {kibana-pull}93961[#93961] Uptime:: * Fixes Monitor status toggle alert receovery state {kibana-pull}89273[#89273] [[release-notes-7.12.1]] == {kib} 7.12.1 For information about the {kib} 7.12.1 release, review the following information. [float] [[security-update-7.12.1]] === Security update A denial of service vulnerability was found in the {kib} webhook actions due to a lack of timeout or a limit on the request size. An attacker with permissions to create webhook actions could drain the {kib} host connection pool, making {kib} unavailable for all other users. Thank you Dominic Couture for finding this issue. *Affected versions* + Affected versions include {kib} 7.12.0 and earlier. *Solution* + If you are using {kib} webhook actions, upgrade to 7.12.1. [float] [[breaking-changes-7.12.1]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade, review the <>, then mitigate the impact to your application. [float] [[enhancement-v7.12.1]] === Enhancement Design:: * Customize Panel Submit {kibana-pull}95704[#95704] Management:: * Adds generated copy for all processors {kibana-pull}95507[#95507] [float] [[fixes-v7.12.1]] === Bug Fixes Dashboard:: * Fixes iFrame Filtering Issues {kibana-pull}95997[#95997] * Allows By Value Flow Without Visualize Save Permissions {kibana-pull}95951[#95951] * Fixes adding columns from doc viewer table tab {kibana-pull}95748[#95748] * Adds Discrete Library Option to Save Modal {kibana-pull}94589[#94589] Elastic Security:: For the Elastic Security 7.12.1 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Machine Learning:: * Data Frame Analytics creation: ensure job config validity persists when switching from/to form/editor {kibana-pull}94654[#94654] * Data Frame Analytics results: Ensure outlier detection results view displays feature influence correctly {kibana-pull}94493[#94493] * Fixes Index data visualizer not removing query string with loaded saved search {kibana-pull}94245[#94245] * Data Frame Analytics: Fix scatterplot matrix boilerplate visibility with no fields selected {kibana-pull}96590[#96590] * Data Frame Analytics: Don't allow user to pick an index pattern or saved search based on CCS {kibana-pull}96555[#96555] Management:: * Transforms: Wizard displays warning callout for source preview when used with CCS against clusters below 7.10 {kibana-pull}96297[#96297] * Fixes updating deleting sessions from non-default space {kibana-pull}96123[#96123] * Disables navigation when a step is invalid {kibana-pull}95939[#95939] * Fixes 7.12 migration fail if the "timepicker:quickRanges" is null {kibana-pull}95767[#95767] * Fixes serialization and deserialization of user input for "patterns" fields {kibana-pull}94689[#94689] * Transforms: Fixes missing number of transform nodes and error reporting in stats bar {kibana-pull}93956[#93956] * Transforms: Improves error handling for transform wizard when Kibana index pattern or saved search fails to load {kibana-pull}93915[#93915] * Improves error message when localStorage quota is reached {kibana-pull}93779[#93779] Maps:: * Fixes Kibana does not recognize a valid geo_shape index when attempting to create a Tracking Containment alert {kibana-pull}96633[#96633] * Shows empty list when all saved maps in list deleted {kibana-pull}95126[#95126] * Fixes tooltips with timestamp appear as epoch {kibana-pull}95106[#95106] Monitoring:: * Fixes issue with loading logstash node page under standalone cluster {kibana-pull}93617[#93617] * Fetches status once and change fetchStatus to support an array of clusters {kibana-pull}91749[#91749] Operations:: * Improves performance of data stream API {kibana-pull}97058[#97058] * Migrations v2 ignore fleet agent events {kibana-pull}96690[#96690] * Resolves regression where Elastic Endgame rules would warn about unmapped timestamp override field {kibana-pull}96394[#96394] * Updates query for ping histogram {kibana-pull}95495[#95495] * Migrations v2: Retry tasks that timeout {kibana-pull}95305[#95305] * Fixes issues preventing the SysV service from starting Kibana {kibana-pull}95018[#95018] * Tolerate log entries for which fields retrieval fails {kibana-pull}94972[#94972] * Fixes positioning of space name and avatar in selector dropdown {kibana-pull}94169[#94169] * Updates Node.js from version 14.16.0 to 14.16.1 {kibana-pull}96382[#96382] Security:: * Improves role management error handling for partially authorized users {kibana-pull}96468[#96468] [[release-notes-7.12.0]] == {kib} 7.12.0 For information about the {kib} 7.12.0 release, review the following information. [float] [[breaking-changes-7.12.0]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.12.0, review the breaking changes, then mitigate the impact to your application. // tag::notable-breaking-changes[] [discrete] [[breaking-89632]] .Removes geo threshold alert type [%collapsible] ==== *Details* + Geo containment alerts and the Geo threshold alert type have similar functionality, so the Geo threshold alert type has been removed. For more information, refer to {kibana-pull}89632[#89632]. *Impact* + Use Geo containment alerts. ==== [discrete] [[breaking-so-upgrade-migrations]] .New saved object upgrade migrations algorithm [%collapsible] ==== *Details* + When you upgrade to 7.12.0, {kib} uses a new algorithm to migrate saved objects to reduce the downtime caused by temporary issues, such as network errors or temporarily overloaded {es} clusters. With the new algorithm, {kib} now retries the failed migrations without user intervention, which allows the migration to continue after the issues are resolved. For more information, refer to <>. *Impact* + Before you upgrade to 7.12.0, review the documentation for <>. ==== [discrete] [[breaking-kibana-support-for-ccs]] .{kib} support for CCS [%collapsible] ==== *Details* + In 7.12.0, {kib} introduces a major incompatibility with cross-cluster search. When one or more remote {es} clusters use a version prior to 7.12.0, *Discover*, *Maps*, *Canvas*, and *Logs* are unable to display the cluster data. For information about the cross-cluster search limitations in {kib}, refer to {kibana-issue}94965[#94965]. *Impact* + To display the cluster data in *Discover*, load documents directly from `_source`. . Open the main menu, then click *Stack Management > Advanced Settings*. . Go to `discover:searchFieldsFromSource`, then select *On*. ==== // end::notable-breaking-changes[] [float] [[known-issues-v7.12.0]] === Known issues *Saved object migrations* When upgrading to 7.12.0, {kib} retries failed saved object migrations without user intervention. Impacts include: * In 7.12.0, upgrade migrations fail because of a large number of documents in the `.kibana` index when you use **Fleet**. * Corrupt saved objects caused by manual editing or integrations. * User-defined index templates that cause new `.kibana*` indices to have incompatible settings or mappings. * An unhealthy {es} cluster. * Different versions of {kib} connected to the same {es} index. * Incompatible `xpack.tasks.index` configuration setting. If your upgrade migration fails repeatedly, refer to {kibana-ref}/upgrade-migrations.html#preventing-migration-failures[preventing migration failures]. *Cluster performance degradation* Details: {kib} fails to update and delete {kibana-ref}/search-sessions.html[search sessions objects] created in non-default spaces. Impact: Cluster performance degrades due to a flooding of async search API usage. For information on the workaround for 7.12.0, refer to {kibana-issue}96124[#96124]. For information on the fix in 7.12.1, refer to {kibana-pull}96123[#96123]. // end::known-issues[] [float] [[deprecations-7.12.0]] === Deprecations The following functionality is deprecated in 7.12.0, and will be removed in 8.0.0. Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you upgrade to 7.12.0. [discrete] [[deprecation-86474]] .Deprecates `services.callCluster` in alerts and actions executors [%collapsible] ==== *Details* + Deprecates `services.callCluster` in the alert and action type executors. For more information, refer to {kibana-pull}86474[#86474]. *Impact* + Use `services.scopedClusterClient`. ==== [discrete] [[deprecation-87114]] .Deprecates configuring [kib] with a `server.host` value of `0` [%collapsible] ==== *Details* + In the new version of joi, `0` is an invalid hostname. When upgraded, the extra validate function can be removed. For more information, refer to {kibana-pull}87114[#87114]. *Impact* + To bind to all interfaces, use `0.0.0.0`. ==== [discrete] [[deprecation-89296]] .Deprecates the use of `elasticsearch.logQueries` [%collapsible] ==== *Details* + When `logging.verbose: true` or `logging.root.level: 'debug'`, {es} query logs are now always shown. In 7.11.0 and earlier, {es} query logs were not included in verbose logging unless `elasticsearch.logQueries` was configured. For more information, refer to {kibana-pull}89296[#89296]. *Impact* + To use verbose logging without {es} query logs, configure the query logs to `off` in kibana.yml: [source,js] ---- logging: loggers: - name: elasticsearch.query level: off ---- To log the elasticsearch query only: [source,js] ---- logging: loggers: - name: elasticsearch.query level: all appenders: [console] ---- ==== [float] [[features-7.12.0]] === Features {kib} 7.12.0 adds the following new and notable features. Alerting:: * Search alert {kibana-pull}88528[#88528] APM:: * Correlations Beta {kibana-pull}89952[#89952] Canvas:: * Support IP data type {kibana-pull}85087[#85087] Dashboard:: * Rename Visualize to Visualize Library {kibana-pull}91015[#91015] * Copy Panel to Dashboard {kibana-pull}90856[#90856] * Adds switch for color syncing between charts on dashboards {kibana-pull}86180[#86180] Discover:: * Support mapping defined runtime fields in Discover {kibana-pull}83891[#83891] Elastic Security:: For the Elastic Security 7.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Lens & Visualizations:: * Support histogram mapping type for all numeric functions in *Lens* {kibana-pull}90357[#90357] * Adds percentile to *Lens* {kibana-pull}86490[#86490] * Adds counter rate, cumulative sum, differences and moving average to *Lens* {kibana-pull}84384[#84384] Logs:: * Show anomalies across both the log rate and categorization ML jobs in a swimlane visualization {kibana-pull}89589[#89589] Machine Learning:: * Adds embedded map to geo_point fields for Data Visualizer {kibana-pull}88880[#88880] * Anomaly Detection: add anomalies map to explorer for jobs with 'lat_long' function {kibana-pull}88416[#88416] * Data Frame Analytics: Adds scatterplot matrix to regression/classification results pages {kibana-pull}88353[#88353] * Redesign file-based Data Visualizer {kibana-pull}87598[#87598] Management:: * Enable Search Sessions {kibana-pull}91097[#91097] * Policy phases redesign {kibana-pull}88671[#88671] * Replace search session constants with kibana.yml configs {kibana-pull}88023[#88023] * Adds support for URI parts processor {kibana-pull}86163[#86163] * Management UI {kibana-pull}81707[#81707] Maps:: * GA Geo containment alerts. Remove Geo containment alert experimental config settings and refs {kibana-pull}90301[#90301] Platform:: * Implement custom global header banner {kibana-pull}87438[#87438] For more information about the features introduced in 7.12.0, refer to <>. [[enhancements-and-bug-fixes-v7.12.0]] === Enhancements and bug fixes For detailed information about the 7.12.0 release, review the enhancements and bug fixes. [float] [[enhancement-v7.12.0]] === Enhancements Alerting:: * Adds support for custom alert ids {kibana-pull}89814[#89814] * Allow user to select existing connector of same type when fixing broken connector {kibana-pull}89062[#89062] * Search alert {kibana-pull}88528[#88528] * Adds a "Refresh" button to the alerts list and alert details views {kibana-pull}87016[#87016] * Alert and Connector flyouts Save and Save&Test buttons should be active by default {kibana-pull}86708[#86708] APM:: * Correlations Beta {kibana-pull}89952[#89952] * Round start and end values {kibana-pull}89030[#89030] * Instances latency distribution chart {kibana-pull}88546[#88546] * Showing confirmation modal on Alert Add/Edit when flyout closed without saving and changes made {kibana-pull}86370[#86370] Canvas:: * Support IP data type {kibana-pull}85087[#85087] Dashboard:: * Dashboard Save As New by Default {kibana-pull}91761[#91761] * Stay in Edit Mode After Dashboard Quicksave {kibana-pull}91729[#91729] * Combine Discard & Cancel {kibana-pull}91267[#91267] * Unsaved Changes Badge {kibana-pull}91073[#91073] * Rename Visualize to Visualize Library {kibana-pull}91015[#91015] * Copy Panel to Dashboard {kibana-pull}90856[#90856] * Improves error messages when in Dashboard {kibana-pull}90668[#90668] * Adds Save as button to top menu {kibana-pull}90320[#90320] * Enable right click on visualizations and dashboards listings {kibana-pull}88936[#88936] * Url template editor {kibana-pull}88577[#88577] * Enable "by value embeddables" (dashboard.allowByValueEmbeddables) by default {kibana-pull}88390[#88390] * Align Lens & Visualize Breadcrumbs {kibana-pull}86941[#86941] * Remove Panels from URL {kibana-pull}86939[#86939] * Align Lens & Visualize Top nav Buttons & Behaviour {kibana-pull}86922[#86922] * URL encoding for URL drilldown {kibana-pull}86902[#86902] * Adds switch for color syncing between charts on dashboards {kibana-pull}86180[#86180] Discover:: * Replace EuiCodeBlock with Monaco editor in Discover {kibana-pull}90781[#90781] * Adds support for unmapped fields using the fields API {kibana-pull}89074[#89074] * Adds "Hide chart" / "Show chart" persistence {kibana-pull}88603[#88603] * Grouping multifields in a doc table {kibana-pull}88560[#88560] * Deangularize navbar in context app {kibana-pull}86353[#86353] * Change default sort handling {kibana-pull}85561[#85561] * Support mapping defined runtime fields in Discover {kibana-pull}83891[#83891] Elastic Security:: For the Elastic Security 7.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Install Lens assets from packages if present {kibana-pull}88189[#88189] Kibana Home & Add Data:: * Fixes values of `products.min_price` field in Kibana sample ecommerce data set {kibana-pull}90428[#90428] Lens & Visualizations:: * Support min and max with histogram data types in *TSVB* {kibana-pull}91581[#91581] * Adds a new "Series Agg" to count the number of series in *TSVB* {kibana-pull}91225[#91225] * Communicate the index pattern to the dashboard in *Timelion* {kibana-pull}90623[#90623] * Support histogram mapping type for all numeric functions in *Lens* {kibana-pull}90357[#90357] * Table column text alignment in *Lens* {kibana-pull}89300[#89300] * Hide column in table in *Lens* {kibana-pull}88680[#88680] * Use mapbox instead of leaflet in *Vega* {kibana-pull}88605[#88605] * Use first decimal when required for data summaries in *Lens* {kibana-pull}88463[#88463] * User should be able to set a specific tilemap service using the mapStyle property in *Vega* {kibana-pull}88440[#88440] * Use datagrid with resizable columns for datatable in *Lens* {kibana-pull}88069[#88069] * Adds specific IP and Range/Interval sorting to datatable in *Lens* {kibana-pull}87006[#87006] * Adds more in-editor Advanced documentation in *Lens* {kibana-pull}86821[#86821] * Adds percentile to *Lens* {kibana-pull}86490[#86490] * Allow custom label for fields via index pattern field management in *TSVB* {kibana-pull}84612[#84612] * Adds counter rate, cumulative sum, differences and moving average to *Lens* {kibana-pull}84384[#84384] Logs:: * Show anomalies across both the log rate and categorization ML jobs in a swimlane visualization {kibana-pull}89589[#89589] * Display category in anomalies table {kibana-pull}88677[#88677] * Adds sorting capabilities to categories page {kibana-pull}88051[#88051] Machine Learning:: * Anomaly Detection: when no anomalies present for time range show no results message {kibana-pull}91151[#91151] * Adds Create Data Frame Analytics card to Data Visualizer {kibana-pull}91011[#91011] * Data Frame Analytics creation wizard: adds support for extended hyper-parameters {kibana-pull}90843[#90843] * Data Frame Analytics: Support early stopping data frame analytics job parameter {kibana-pull}90695[#90695] * Data Frame Analytics: ROC Curve Chart {kibana-pull}89991[#89991] * Data Frame Analytics creation: improve existing job check {kibana-pull}89627[#89627] * Adds Lens and Discover integration to index based Data Visualizer {kibana-pull}89471[#89471] * Anomaly Detection alert type {kibana-pull}89286[#89286] * Adds ML deep links to navigational search {kibana-pull}88958[#88958] * Adds embedded map to geo_point fields for Data Visualizer {kibana-pull}88880[#88880] * Improving model snapshot revert UI experience {kibana-pull}88588[#88588] * Anomaly Detection: add anomalies map to explorer for jobs with 'lat_long' function {kibana-pull}88416[#88416] * Data Frame Analytics: Adds scatterplot matrix to regression/classification results pages {kibana-pull}88353[#88353] * Redesign file-based Data Visualizer {kibana-pull}87598[#87598] * Adds documentation links in the help menu for machine learning {kibana-pull}85366[#85366] Management:: * Transforms: Adds missing bucket checkbox to group by popover form {kibana-pull}91650[#91650] * Transforms: Adds retention policy options to transform UI {kibana-pull}91162[#91162] * Enable Search Sessions {kibana-pull}91097[#91097] * Adds better UI support for runtime fields Transforms {kibana-pull}90363[#90363] * Adds folding in kbn-monaco and update some viewers {kibana-pull}90152[#90152] * Fix retrieval of unmapped fields; Add field filters {kibana-pull}89837[#89837] * Policy phases redesign {kibana-pull}88671[#88671] * Adds runtime fields to index patterns and searchsource {kibana-pull}88542[#88542] * Timeline component {kibana-pull}88024[#88024] * Replace search session constants with kibana.yml configs {kibana-pull}88023[#88023] * Managed data streams renamed to Fleet-managed and table layout improvement {kibana-pull}86285[#86285] * Adds support for URI parts processor {kibana-pull}86163[#86163] * Management UI {kibana-pull}81707[#81707] Maps:: * GA Geo containment alerts. Remove Geo containment alert experimental config settings and refs {kibana-pull}90301[#90301] * Allow saving maps to dashboards {kibana-pull}88759[#88759] * Use chart pallete registry to support sync colors in dashboard {kibana-pull}88099[#88099] * Scale control {kibana-pull}88031[#88031] * Support geometry-collection {kibana-pull}87867[#87867] * Set containment alert recovery action group to 'No longer contained' {kibana-pull}87182[#87182] * Show map saved objects in visualize listing page {kibana-pull}87165[#87165] * Term join limit {kibana-pull}86491[#86491] * Labels for polygons and lines {kibana-pull}86191[#86191] * Always show solution layers {kibana-pull}86053[#86053] Metrics:: * Adds ability for user to set anomaly threshold {kibana-pull}90313[#90313] * Adds warning severity to Metric Alerts {kibana-pull}90070[#90070] * Adds helper text to of expressions when creating Threshold Alerts {kibana-pull}89750[#89750] * Adds ability to filter anomaly detection datafeed {kibana-pull}89721[#89721] * Adds custom metrics to node tooltip {kibana-pull}88545[#88545] Monitoring:: * Enable edit/create for Stack Monitoring alerts in Alerts Management {kibana-pull}91726[#91726] * Large shard alert {kibana-pull}89410[#89410] * Remove deprecated watcher-based cluster alerts {kibana-pull}85047[#85047] Operations:: * Rules table page size increase {kibana-pull}93993[#93993] * Surface package version used in a package policy in UI {kibana-pull}93712[#93712] * Filtering runtime mappings in anomaly detection wizards {kibana-pull}91534[#91534] * Prevent duplicate notifications about the same anomaly result {kibana-pull}91485[#91485] * Anomaly Detection alert initialisation from the ML app {kibana-pull}91283[#91283] * Adds index pattern runtime fields to anomaly detection wizards {kibana-pull}91168[#91168] * Format `PingList` duration time as seconds when appropriate {kibana-pull}90703[#90703] * Adds nav search keywords for uptime and user experience app {kibana-pull}90616[#90616] * Support `pit` and `search_after` in server `savedObjects.find` {kibana-pull}89915[#89915] * Feature/80166 add waterfall flyout {kibana-pull}89449[#89449] * Waterfall filters {kibana-pull}89185[#89185] * Enables support for ES clusters using `action.destructive_requires_name=true` {kibana-pull}88986[#88986] * Break down transaction table api removing the sparklines {kibana-pull}88946[#88946] * Adds Label option for Dropdown Control {kibana-pull}88505[#88505] Platform:: * Adds support for limited concurrency tasks {kibana-pull}90365[#90365] * Implement custom global header banner {kibana-pull}87438[#87438] * Implement new palette service {kibana-pull}86876[#86876] * Allows apps to register searchable keywords for Global Search {kibana-pull}85686[#85686] * Use elastic chart library for bar/area/line charts in Visualize {kibana-pull}78154[#78154] Security:: * Allow custom index privileges for role management {kibana-pull}88076[#88076] * Redesign user management page, and allow disabling users {kibana-pull}87133[#87133] * Adds audit events for spaces {kibana-pull}86343[#86343] Sharing:: * Expose anonymous access through a switch in sharing menu {kibana-pull}86965[#86965] Uptime:: * Remove UI filters from UI {kibana-pull}89793[#89793] * Expand synthetic journey step thumbnail on hover {kibana-pull}89179[#89179] * Service overview: Introduce time-series comparison {kibana-pull}88665[#88665] Other:: * Updated favicons {kibana-pull}87271[#87271] [float] [[fixes-v7.12.0]] === Bug Fixes Alerting:: * Skips Alert Instances that were instantiated but have no scheduled actions {kibana-pull}91179[#91179] * Fixes a bad UX for `xpack.actions.enabled` is set as false. UI should show the proper message instead of the endless spinner {kibana-pull}89043[#89043] * Ensures we always select the correct index in UI tests {kibana-pull}88876[#88876] * Adds missing configuration options for the alerting related plugins to the kibana-docker {kibana-pull}88297[#88297] * Gracefully handling unknown action type {kibana-pull}86910[#86910] * Edit alert should show and update all actions with deleted connectors {kibana-pull}86838[#86838] APM:: * Fixes hidden search bar in error pages while loading {kibana-pull}93139[#93139] * Fixes duplicate ML job creation for existing environments {kibana-pull}93098[#93098] Dashboard:: * Fixes importing dashboards created before ~6.1.0 {kibana-pull}94332[#94332] * Rename Cancel to Switch to View Mode {kibana-pull}94147[#94147] * Enable Save Button When Filters Change {kibana-pull}93328[#93328] * Remove "beta" label from URL Drilldown as it is now GA {kibana-pull}92859[#92859] * Refactor Initial View Mode {kibana-pull}92747[#92747] * Make Dashboard Unsaved Changes Space Specific {kibana-pull}92680[#92680] * Remove Multiple History Entries & Stay in Edit Mode on Save As {kibana-pull}92105[#92105] * Fixes Visualize Link Redirecting to Dashboard Linked Visualization {kibana-pull}90243[#90243] * Fixes Dashboard OnAppLeave {kibana-pull}86193[#86193] Design:: * Modal a11y {kibana-pull}93332[#93332] * Adding better aria-labels for global search and field search in Lens {kibana-pull}89215[#89215] * Adds autofocus to cron editor {kibana-pull}86324[#86324] Discover:: * Fixes filter creation for numeric scripted fields in Discover {kibana-pull}93224[#93224] * Fixes link from dashboard saved search to Discover {kibana-pull}92937[#92937] * Fixes navigating from discover single document view back to discover {kibana-pull}92463[#92463] * Could not expand cell content in DiscoverGrid {kibana-pull}91289[#91289] * Fixes icon for conflicting fields {kibana-pull}90641[#90641] * Add icon for nested fields in sidebar {kibana-pull}85147[#85147] * Fixes context view for date_nanos format with custom timestamps {kibana-pull}54089[#54089] Elastic Security:: For the Elastic Security 7.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Return empty agents list when submitting a kuery with no keys {kibana-pull}93844[#93844] * V1 migrations: drop fleet-agent-events during a migration {kibana-pull}92188[#92188] Lens & Visualizations:: * Fixes cannot brush on bars of vertical bar chart to zoom into data {kibana-pull}94290[#94290] * Prevent double load in editor in *Lens* {kibana-pull}93930[#93930] * Fixes median aggregation when used with a scripted field {kibana-pull}93731[#93731] * Remove portal for screenreader component in *Lens* {kibana-pull}93274[#93274] * Fixes sorting undefined, null and NaN values in *Lens* {kibana-pull}92575[#92575] * Fixes bug in Safari and Firefox form rendering in *Lens* {kibana-pull}92542[#92542] * Fixes unformatted timeseries functions in *Lens* {kibana-pull}92498[#92498] * Pass used histogram interval to chart in *Lens* {kibana-pull}91370[#91370] * Fixes empty display name issue in XY chart in *Lens* {kibana-pull}91132[#91132] * Fixes telemetry read only error in *Lens* {kibana-pull}91104[#91104] * Stop inserting zeroes for null series in *TSVB* {kibana-pull}90861[#90861] * Restores signal values on refresh in *Vega* {kibana-pull}90774[#90774] * Fixes the timeseries legend, renders the metric, gauge charts for series with empty strings in *TSVB* {kibana-pull}90760[#90760] * Make Lens intervals default value adapt to histogram:maxBars Advanced Setting changes in *Lens* {kibana-pull}89305[#89305] * Vega Maps Referencing from kibana.yml {kibana-pull}88316[#88316] * Close popover on repeated button click in *Lens* {kibana-pull}87834[#87834] * Make sure filter object is persistable in *Lens* {kibana-pull}87828[#87828] * Upgrading vis with pipeline agg from 6.8 doesn't render {kibana-pull}93427[#93427] Logs:: * Check for privileges with user management links {kibana-pull}91134[#91134] * Use useMlHref hook for ML links {kibana-pull}90935[#90935] Machine Learning:: * DataFrame Analytics models: ensure 'View training data' link activates quick filter in exploration page {kibana-pull}93071[#93071] * Fixes positions of calendar arrow buttons in start datafeed modal {kibana-pull}92625[#92625] * Anomaly Explorer: ensure filtering works as expected when influencer value has trailing backslash {kibana-pull}92471[#92471] * Data Frame Analytics wizard: ensure required config options are loaded before enabling `Continue` {kibana-pull}92254[#92254] * Fixes event rate chart annotation position {kibana-pull}91899[#91899] * Data Frame Analytics exploration page: filters improvements {kibana-pull}91748[#91748] * Data Frame Analytics cloning: ensure classification hyperparameters retained when cloning job {kibana-pull}91507[#91507] * Stops new line on enter key press for KQL query bars {kibana-pull}90960[#90960] * Allow filtering by mlcategory in Anomaly Explorer Influencers list {kibana-pull}90282[#90282] * Fixes rare page crash when deleting anomaly detection job {kibana-pull}88622[#88622] Management:: * Fixes parent pipeline aggregations with custom metric and custom sort order {kibana-pull}93276[#93276] * Adding schema for all current query_string settings {kibana-pull}93175[#93175] * Preserve unknown fields in processors {kibana-pull}91146[#91146] * Can't create single character index without wildcard {kibana-pull}90919[#90919] * Use core doc links service {kibana-pull}89363[#89363] * Fixes saved object view path {kibana-pull}89057[#89057] * Use "untitled" filename for panels with no title in dashboard {kibana-pull}86333[#86333] Maps:: * Fixes selecting EMS basemap does not populate input {kibana-pull}92711[#92711] * Increase index pattern select limit to 1000 {kibana-pull}92093[#92093] * Fixes issue preventing WebGL warning message from appearing {kibana-pull}91069[#91069] * Fixes geo shape agg telemetry not collecting due to missing index pattern IDs {kibana-pull}90886[#90886] * Fixes reporting jobs fail when Elastic Maps Service (EMS) is unavailable {kibana-pull}90834[#90834] * Fixes users without access to Maps should not have the option to create them {kibana-pull}88830[#88830] * Geo containment latency and concurrent containment fix {kibana-pull}86980[#86980] Metrics:: * Use global kibana time for metrics explorer in Default View {kibana-pull}92520[#92520] * Fixes alerts repeatedly firing "recovered" actions {kibana-pull}91038[#91038] * Fixes node details overlay title with long host name {kibana-pull}90825[#90825] * Fixes saving/loading saved views from URL {kibana-pull}90216[#90216] * Fixes alert preview accuracy with new Notify settings {kibana-pull}89939[#89939] * Fixes history drawer when navigation is docked {kibana-pull}89630[#89630] * Completely remove GraphQL and Apollo {kibana-pull}89036[#89036] Monitoring:: * Security telemetry allowlist fix {kibana-pull}92850[#92850] * Adds missing fields for security telemetry {kibana-pull}91920[#91920] * Fetch status once and change fetchStatus to support an array of clusters {kibana-pull}91749[#91749] Operations:: * Increases pre-packaged socket timeout and chunks the requests {kibana-pull}94531[#94531] * Fixes first load in Inventory view {kibana-pull}94306[#94306] * Enables Microsoft Teams for Detection Actions {kibana-pull}94239[#94239] * Use EuiFieldPassword for password variables in policy editor {kibana-pull}94166[#94166] * Fixes package policies created with null var values (empty defaults) {kibana-pull}94040[#94040] * Adds missing mappings to the signals for the indicator rules {kibana-pull}92928[#92928] * Fixes ECS audit logging config settings for docker environments {kibana-pull}92497[#92497] * Fixes handling of built-in models {kibana-pull}92154[#92154] * Adds more granular validation for nested fields {kibana-pull}92041[#92041] * Data Frame Analytics: Improved error handling for scatterplot matrix {kibana-pull}91993[#91993] * Fixes loading indicators in the rules management table {kibana-pull}91925[#91925] * Kql Search Bar suggests values outside the selected time range {kibana-pull}91918[#91918] * Improves query performance of first and last events {kibana-pull}91790[#91790] * Latency percentile labels and instances table support {kibana-pull}91758[#91758] * Update error banner when refreshing rule status on rule details page {kibana-pull}91051[#91051] Platform:: * Cancel nested executions when main execution is canceled {kibana-pull}91486[#91486] * Updating SO _find filter parser to take into consideration multi-fields {kibana-pull}90988[#90988] * Increment task `attempts` when they fail during markTaskAsRunning {kibana-pull}88669[#88669] * Reject invalid Timeout values in Task Type Definitions {kibana-pull}88602[#88602] * Cancel expired tasks as part of the available workers check {kibana-pull}88483[#88483] * Resilient saved object migration algorithm {kibana-pull}78413[#78413] Querying & Filtering:: * Remove number parsing {kibana-pull}93658[#93658] * Do not generate nested AST/Elasticsearch queries for same-level AND/OR clauses {kibana-pull}93506[#93506] * Fixes accessibility in the global query bar {kibana-pull}93411[#93411] Reporting:: * Deserialize query string options for serverside ES Query {kibana-pull}90050[#90050] Security:: * Do not generate an ephemeral encryption key in production {kibana-pull}81511[#81511] [[release-notes-7.11.2]] == {kib} 7.11.2 The 7.11.2 release includes the following security update, known issue, and bug fixes. For information on the breaking changes, refer to <>. [float] [[security-update-v7.11.2]] === Security update When you use the following background API calls, {kib} extends your session and fails to log you out: * POST /api/ui_metric/report * POST /api/index_management/indices/reload * POST /api/index_lifecycle_management/policies?withIndices=true * GET /api/remote_clusters * GET /api/saved_objects_tagging/tags To avoid extending the session, use the `kbn-system-request` header, which indicates that the API call is not a user request. [float] [[known-issues-v7.11.2]] === Known issue When upgrading from 7.11.0 or 7.11.1 to 7.11.2, certain connectors, including those that connect to Jira, ServiceNow, and IBM Resilient, are not properly migrated during the upgrade process, causing them to be deleted. Impacts include: * Kibana *Alerts and Actions* that have been configured to use the affected connectors will no longer create these actions. * Security detection rules that have been configured to use the affected connectors as part of their rule actions will no longer create these actions. * Security Case workflow users will need to recreate external connectors before cases can be pushed or updated via the affected connectors. * Open cases that were previously connected to third-party systems via the affected connectors will need to be re-connected after the connector(s) are recreated. If you use these affected connectors, it is recommended to consider delaying the upgrade to 7.11.2, and instead upgrade to 7.12.0 once it is released. [float] [[bug-v7.11.2]] === Bug fixes Alerting:: * For simplistic email servers, set `rejectUnauthorized` to `false` {kibana-pull}91760[#91760] APM:: * Fixes an issue preventing metric-document only services from displaying in the Services overview list {kibana-pull}92378[#92378] Canvas:: * Removes custom plot plugins when *Canvas* is unmounted {kibana-pull}90722[#90722] Elastic Security:: For the Elastic Security 7.11.2 bug fixes, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Lens and visualizations:: * Fixes *TSVB* chart scroll when legend has many items {kibana-pull}91394[#91394] * Use timestamp on brush event instead of iso dates {kibana-pull}91483[#91483] Machine Learning:: * Fixes geo_shape content causing *Data Visualizer* to not load correctly {kibana-pull}92052[#92052] * Fixes applying missing_bucket configuration to transform request payload {kibana-pull}91635[#91635] Management:: * Fixes use of undefined value in JS import {kibana-pull}92791[#92791] * Fixes an issue where users were unable to configure replicas in the cold phase when searchable snapshots are enabled {kibana-pull}92782[#92782] Metrics:: * Fixes `ignoreLookback` behavior for Snapshot API {kibana-pull}91169[#91169] Security:: * Fixes an issue where `elasticsearch.sniffInterval`, `elasticsearch.sniffOnConnectionFault`, or `elasticsearch.sniffOnStart` causes an authentication issue when performing requests against the sniffed nodes {kibana-pull}91276[#91276] * Fixes session idle timeout {kibana-pull}91070[#91070] [[release-notes-7.11.1]] == {kib} 7.11.1 The 7.11.1 release includes the following enhancements and bug fixes. For information on the breaking changes, refer to <>. [float] [[enhancement-v7.11.1]] === Enhancements Machine Learning:: * Improves the lazy ML node UI {kibana-pull}90455[#90455] Security:: * Prevent autocompleting the username field {kibana-pull}88682[#88682] [float] [[bug-v7.11.1]] === Bug fixes Dashboard:: * Fixes a 7.11.0 regression where pending dashboard searches aren't canceled when navigating to another app {kibana-pull}90306[#90306] * Sync tooltip legend values {kibana-pull}90036[#90036] Discover:: * Fixes 'auto' collapsing of documents {kibana-pull}89712[#89712] Elastic Security Solution:: For the Elastic Security Solution 7.11.1 bug fixes, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Lens and visualizations:: * *Lens* visualizations now load faster on dashboards {kibana-pull}88953[#88953] * Advanced input now works for aggregation-based visualizations {kibana-pull}88154[#88154] Maps:: * Always check license at plugin startup {kibana-pull}87873[#87873] Monitoring:: * Fully control the in memory table pagination and sorting properties {kibana-pull}85862[#85862] * Tweak timeout for failing cloud test {kibana-pull}86671[#86671] * Stop using constructor.name for logstash pipelines {kibana-pull}87386[#87386] * Make sure we use the right duration for messaging on this alert {kibana-pull}87579[#87579] * Avoid spamming toast messages {kibana-pull}89930[#89930] [[release-notes-7.11.0]] == {kib} 7.11.0 For detailed information about the 7.11.0 release, review the following information. [float] [[breaking-changes-7.11]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.11.0, review the breaking changes, then mitigate the impact to your application. // The following section is re-used in the Installation and Upgrade Guide // tag::notable-breaking-changes[] [discrete] [[ingestManager_renamed_fleet]] ==== Ingest Manager plugin renamed Fleet *Details:* The `ingestManager` plugin has been renamed `fleet`. *Impact*: * The app url change from /app/ingestManager to /app/fleet. * The privilege `feature_ingestManager.*` is not valid anymore and should be replaced by `feature_fleet.*`. *via https://github.com/elastic/kibana/pull/83200[#83200]* [discrete] [[reporting_plugin]] ==== Reporting plugin added new validation for protocol *Details:* The Reporting plugin added new validation for protocol strings in Network Policy configurations. *Impact*: See <>. If the kibana.yml has a Reporting network policy before upgrade, the protocol strings must end with a colon. Otherwise, config validation will fail and Kibana will not start. *via https://github.com/elastic/kibana/pull/80766[#80766]* [discrete] [[glibc_212_unsupported]] ==== Dropped support for glibc 2.12 *Details:* {kib} 7.11.0 upgrades the Node.js runtime to version `14.16.0`. This updated runtime requires glibc `2.16`, which drops support for glibc `2.12`-based operating systems. *Impact*: Supported versions of {kib} are not impacted. You can no longer run {kib} on older operating systems that require glibc `2.12` (for example, CentOS 6). Refer to our https://www.elastic.co/support/matrix[support matrix] for a list of currently supported operating systems. *via https://github.com/elastic/kibana/pull/83425[#83425]* // end::notable-breaking-changes[] [float] [[deprecation-v7.11.0]] === Deprecations Lens and visualizations:: * Deprecates `visualization:colorMapping` advanced setting {kibana-pull}83372[#83372] Management:: * Deprecates `kibana.index` setting {kibana-pull}83988[#83988] * Deprecates `reporting.index` setting {kibana-pull}84005[#84005] * Deprecates `xpack.task_manager.index` setting {kibana-pull}84155[#84155] Security:: * Deprecates disabling the spaces plugin {kibana-pull}83984[#83984] * Deprecates disabling the security plugin {kibana-pull}85159[#85159] [float] [[enhancement-v7.11.0]] === Enhancements Alerting:: * Updates alert type selection layout to rows instead of grid {kibana-pull}73665[#73665] * Back Button on Add Connector Flyout {kibana-pull}80160[#80160] * Disables "Save" button for Alerts with broken Connectors {kibana-pull}80579[#80579] * Adds UI notifier to indicate secret fields and to remember / reenter values {kibana-pull}80657[#80657] * Adds `defaultActionMessage` to index threshold alert UI type definition {kibana-pull}80936[#80936] * Don't wait for health check before showing Create Alert flyout {kibana-pull}80996[#80996] * Adds `hasAuth` to Webhook Configuration to avoid confusing UX {kibana-pull}81390[#81390] * Grouped list of alert types using producers in Types filter of Alerts tab {kibana-pull}81876[#81876] * Adds Alerts & Actions to the app directory {kibana-pull}81902[#81902] * Adds a link to documentation in the alerts and actions management UI {kibana-pull}81909[#81909] * Adds an Run When field in the alert flyout to assign the action to an Action Group {kibana-pull}82472[#82472] * Displays Action Group in Alert Details {kibana-pull}82645[#82645] * Removes placeholders and updates validation messages on connector forms {kibana-pull}82734[#82734] * Notify only on action group change {kibana-pull}82969[#82969] * Adds ability to assign alert actions to resolved action group in UI {kibana-pull}83139[#83139] * Microsoft Teams connector {kibana-pull}83169[#83169] * Adds action group and date to mustache template variables for actions {kibana-pull}83195[#83195] * Updates widths on columns in Alert Detail view {kibana-pull}83823[#83823] * Escaping is now off for most action parameters, except those that need per-action escaping, including the Slack, Email, and Webhook action parameters {kibana-pull}83919[#83919] * Adds ECS audit events for alerts and actions plugins {kibana-pull}84113[#84113] * Adds footer to all emails sent by Kibana email connector with a link to open Kibana or to the alert details page {kibana-pull}84371[#84371] * Adds default dedupKey value as an {{alertInstanceId}} to provide grouping functionality for PagerDuty incidents {kibana-pull}84598[#84598] APM:: * Transition to Elastic charts for all relevant APM charts {kibana-pull}80298[#80298] * APM Experiments settings {kibana-pull}81554[#81554] * APM index settings import/export in saved-object management {kibana-pull}82784[#82784] * Service overview: Dependencies table {kibana-pull}83416[#83416] * Service overview: Transactions table {kibana-pull}83429[#83429] * Latency chart for overview {kibana-pull}84634[#84634] * Add APM agent config options {kibana-pull}84678[#84678] * Updates header icons {kibana-pull}84760[#84760] * Adds log_level/sanitize_field_names config options to Python Agent {kibana-pull}84810[#84810] * Adds `ignore_unavailable` to avoid querying closed indices {kibana-pull}84813[#84813] * Adds sanitize_field_names and transaction_ignore_urls config options to Ruby agent {kibana-pull}85646[#85646] * Adds transaction_ignore_urls as central config {kibana-pull}85734[#85734] * Service overview: Instances table {kibana-pull}85770[#85770] * APM Alerts Preview charts {kibana-pull}85868[#85868] Canvas:: * Layout option for generating full-page Canvas reports {kibana-pull}84959[#84959] Dashboard:: * Library Notification Popover {kibana-pull}79581[#79581] * Url Drilldown basic template helpers {kibana-pull}80500[#80500] * Edit Panel Title On Click {kibana-pull}81076[#81076] * Dashboards connected via drilldowns are now exported or copied to a different space together {kibana-pull}82602[#82602] * Panel toolbar {kibana-pull}83342[#83342] * Export CSV action for Lens embeddables in dashboard {kibana-pull}83654[#83654] * ExternalUrl service was integrated with URL Drilldown {kibana-pull}85779[#85779] Discover:: * Adds new responsive layout {kibana-pull}83633[#83633] Elastic Security Solution:: For the Elastic Security Solution 7.11.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Agent logs UI {kibana-pull}83356[#83356] Lens and visualizations:: * Adds categorical color palettes in Lens {kibana-pull}75309[#75309] * Adds color for dimension trigger in Lens {kibana-pull}76871[#76871] * Adds median operation in Lens {kibana-pull}79453[#79453] * Improves the range formatter {kibana-pull}80132[#80132] * Adds drag support within dimension group to reorder in Lens {kibana-pull}80547[#80547] * Renames X/Y axis to horizontal/vertical in Lens {kibana-pull}80991[#80991] * Adds value labels in Lens bar charts {kibana-pull}81776[#81776] * Enables "Other" bucket for top values operation in Lens {kibana-pull}82704[#82704] * Adds CSV Export for Lens {kibana-pull}83430[#83430] * Adds "Last value" operation to Lens {kibana-pull}83437[#83437] * Adds sorting to Lens data tables {kibana-pull}84435[#84435] * Adds in-product help to Lens fields list {kibana-pull}85544[#85544] * Adds toggle to height data table export button {kibana-pull}70801[#70801] * Adds support for HDR percentiles in TSVB visualizations {kibana-pull}78306[#78306] * Displays epoch on a more human readable format for TSVB {kibana-pull}79110[#79110] * Adds *Ignore global filters* to series options in TSVB {kibana-pull}79337[#79337] * Updates *New visualization* window {kibana-pull}79627[#79627] * Adds `textTruncate` option for tooltips {kibana-pull}80524[#80524] * Renames 'positive rate' to 'counter rate' {kibana-pull}80939[#80939] * Use "histogram:maxBars" and "histogram:barTarget" advanced settings in TSVB {kibana-pull}83628[#83628] * Fixes Graph saved object references {kibana-pull}85295[#85295] * Allow sorting by median {kibana-pull}79839[#79839] Logs:: * Syncs logs timerange with wider Kibana {kibana-pull}79444[#79444] * Displays progress for asynchronous loading of the log entry fly-out content and cancels pending requests when closing the fly-out {kibana-pull}83906[#83906] Machine Learning:: * Data frame analytics: Scatterplot matrix for outlier detection {kibana-pull}73419[#73419] * Adds space aware jobs {kibana-pull}77916[#77916] * Adds probability values in decision path visualization for classification data frame analytics {kibana-pull}80229[#80229] * DFAnalytics Creation: update form to handle `num_top_classes` setting for all classes {kibana-pull}80751[#80751] * DF Analytics wizard: ensure user can set mml manually or select to use given estimate {kibana-pull}81078[#81078] * Adds annotation markers to time series brush area to indicate annotations exist outside of selected range {kibana-pull}81490[#81490] * Configure sorting for partition values on Single Metric Viewer {kibana-pull}81510[#81510] * Adds option for anomaly charts for metric detector should plot min, mean or max as appropriate {kibana-pull}81662[#81662] * Data frame analytics: Adds map view {kibana-pull}81666[#81666] * Improves support for script and aggregation fields in anomaly detection jobs {kibana-pull}81923[#81923] * Adds space aware jobs (#77916) {kibana-pull}82446[#82446] * Job saved objects initialization {kibana-pull}82639[#82639] * Adds non-space aware checks for existing jobs {kibana-pull}82814[#82814] * Additional job spaces initialization {kibana-pull}83127[#83127] * Persisted URL state for the "Anomaly detection jobs" page {kibana-pull}83149[#83149] * Performance improvements to annotations editing in Single Metric Viewer & buttons placement {kibana-pull}83216[#83216] * Space management UI {kibana-pull}83320[#83320] * Persisted URL state for the Data frame analytics jobs and models pages {kibana-pull}83439[#83439] * Improves browser history navigation {kibana-pull}83792[#83792] * Persisted URL state for Anomalies table {kibana-pull}84314[#84314] * Persisted URL state for Data Frame Analytics Exploration page {kibana-pull}84499[#84499] * Improves messaging and support for datafeed using aggregated and scripted fields {kibana-pull}84594[#84594] * Adds security_linux and security_windows Modules {kibana-pull}85065[#85065] * Data Frame Analytics: check space permissions before deleting jobs {kibana-pull}85495[#85495] * Redesign index-based Data Visualizer {kibana-pull}85726[#85726] * Adds runtime_mappings to job wizards {kibana-pull}85817[#85817] Management:: * Allows custom name for fields via index pattern field management {kibana-pull}70039[#70039] * In index pattern management - Refresh button removed as index pattern field lists are refreshed when index patterns are loaded, such as on page load or when moving between kibana apps {kibana-pull}82223[#82223] * Painless Lab in DevTools now supports autocompletion for keywords, and class and class members for the Painless language based on a given context {kibana-pull}80577[#80577] * Transforms: Remove index field limitation for custom query {kibana-pull}81467[#81467] * In the Index Management app, you can now click a data stream index lifecycle policy and view it in the Index Lifecycle Policies app {kibana-pull}82165[#82165] * Use monacco editor in the inspector request panel {kibana-pull}82272[#82272] * In the Index Management app, you can now click a data stream index template and view it on the Index Templates tab {kibana-pull}82592[#82592] * In the Index Management app, data streams managed by Fleet can now be identified by a 'Managed' label {kibana-pull}83049[#83049] * In the Index Management app, buttons to delete a data stream are now controlled by user privileges {kibana-pull}83573[#83573] * Index Patterns service now has public HTTP API, which third parties can use to manage index patterns, index pattern field metadata, and scripted fields {kibana-pull}83576[#83576] * The ILM policy UI now supports configuring searchable snapshot in the cold and hot phases {kibana-pull}83783[#83783] * Adds shrink field to hot phase {kibana-pull}84087[#84087] * Index and component templates can now be configured with runtime fields in their mappings {kibana-pull}84184[#84184] * The Ingest Node Pipelines UI now supports autocompletion for the Painless language when defining a condition for a processor, ane when defining a source for a script processor {kibana-pull}84554[#84554] * In the Index Management app, hidden data streams are now displayed and indicated by a label {kibana-pull}85028[#85028] * Aligns form fields in ILM with ESUI standards {kibana-pull}85143[#85143] * Moves error and loading notices for data allocation {kibana-pull}85154[#85154] * Index Lifecycle Management app now includes readonly action {kibana-pull}85419[#85419] * Adds support for latest function {kibana-pull}85784[#85784] * Updates logstash pipeline management to use system index APIs {kibana-pull}80405[#80405] * Reintroduce "Add support for runtime field types to mappings editor" {kibana-pull}79940[#79940] * Form UI {kibana-pull}81766[#81766] Maps:: * Geo line source {kibana-pull}76572[#76572] * Supports envelope {kibana-pull}80614[#80614] * Adds query bar inputs to geo threshold alerts tracked points & boundaries {kibana-pull}80871[#80871] * Support by value saved objects {kibana-pull}82486[#82486] * Show icon when layer is filtered by time and allow layers to ignore global time range {kibana-pull}83006[#83006] * Saved object tagging {kibana-pull}83197[#83197] * Updates style when metrics change {kibana-pull}83586[#83586] * Support URL drilldowns {kibana-pull}83732[#83732] * Background color map setting {kibana-pull}83822[#83822] * Adds geo containment tracking alert type {kibana-pull}84151[#84151] * Style by percentiles {kibana-pull}84291[#84291] * Use index-pattern field display name in UX {kibana-pull}84945[#84945] * Adds percentile {kibana-pull}85367[#85367] * Adds on-prem EMS config {kibana-pull}82525[#82525] Metrics:: * Adds endpoint for Metrics API {kibana-pull}81693[#81693] * Adds full custom metric UI to inventory alerts {kibana-pull}81929[#81929] * Adds basic interaction and shell for node details overlay {kibana-pull}82013[#82013] * Adds metrics to node details {kibana-pull}83357[#83357] * Don't show loading screen during auto-reload {kibana-pull}83376[#83376] * Adds logs to node details {kibana-pull}83433[#83433] * Adds Process tab to Enhanced Node Details {kibana-pull}83477[#83477] * Implements Resolved action group in Metrics alerts {kibana-pull}83687[#83687] * Adds metadata tab to node details flyout {kibana-pull}84454[#84454] * Fixes double loading of inventory page when there's a default view {kibana-pull}84843[#84843] * Synch time for metrics ui Kibana time {kibana-pull}85502[#85502] Monitoring:: * Thread pool rejections alert {kibana-pull}79433[#79433] * Improves Collector `fetch` API {kibana-pull}79595[#79595] * Usage collection add saved objects client to collector fetch context {kibana-pull}80554[#80554] * Some progress on making alerts better in the UI {kibana-pull}81569[#81569] * CCR read exceptions alert {kibana-pull}85908[#85908] Operations:: * Starting in 8.0, deb and rpm packages will restart on upgrade by default {kibana-pull}82049[#82049] * Adds a new CLI for generating encryption keys used by Kibana {kibana-pull}82838[#82838] * Adds deb and rpm packages for ARM64 {kibana-pull}84364[#84364] * Upgrades the major Node.js version used by and shipped with Kibana from v12 to v14 {kibana-pull}83425[#83425] * Adds experimental support for configuring CORS policy {kibana-pull}84316[#84316] Platform:: * Apply back pressure in Task Manager whenever Elasticsearch responds with a 429 {kibana-pull}75666[#75666] * Adds basic observability into Task Manager's runtime operations {kibana-pull}77868[#77868] * Custom labels for ranges {kibana-pull}79628[#79628] * Adds cumulative sum expression function {kibana-pull}80129[#80129] * Adds a row click trigger to Lens embeddable for datatable expression renderer {kibana-pull}83167[#83167] * Adds search request batching using bfetch {kibana-pull}83418[#83418] and {kibana-pull}84043[#84043] * Normalize values by time unit {kibana-pull}83904[#83904] * Navigation search now includes deep links into various applications, allowing you to quickly navigate directly to the screens you need most {kibana-pull}83380[#83380] * Adds tags UI to search results {kibana-pull}85084[#85084] Querying & Filtering:: * Use new Search API for rollup search {kibana-pull}83275[#83275] Security:: * Adds audit logging events and event filtering{kibana-pull}74640[#74640] * Allow the default space to be accessed via `/s/default` {kibana-pull}77109[#77109] * Omit runtime fields from FLS suggestions {kibana-pull}78330[#78330] * Adds the ability to log in to Kibana anonymously without using any 3rd-party reverse proxy workarounds {kibana-pull}79985[#79985] * Adds the ability to specify session timeout settings for every provider separately {kibana-pull}82583[#82583] * Adds cloud links to user menu {kibana-pull}82803[#82803] * Users are now redirected back to the original URL after they log in again {kibana-pull}84229[#84229] Uptime:: * Upgrades the major Node.js version used by and shipped with Kibana from v10 to v12 {kibana-pull}61587[#61587] * Persist date range between uptime and other apps {kibana-pull}79418[#79418] * Prompt for confirmation when saving alert with no action {kibana-pull}79892[#79892] * Applies the active timefilter onto the autocomplete requests to fix performance issues {kibana-pull}81515[#81515] * Adds description and documentation link in alert flyout {kibana-pull}81526[#81526] * Put APM links into header action menu {kibana-pull}82292[#82292] * Displays response headers for a ping {kibana-pull}82332[#82332] * APM header changes {kibana-pull}82870[#82870] * Uptime overview overhaul {kibana-pull}83406[#83406] * Waterfall view {kibana-pull}84821[#84821] * Display tags in monitor list and details page {kibana-pull}85168[#85168] [float] [[bug-v7.11.0]] === Bug fixes Alerting:: * Don't change previousStartedAt when alert execution fails {kibana-pull}81388[#81388] * Enables the EventLog Client to query across ILM versions of the `.event-log` index {kibana-pull}81920[#81920] * Used SO for saving the API key IDs that should be deleted {kibana-pull}82211[#82211] * Fixes pagination in connectors list {kibana-pull}83638[#83638] * Prevents errors in Action and Alert Type UIs from cascading through Alerts Management {kibana-pull}83925[#83925] * Fixes buggy default message behaviour {kibana-pull}84202[#84202] * Revert the Revert of "[Alerting] renames Resolved action group to Recovered (#84123)" {kibana-pull}84662[#84662] * Fixes bug where severity is auto selected but not applied to the action in PagerDuty {kibana-pull}84891[#84891] * Fixes bug when switching between threshold comparators {kibana-pull}85844[#85844] * Set refresh: false when partially updating the alert's execution status {kibana-pull}86316[#86316] * Sort action type filters in alerts list and hide case action type {kibana-pull}86360[#86360] * Fixes webhook errror messages to be more specific {kibana-pull}87044[#87044] * Shift polling interval by random amount when Task Manager experiences consistent claim version conflicts {kibana-pull}88020[#88020] APM:: * Fixes link to upgrade assistant {kibana-pull}82138[#82138] * Filtering by "Type" on error overview sometimes causes an error {kibana-pull}82750[#82750] * Fixes broken link to ML when time range is not set {kibana-pull}85976[#85976] * Set default for agent icons {kibana-pull}86023[#86023] * Adds range query to service map trace walk {kibana-pull}86631[#86631] * Filter out service nodes if there are no metrics {kibana-pull}86639[#86639] * Truncate long service names in Trace overview {kibana-pull}86759[#86759] * "View job" link from latency charts leads to a malfunctioning page {kibana-pull}86788[#86788] * `transactionType` should be required on service-specific endpoints {kibana-pull}86893[#86893] * Custom links can still be created with a read only user. {kibana-pull}87089[#87089] * Toggle action and service icon menus {kibana-pull}87220[#87220] * Blank page when selecting a future time range {kibana-pull}87298[#87298] * Fixes alert creation items being available for readonly users {kibana-pull}87343[#87343] * Fixes missing datepicker when service maps has no data {kibana-pull}87393[#87393] * Explicitly set environment for cross-service links {kibana-pull}87481[#87481] * Optimize anomaly data loading strategy {kibana-pull}87522[#87522] * Fixes a bug that would sometimes cause the Kibana process to crash with Error: Failed to run task "apm-telemetry-task" as it is currently running {kibana-pull}87645[#87645] * Fixes stale custom links list after creating new link {kibana-pull}87932[#87932] * Fixes alerting expression popovers positions on scroll {kibana-pull}88085[#88085] * Hide “Create configuration” for users without write access {kibana-pull}88149[#88149] * Hide `recording` setting from from RUM agents {kibana-pull}88152[#88152] * Reset time range if either value changes {kibana-pull}88186[#88186] Dashboard:: * Fixes cloning panels reactive issue {kibana-pull}74253[#74253] * Fixes dashboard "snapshot share" is not sharing panel state in view mode {kibana-pull}79837[#79837] * Deangularize Dashboard {kibana-pull}82909[#82909] * Fixes Unlink Action via Rollback of ReplacePanel {kibana-pull}83873[#83873] * Transition Embeddable State Transfer to Session Storage {kibana-pull}85688[#85688] * Fixes Add From Library Flyout Staying Open {kibana-pull}86698[#86698] Discover:: * Fixes double fetching of saved search embeddable {kibana-pull}84060[#84060] * Fixes navigating back when changing index pattern {kibana-pull}84061[#84061] Elastic Security Solution:: For the Elastic Security Solution 7.11.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Fleet:: * Fixes duplicate ingest pipeline refs {kibana-pull}82078[#82078] Lens and visualizations:: * Do not reset formatting when switching between custom ranges and auto histogram {kibana-pull}82694[#82694] * Makes incomplete switches possible {kibana-pull}83519[#83519] * Fixes bug causing bar charts to render bars at the wrong width {kibana-pull}83545[#83545] * Fixes label input debouncing {kibana-pull}84121[#84121] * Fixes Treemap outer labels with transparent background {kibana-pull}84245[#84245] * Line Visualization improper scaling can result in gaps {kibana-pull}80135[#80135] * Handle correctly {{key}} placeholder on series name {kibana-pull}81748[#81748] * Fixes "other bucket" for fields containing dashes {kibana-pull}81981[#81981] * Disable using top_hits in pipeline aggregations {kibana-pull}82278[#82278] * Fixes Moving Avg help link in Vis Editor {kibana-pull}82423[#82423] * TSVB doesn't communicate it's index-patterns to dashboard {kibana-pull}82964[#82964] * Offset option doesn't work properly for some values {kibana-pull}83051[#83051] * Remove extra column in split mode {kibana-pull}83193[#83193] * Table tab not working with rollup indexes {kibana-pull}83635[#83635] * Filter bar in Vega is not usable with non default index pattern. {kibana-pull}84090[#84090] * TSVB field list performance issue on using annotations {kibana-pull}84407[#84407] * Gauge visualization can no longer be clicked to filter on values since Kibana 7.10.0 {kibana-pull}84768[#84768] * Wrong x-axis formatting if "dateFormat" configuration property is not specified {kibana-pull}84899[#84899] * Date histogram timestamps on daily are getting displayed as epoch times {kibana-pull}85565[#85565] * Fixes request with disabled aggregation {kibana-pull}85696[#85696] * Visualize charts flicker on each change {kibana-pull}86888[#86888] Logs:: * Fixes selection of suggested field names in the logs stream query bar {kibana-pull}85973[#85973] * Fixes initial selection of log threshold alert condition field if missing from mapping {kibana-pull}86488[#86488] Machine Learning:: * Fixes exclude frequent in advanced wizard (#81121) {kibana-pull}81154[#81154] * Updating analysis config schema (#82703) {kibana-pull}82714[#82714] * Data Frame Analytics Classification results view: fix 'Actual' label {kibana-pull}86060[#86060] * Anomaly Detection: Fix validation error when no data in index. {kibana-pull}86114[#86114] * DFA results view: ensure results not stuck in loading state when no docs returned from text search {kibana-pull}86178[#86178] * Fix sort order of data recognizer module cards {kibana-pull}86250[#86250] * Fixes displaying of setup errors in recognizer wizard {kibana-pull}86430[#86430] * Fixes alignment of values in data frame analytics results view badges {kibana-pull}86621[#86621] * Fixes cloning of partition field in per-partition categorization jobs {kibana-pull}86635[#86635] * Fix Single Metric Viewer y domain extending beyond the visible focus area {kibana-pull}86655[#86655] * Ensure job group badge fonts are same color {kibana-pull}86674[#86674] * Anomaly Detection jobs list: fix edit groups popup {kibana-pull}86836[#86836] Management:: * Fixes issues in Index Management and ILM when resources have special characters in names {kibana-pull}80835[#80835] * Fixes ilm navigation {kibana-pull}81664[#81664] * Fixes a bug in the Watcher UI where the search input cleared after 1 minute of inactivity, causing a user to lose the filtered results {kibana-pull}82651[#82651] * Fixes a bug in the Index Templates UI where editing an index template with a deprecated type defined and no mapped fields could remove the type on save {kibana-pull}82987[#82987] * Grokdebugger correctly passes Elasticsearch errors to the Kibana UI {kibana-pull}83036[#83036] * Fixes an issue in the Snapshot and Restore UI, where editing a Snapshot Lifecycle Management policy may fail if it contains a previous snapshot failure with a large payload content {kibana-pull}83928[#83928] * Reset to default for empty strings {kibana-pull}85137[#85137] * Fixes esaggs missing default time field scenario in Lens {kibana-pull}85754[#85754] * Transforms: Support for missing_bucket in transform advanced pivot editor {kibana-pull}85758[#85758] * Documentation links in the Index Lifecycle Management UI have been updated {kibana-pull}87216[#87216] * Fixes a bug causing the index pattern override selection to be cleared when switching page while performing a legacy format saved object import {kibana-pull}81621[#81621] * Fixes a UI error when attempting to copy a saved object when a user only has Read access to the Default space {kibana-pull}81828[#81828] * Fixes index pattern recreation when removing experimental packages {kibana-pull}81940[#81940] * Fixes logstash central pipeline management test {kibana-pull}83281[#83281] Maps:: * Fixes feature tooltip remains open when zoom level change hides layer {kibana-pull}81373[#81373] * Fixes geojson upload diacritic handling {kibana-pull}83122[#83122] * Always initialize routes on server-startup {kibana-pull}84806[#84806] * Fixes multi-select query from Controls visualization not always getting applied to map in dashboard {kibana-pull}87310[#87310] * Fixes zooming while drawing shape filter logs errors in console {kibana-pull}88413[#88413] Metrics:: * Refactor Observability Overview for Performance {kibana-pull}84955[#84955] * Hide drawer on inventory {kibana-pull}85503[#85503] Monitoring:: * Iterate over saved object & index patterns pages to collect telemetry results {kibana-pull}73077[#73077] * Fixes bug in logs UI link {kibana-pull}80943[#80943] * Uses asCurrentUser in getClusterUuid {kibana-pull}82908[#82908] * Uses fetchClustersRange {kibana-pull}87882[#87882] * Change cloud messaging on no data page {kibana-pull}88375[#88375] Operations:: * Fixes the logging destination for systemd installations and and updates the sysv filename to be consistent with other stack products {kibana-pull}74896[#74896] * Create keystore after installation {kibana-pull}76465[#76465] * Wrap blocked paths in quotes {kibana-pull}83560[#83560] Platform:: * Adds loading indicator during debounce time {kibana-pull}80158[#80158] * Mark task as failed if maxAttempts has been met. {kibana-pull}80681[#80681] * Reactively disable Task Manager lifecycle when core services become unavailable {kibana-pull}81779[#81779] * Schedule retry based on schedule on recurring tasks {kibana-pull}83682[#83682] Querying & Filtering:: * KQL autocomplete suggestions for field values will now have backslashes properly escaped {kibana-pull}85457[#85457] Security:: * Prevent Kerberos and PKI providers from initiating a new session for unauthenticated XHR/API requests {kibana-pull}82817[#82817] * Fixes incomplete client cert chain when using PKI authentication with the login selector {kibana-pull}88229[#88229] Uptime:: * Monitor status alert use url as instance {kibana-pull}81736[#81736] * Removes Connector flyouts after usage {kibana-pull}82126[#82126] * User experience display low values {kibana-pull}86026[#86026] * Simple monitor status alert fix for page duty and other connectors {kibana-pull}87460[#87460] * Fixes kuery bar dark theme {kibana-pull}87827[#87827] * Clear ping state when PingList component in unmounted {kibana-pull}88321[#88321] * UX use replace history instead of push on first load {kibana-pull}88586[#88586] * Fixes impacted page load errors {kibana-pull}88597[#88597] [[release-notes-7.10.2]] == {kib} 7.10.2 For detailed information about the 7.10.2 release, review the following bug fixes. For the breaking changes, refer to the <>. [float] [[security-update-v7.10.2]] === Security update *Vega* visualizations are susceptible to stored and reflected XSS via a vulnerable version of the Vega library. When you create *Vega* visualizations or create a vulnerable URL that describes the visualization, an arbitrary JavaScript can execute in your browser. [float] [[affected-versions-v7.10.2]] ==== Affected versions Affected versions include 7.10.1 and earlier. [float] [[solution-v7.10.2]] ==== Solution Verify if you use *Vega* visualizations, then complete the following: * If you use *Vega* visualizations, upgrade to 7.10.2. * If you do not use *Vega* visualizations, open your kibana.yml file, then change `vega.enabled: true` to `vega.enabled: false`. [float] [[bug-v7.10.2]] === Bug fixes Alerting:: * Don't reset server log level if level is defined {kibana-pull}83651[#83651] Dashboard:: * Fixes Duplicated Create New Modal {kibana-pull}86489[#86489] Logs:: * Fixes value completion in the logs stream query bar {kibana-pull}85772[#85772] Machine Learning:: * Fixes watcher URL to the Anomaly Explorer page {kibana-pull}85123[#85123] * Fixes Anomaly Explorer data refresh with relative time bounds {kibana-pull}86142[#86142] * Fixes zoom missing in Anomaly detection URLs {kibana-pull}86182[#86182] and {kibana-pull}86400[#86400] * Fixes charts grid on the Anomaly Explorer page {kibana-pull}86904[#86904] Management:: * When number of replicas is set to zero, it is now correctly displayed in Index Lifecycle Management policies {kibana-pull}85251[#85251] * The list of data streams in Index Management now sorts numerically by the raw bytes value, which renders them in the correct order {kibana-pull}86204[#86204] * Fixes a bug where the enterprise level subscription displayed as platinum {kibana-pull}85849[#85849] * From table actions in the Cross-Cluster Replication app, you can now pause/resume index replication, unfollow leader index, or delete an auto-follow pattern {kibana-pull}84433[#84433] * Accessibility fix in Rollup Jobs app: when selecting a row in the jobs table, a screen reader pronounces the job's name {kibana-pull}84567[#84567] Monitoring:: * Makes alert status fetching more resilient {kibana-pull}84676[#84676] * Adds unmapped_type to additional queries {kibana-pull}85837[#85837] Security:: * Fixes 500 error when using PKI authentication with an incomplete certificate chain {kibana-pull}86700[#86700] [[release-notes-7.10.1]] == {kib} 7.10.1 For detailed information about the 7.10.1 release, review the following enhancements and bug fixes. For the breaking changes, refer to the <>. [float] [[enhancement-v7.10.1]] === Enhancements Machine Learning:: * Adds unsigned_long support to data frame analytics and anomaly detection {kibana-pull}82636[#82636] Platform:: * Fixes a bug causing searching for saved objects using special characters such as * or - to not return any results {kibana-pull}82693[#82693] [float] [[bug-v7.10.1]] === Bug fixes APM:: * Fixes missing `service.node.name` {kibana-pull}84269[#84269] * Page load chart breakdown tooltip formatting {kibana-pull}83627[#83627] Canvas:: * Fixes elements not being updated properly when filter is changed on workpad {kibana-pull}81863[#81863] Dashboard:: * Fixes an issue when exporting a Saved Search visualization, inside of a dashboard,Ăź to CSV was returning blank rows {kibana-pull}81524[#81524] Discover:: * Fixes double fetching of saved search embeddable {kibana-pull}84060[#84060] Ingest Management:: * Fixes error with creating agent policy during add integration {kibana-pull}83993[#83993] * Disallows dashes in namespace strings {kibana-pull}83996[#83996] * Adds config options to accepted docker env vars {kibana-pull}84338[#84338] Lens and visualizations:: * Reloads on change via history object {kibana-pull}81753[#81753] * Fixes underlying data drilldown for Lens {kibana-pull}82737[#82737] * Fixes bug in terms formatting {kibana-pull}82776[#82776] * Do not reset filter state on incoming app navigation {kibana-pull}83786[#83786] * Vis listing page breaks on unknown vis type {kibana-pull}82018[#82018] * Fixes area rendering with negative values {kibana-pull}83313[#83313] * Vertical cursor is not displayed across visualizations of a dashboard {kibana-pull}83435[#83435] * Y-axis has number formatting not considering all series formatters in the group {kibana-pull}83438[#83438] * Fixes tagcloud explicitly pass params {kibana-pull}84107[#84107] * Fixes timelion not working with single quotes {kibana-pull}84196[#84196] Machine Learning:: * Fixes setting of anomaly chart time range depending on bucket spans {kibana-pull}81291[#81291] * Fixes formatting of fields in index data visualizer {kibana-pull}82593[#82593] * Fixes anomaly detection validation when using advanced properties in the analysis config {kibana-pull}82703[#82703] * Fixes Anomaly Explorer population charts when multiple causes in anomaly {kibana-pull}84254[#84254] * Fixes swim lane for top influencers {kibana-pull}84258[#84258] * Fixes unnecessary trigger of wildcard field type search for {ml} plugin routes {kibana-pull}84605[#84605] Management:: * Fixes a bug causing Kibana to crash when importing a file with an invalid format from the saved object management section {kibana-pull}82406[#82406] Maps:: * Fixes threshold alert issue resolving nested fields {kibana-pull}83577[#83577] Metrics:: * Adds timerange and sorting to node detail metadata request {kibana-pull}81033[#81033] * Converts legend key to optional {kibana-pull}83495[#83495] * Optimizations for Snapshot and Inventory Metadata {kibana-pull}83596[#83596] Monitoring:: * Adds catch clause to handle exceptions on loading page {kibana-pull}82179[#82179] * Fixes the plugins passed into legacy routes {kibana-pull}82192[#82192] * Fixes small issue with detecting missing monitoring data from APM {kibana-pull}83646[#83646] * Only looks at ES for the missing data alert for now {kibana-pull}83839[#83839] * Fixes rison error {kibana-pull}83987[#83987] * Fixes issues with show_license_expiration {kibana-pull}84361[#84361] Security:: * Adjusts encoding for security management pages {kibana-pull}83629[#83629] * Fixes "Severity override" dropdowns in "Create new rule" -> "About rule" {kibana-pull}82271[#82271] Sharing:: * Embeddable Error Handling Without ReplacePanel {kibana-pull}82201[#82201] Uptime:: * Page load chart breakdown tooltip formatting {kibana-pull}83627[#83627] [[release-notes-7.10.0]] == {kib} 7.10.0 For detailed information about the 7.10.0 release, review the following sections. [float] [[breaking-changes-7.10]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.10.0, review the breaking changes, then mitigate the impact to your application. * <> * <> [discrete] [[user-facing-changes-7-10]] ==== Breaking changes for users // The following section is re-used in the Installation and Upgrade Guide // tag::notable-breaking-changes[] [discrete] [[breaking_kibana_legacy_plugins]] ===== Legacy plugins support removed The legacy plugin system and the legacy plugin API have been removed. Legacy plugin owners should migrate their plugins to the {kib} Platform plugin API. *via https://github.com/elastic/kibana/pull/77599[#77599]* [discrete] [[breaking_kibana_plugins]] ===== Support added for Kibana Platform plugins The `bin/kibana-plugin` CLI has been updated to work with the new {kib} Platform plugin format instead of the legacy plugin format. *via https://github.com/elastic/kibana/pull/74604[#74604]* [discrete] [[breaking_vega_visualizations]] ===== Vega visualizations without $schema property no longer supported Previously, if you did not provide the $schema property, the default value was set and hardcoded in the Vega code. The visualization was then rendered with a warning message. This introduced difficulties when updating the version of the Vega library. Now all Vega specs must contain the $schema param. In no $schema param exists, an error message is returned. Refer to the https://vega.github.io/vega/docs/specification/[Vega docs] for more information about this property. *via https://github.com/elastic/kibana/pull/73805[#73805]* // end::notable-breaking-changes[] [discrete] [[general-plugin-API-changes-7-10]] ==== Breaking changes for plugin developers [[breaking_plugin_v7.10.0_79406]] .Config moved from `xpack.ingestManager` to `xpack.fleet` [%collapsible] ==== To rename the Ingest Manger plugin to Fleet: * The {kib} config for Ingest Manager moved from `xpack.ingestManager.*` to `xpack.fleet.*`. * The config options specific to agents moved to `xpack.ingestManager.fleet.*` and `xpack.fleet.agents.*`. *via https://github.com/elastic/kibana/pull/79406[#79406]* ==== [[breaking_plugin_v7.10.0_79379]] .Plugins server code no longer transpiled with Babel [%collapsible] ==== Kibana plugins can no longer rely on their server code being automatically transpiled with Babel. The https://github.com/elastic/kibana/tree/master/packages/kbn-plugin-helpers[`@kbn/plugin-helpers`] provide a build task that will transform a plugin's server code to plain JS via Babel, but plugin authors can use a tool of their choosing to accomplish the same result. *via https://github.com/elastic/kibana/pull/79176[#79176]* and https://github.com/elastic/kibana/pull/79379[#79379]* ==== [[breaking_plugin_v7.10.0_79193]] .Ingest Manager APIs moved to Fleet [%collapsible] ==== The following Ingest Manager API routes changed: * All API routes moved from `/api/ingest_manager/*` to `/api/fleet/*` * All previous Fleet routes moved from `/api/ingest_manager/fleet/*` to `/api/fleet/*`. This includes: ** `/api/ingest_manager/fleet/agents` => `/api/fleet/agents` ** `/api/ingest_manager/fleet/enrollment-api-keys` => `/api/fleet/enrollment-api-keys` * The Fleet setup API moved from `/api/ingest_manager/fleet/setup` to `/api/fleet/agents/setup` *via https://github.com/elastic/kibana/pull/79193[#79193]* ==== [[breaking_plugin_v7.10.0_78383]] .`SearchSource` is now exposed on the server [%collapsible] ==== The high-level search API `SearchSource` is now available on the server: ```js function async myRouteHandler(context, request, response) { const searchSource = await data.search.searchSource.asScoped(request); searchSource.createEmpty(); // API after calling `asScoped` matches the client-side service } ``` *via https://github.com/elastic/kibana/pull/78383[#78383]* ==== [[breaking_plugin_v7.10.0_78006]] .Response status helpers added [%collapsible] ==== This release introduces the following `search` helpers: * `isCompleteResponse` * `isErrorResponse` * `isPartialResponse` *via https://github.com/elastic/kibana/pull/78006[#78006]* ==== [[breaking_plugin_v7.10.0_77791]] .The index pattern `factory` and `crud` methods refactored [%collapsible] ==== The refactoring includes the following changes: * Create new indexPattern instance (unsaved) - `indexPatternService.make() => indexPatternService.create(indexPatternSpec, skipFetchFields)` * Save new index pattern - `indexPattern.create() => indexPatternService.createSavedObject(indexPattern)` * Setting the default index pattern is done as part of `indexPatternService.createSavedObject`, but can also be called individually- `uiSettings.set('defaultIndex', id) => indexPatternService.setDefault(indexPatternId, force)` * Update index pattern - `indexPattern.save() => indexPatternService.updateSavedObject(indexPattern)` * Additional changes: ** `indexPatternService.get();` no longer returns a new IndexPattern instance ** `indexPattern.fieldsFetcher` is replaced by `indexPatternService.getFieldsForWildcard` and `indexPatternService.getFieldsForIndexPattern` ** `indexPattern.originalBody` => `indexPattern.originalSavedObjectBody` updates via `indexPattern.resetOriginalSavedObjectBody` ** `indexPattern.refreshFields => indexPatternService.refreshFields(indexPattern)` ** `indexPatternService.createAndSave(indexPatternSpec)` convenience method added ** `indexPatternService.getFieldsForWildcard` can be called directly. Previously a temp index pattern had to be created. *via https://github.com/elastic/kibana/pull/77791[#77791]* ==== [[breaking_plugin_v7.10.0_77788]] .Error notifications now aligned [%collapsible] ==== The `data.search` service now includes these explicit error types: - `AbortError` if the request was canceled by the application or by calling `cancelPending`. - `SearchTimeoutError` if the request has timed out on the client **or** on the server. - `PainlessError` if there's an painless script error inside the response - If the error is unidentified, it throws the error as is. The new `showError` function can be used with these errors to show customized toast messages. Applications may choose to handle errors differently. However, the `SearchTimeoutError` error notification is shown regardless. ```.ts data.search.search(...) .catchError((e: Error) => { data.search.showError(e); } ``` *via https://github.com/elastic/kibana/pull/77788[#77788]* ==== [[breaking_plugin_v7.10.0_76848]] .`className` prop added to QueryStringInput component [%collapsible] ==== A `className` prop was added to the main container of the QueryStringInput component. *via https://github.com/elastic/kibana/pull/76848[#76848]* ==== [[breaking_plugin_v7.10.0_76822]] .KibanaRequest now has a `uuid` property [%collapsible] ==== `KibanaRequest` now has a `uuid` property, which is a UUID that uniquely identifies the request. *via https://github.com/elastic/kibana/pull/76822[#76822]* ==== [[breaking_plugin_v7.10.0_76706]] .Index pattern save moved to index pattern service [%collapsible] ==== `IndexPattern.save` has been replaced with `IndexPatternsService.save`. *via https://github.com/elastic/kibana/pull/76706[#76706]* ==== [[breaking_plugin_v7.10.0_76538]] .`FetchOptions` replaced with `ISearchOptions` [%collapsible] ==== The `FetchOptions` type was removed—use the `ISearchOptions` type instead. The `ISearchOptions` `signal` option was renamed to `abortSignal`. *via https://github.com/elastic/kibana/pull/76538[#76538]* ==== [[breaking_plugin_v7.10.0_75943]] .Legacy {es} client APIs removed [%collapsible] ==== The `__LEGACY` APIs have been removed from the `data` plugin's client-side search service. Specifically, `data.search.__LEGACY.esClient` is no longer exposed, and the legacy `elasticsearch-browser` package has been removed from the repo. If you rely on this client in your plugin, we recommend migrating to the new https://github.com/elastic/elasticsearch-js[`elasticsearch-js` client]. *via https://github.com/elastic/kibana/pull/75943[#75943]* ==== [[breaking_plugin_v7.10.0_75819]] .Plugin status API added [%collapsible] ==== Kibana Platform plugins can now read the status of their dependencies, their plugin's default status, and manually override that status as reported to the end user and on the `/api/status` endpoint. ```ts class MyPlugin { setup(core) { // Override default behavior and only elevate severity when elasticsearch is not available core.status.set( core.status.core$.pipe(core => core.elasticsearch); ); } } ``` *via https://github.com/elastic/kibana/pull/75819[#75819]* ==== [[breaking_plugin_v7.10.0_75728]] .New advanced setting `searchTimeout` added [%collapsible] ==== The behavior of how search requests timeout changed: * The {kib} server uses the new {es} client. The client already uses all timeout configurations such as `requestTimeout`, `shardTimeout`, and `maxRetries`. Because the client can't override those settings, in OSS, we removed the code governing the {es} timeout on the client. Instead, this change adds handling for a timeout error response. A nice side effect is being able to remove `injectDefaultVars` from the legacy core plugin. * With Basic+ licenses, users can control the maximum time for a search session (for example, a single re-load of a dashboard), per space. Aa new Advanced Setting can be set to a positive value, or to 0, allowing queries to run without a timeout, as long as a user stays on screen. *via https://github.com/elastic/kibana/pull/75728[#75728]* ==== [[breaking_plugin_v7.10.0_75717]] .`IndexPattern` class no longer uses `getConfig` or `uiSettingsValues` [%collapsible] ==== The `IndexPattern` class now takes `shortDotsEnable` (boolean) and `metaFields` (string[]) as arguments. These were formerly provided by `uiSettings` *via https://github.com/elastic/kibana/pull/75717[#75717]* ==== [[breaking_plugin_v7.10.0_75517]] .The `expressions` plugin has removed its `__LEGACY` APIs [%collapsible] ==== The `expressions` plugin has removed its `__LEGACY` APIs, which were designed for internal use in Canvas. In the unlikely event that you rely on the `expressions.__LEGACY` namespace, you will need to copy the relevant code into your plugin before updating. Also removed is the `createKibanaUtilsCore` helper from the `kibana_utils` plugin, which was only used in the legacy Expressions APIs. *via https://github.com/elastic/kibana/pull/75517[#75517]* ==== [[breaking_plugin_v7.10.0_75368]] .The search service's `getParamsFromSearchRequest` helper changed [%collapsible] ==== The `getParamsFromSearchRequest` helper changed to prepare for exposing `SearchSource` on the server. If your plugin relies on this helper, update the dependencies passed to it as follows: ```diff import { getSearchParamsFromRequest } from '../../../src/plugins/data/public'; const params = getSearchParamsFromRequest(request, { - injectedMetadata: core.injectedMetadata, - uiSettings: core.uiSettings, + esShardTimeout: core.injectedMetadata.getInjectedVar('esShardTimeout') as number, + getConfig: core.uiSettings.get.bind(core.uiSettings), }); ``` *via https://github.com/elastic/kibana/pull/75368[#75368]* ==== [[breaking_plugin_v7.10.0_75185]] .Dependencies removed from index pattern list and field list [%collapsible] ==== The index pattern `fields` class has the following changes: - The class is no longer created using a constructor. This produced odd side effects when array methods were used. In particular, removing the `IndexPattern` argument revealed that the `FieldList` constructor was being called when `filter` and similar were called, producing an error. Now, it's only created once by `IndexPattern`. - The `IndexPattern` object and `onNotification` are no longer provided to the creation function. The index pattern `field` class has the following changes: - The `IndexPattern` object and `onNotification` are no longer provided to the constructor. - The `format` attribute no longer exists. Use `IndexPattern.getFormatterForField` instead. - A callback is no longer used when an unknown field type is encountered. Instead it throws `FieldTypeUnknownError`. - `toSpec` now takes an optional argument, `{ getFormatterForField }`. This argument takes the field as an argument and returns a formatter. *via https://github.com/elastic/kibana/pull/75185[#75185]* ==== [[breaking_plugin_v7.10.0_74914]] .Agent and package configs renamed to agent and package policies [%collapsible] ==== The following Fleet (previously Ingest Manager) API routes changed: - `/api/ingest_manager/agent_configs/*` renamed to `/api/fleet/agent_policies/*` - `/api/ingest_manager/package_configs/*` renamed to `/api/fleet/package_policies/*` All Ingest Manager routes with payload fields that were previously in reference to agent configs or package configs have been renamed to agent policies and package policies. For example `configId` -> `policyId`, `package_configs` -> `package_policies`. The following Ingest Manager app routes changed: - `/app/ingestManager#/configs` renamed to `/app/ingestManager#/policies` The following Ingest Manager settings changed: - `xpack.ingestManager.fleet.agentConfigRolloutRateLimitIntervalMs` renamed to `xpack.fleet.agents.agentPolicyRolloutRateLimitIntervalMs` - `xpack.fleet.agents.agentConfigRolloutRateLimitRequestPerInterval` renamed to `xpack.fleet.agents.agentPolicyRolloutRateLimitRequestPerInterval` *via https://github.com/elastic/kibana/pull/74914[#74914]* ==== [[breaking_plugin_v7.10.0_74607]] .SearchSource dependencies moved to the server [%collapsible] ==== The `getSearchErrorType` and the `SearchError` class have been removed from the static exports of the `data` plugin's contract. If you rely on these, copy the code directly into your plugin. The `SearchError` interface is still exposed. *via https://github.com/elastic/kibana/pull/74607[#74607]* ==== [[breaking_plugin_v7.10.0_74472]] .`data.search.aggs` available on the server [%collapsible] ==== The `search.aggs` service in the `data` plugin is now available on the server. The usage is the same as on the client, except that a scoped saved objects client must be provided on the server to retrieve the `start` contract: ```ts const savedObjectsClient = savedObjects.getScopedClient(kibanaRequest); // `aggs.asScopedToClient` will return the same contract as is available in the browser const aggs = await data.search.aggs.asScopedToClient(savedObjectsClient); const allAggTypes = aggs.types.getAll(); ``` The `calculateAutoTimeExpression` method was removed from the `setup` contract, and now only exists on the `data` plugin's `start` contract. The method was was not used in `setup` elsewhere in {kib}, so it was removed for simplicity. In addition, the agg types registry changed and now accepts a provider function, which is used to inject dependencies. This might be needed in the agg type definition, specifically a `getConfig` function used to retrieve uiSettings: ```ts const getMyAgg = ({ getConfig }) => new MetricAggType({ name: 'myAgg', expressionName: 'myAggFunction', getSerializedFormat: (agg) => ({ id: 'number' }), params: [ { name: 'someParam', write: (agg, output, aggs) => ({ const queryLanguage = getConfig('search:queryLanguage'); ...etc }) } ], }); // register the agg type provider dataSetup.search.aggs.registerMetric('myAgg', getMyAgg); ``` *via https://github.com/elastic/kibana/pull/74472[#74472]* ==== [[breaking_plugin_v7.10.0_73730]] .Routes can specify the idle socket timeout [%collapsible] ==== Route definitions can now specify the `idleSocket` timeout in addition to the `payload` timeout. Resolves https://github.com/elastic/kibana/issues/73557[#73557]. *via https://github.com/elastic/kibana/pull/73730[#73730]* ==== [[breaking_plugin_v7.10.0_73651]] .New {es} client exposed [%collapsible] ==== {kib} provides the new {es} client as a part of the {es} service on the server-side. The legacy client is deprecated on and subject for removal in `7.x`. Reference the https://github.com/elastic/kibana/blob/master/src/core/MIGRATION_EXAMPLES.md#elasticsearch-client[migration guide] to refactor your code *via https://github.com/elastic/kibana/pull/73651[#73651]* ==== [[breaking_plugin_v7.10.0_72093]] .Query input string manager added [%collapsible] ==== This PR allows gracefully extracting of the query string state, to be consumed by other services. You can now use the `data.query.state$` observable and receive all state updates in one place. ```TypeScript data.query.state$.subscribe((queryState: QueryState) => {...}) ``` This PR also adds the `data.query.queryString` service, allowing to you set the query string https://github.com/elastic/kibana/issues/52522[programmatically]. ```TypeScript data.query.queryString.setQuery({query: 'abc', language: 'kuery'}); ``` *via https://github.com/elastic/kibana/pull/72093[#72093]* ==== [[breaking_plugin_v7.10.0_67157]] .Role-based access control added to the Alerting & Action plugins [%collapsible] ==== This PR allows you to assign privileges to the Alerting framework when defining your feature in *Kibana*. When registering your feature, you can add a list of AlertTypes under your `read` and `all` keys of the `privileges` object, as such: ```ts features.registerFeature({ id: 'alertsExample', name: 'alertsExample', app: [], privileges: { all: { alerting: { all: ['example.always-firing', 'example.people-in-space'], }, }, read: { alerting: { read: ['example.always-firing', 'example.people-in-space'], }, }, }, }); ``` This specifies: * If users AbortError granted the `all` privilege to the `alertsExample` feature, then they are also granted `all` privileges to the `example.always-firing` and `example.people-in-space` AlertTypes under the `alertsExample` consumer. * If users are granted the `read` privilege to the `alertsExample` feature, then they are also granted `read` privileges to the `example.always-firing` and `example.people-in-space` AlertTypes under the `alertsExample` consumer. For example, an `all` user will be able to create an `example.always-firing` alert with the `alertsExample` as consumer. This will also automatically grant the user the right to create an `example.always-firing` alert from within Alerts management, where `alerts` is the consumer. This **does not** grant the user the ability to create an `example.always-firing` alert under any other consumer. For that, the specific consumer will have to grant the user explicit rights through their privilege system. For example, if Uptime wanted to allow users to create an `example.people-in-space` alert inside of the Uptime solution, then they will have to do the following: ```ts features.registerFeature({ id: 'uptime', name: 'Uptime', app: [], privileges: { all: { alerting: { all: ['xpack.uptime.alerts.actionGroups.tls', 'example.people-in-space'], }, }, read: { alerting: { read: ['xpack.uptime.alerts.actionGroups.tls', 'example.people-in-space'], }, }, }, }); ``` This, assuming it's added by Uptime, would grant uptime users the privilege to create both their own `xpack.uptime.alerts.actionGroups.tls` alert and the `example.people-in-space` alert with `uptime` as the consumer. This does not allow any Uptime user with `all` privileges to create an `example.people-in-space` alert. To create an `example.people-in-space` alert, the Uptime user needs both `all` in Uptime **and** in AlertsExample, as we always check whether the user is privileged to execute an operation (create/enable/delete etc.) in both the alert's _consumer_ and its _producer_. The one exception to this is when the _producer_ is `alerts`, which represents a `built-in` AlertType, in which case we only check for _consumer_ privileges as all users are privileged to create built-in types by definition. *via https://github.com/elastic/kibana/pull/67157[#67157]* ==== [[breaking_plugin_v7.10.0_73257]] .The EventLog Setup contract now exposes a `registerSavedObjectProvider` [%collapsible] ==== The EventLog Setup contract now exposes a registerSavedObjectProvider method which can be used to register a Saved Object provider. ```ts export interface IEventLogService { isEnabled(): boolean; isLoggingEntries(): boolean; isIndexingEntries(): boolean; registerProviderActions(provider: string, actions: string[]): void; isProviderActionRegistered(provider: string, action: string): boolean; getProviderActions(): Map>; registerSavedObjectProvider(type: string, provider: SavedObjectProvider): void; getLogger(properties: IEvent): IEventLogger; } ``` This API specifies the Saved Object type and a "provider" callback that is called whenever a new request asks for that type of Saved Object. This example shows a provider for the alert SavedObject type, which creates a new AlertsClient for the request and returns a getter that attempts to get the SavedObject by its id. *via https://github.com/elastic/kibana/pull/73257[#73257]* ```ts eventLogService.registerSavedObjectProvider('alert', (request: KibanaRequest) => { const client = getAlertsClientWithRequest(request); return (type: string, id: string) => client.get({ id }); }); ``` The EventLog maintains a registry of each provider, and creates a getter on demand when the user actually requests an object of a certain type. An AlertsClient is only instantiated if the user requests to the events reference an Alert. Once a getter is created for a specific request, it is cached for the remainder of the lifecycle of that request. This means a single provider is used for multiple gets made by the request. ==== [[breaking_plugin_v7.10.0_72289]] .New {es} client in SO service [%collapsible] ==== The SO service was refactored to use https://github.com/elastic/elasticsearch-js[elasticsearch-js] under the hood. This change might affect plugins reading the response status field from the SO error bubbled to the Solutions code because the {es} error no longer provides the status field (statusCode is still provided). Several plugins were adjusted to check SO errors with `SavedObjectsErrorHelpers`. Plugins must use this because we are going to stop wrapping errors in the Boom object. *via https://github.com/elastic/kibana/pull/72289[#72289]* ==== [[breaking_plugin_v7.10.0_72029]] .Alerts Management now controlled via Feature Controls and privileges [%collapsible] ==== If you want your plugin to grant a user access to Alerts Management, you must specify it under Management in your feature configuration: ```ts management: { insightsAndAlerting: ['triggersActions'], }, ``` You can specify it in three places: * Directly on the feature. When security is disabled, this grants access to every role granted access to the Feature via Feature Controls. When security is enabled, this specifies that the feature has access to this management section and is required before you can grant this to a specific role. * Under the `all` privilege. When security is enabled, this grants access to every role granted the `all` privilege to the Feature via Feature Controls. * Under the `read` privilege. When security is enabled, this grants access to every role granted the `read` privilege to the Feature via Feature Controls. You're likely to have to specify this in 3 places in your plugin to cover all 3 scenarios. Although this is more verbose than before, it aligns with the rest of {kib}. It also means that the Triggers and Actions plugin no longer needs to know about each plugin that wants to gain access (which means {kib} can more easily support future alerting usage). *via https://github.com/elastic/kibana/pull/72029[#72029]* ==== [discrete] [[breaking_plugin_v7.10.0_73778]] .API changed for creating a Jira connector [%collapsible] ==== `casesConfiguration` was renamed to `incidentConfiguration`. Added optional `attributeisCaseOwned`. *via https://github.com/elastic/kibana/pull/73778[#73778]* ==== [discrete] [[breaking_plugin_v7.10.0_74357]] .API changed for creating an IBM Resilient connector [%collapsible] ==== `casesConfiguration` was renamed to `incidentConfiguration`. Added optional `attributeisCaseOwned`. *via https://github.com/elastic/kibana/pull/74357[#74357]* ==== [discrete] [[breaking_plugin_v7.10.0_77327]] .Settings per case per connector [%collapsible] ==== - To create a case (`POST :/api/cases`), you must provide a `connector`. Requests without a `connector` get a `400 Bad Request`. - To update the connector of a case (`PATCH :/api/cases`), you must provide the `connector`. The `connector_id` attribute has been removed in favor of the `connector` attribute. - To set the default connector (`POST :/api/cases/configure`), you must provide a `connector`. The `connector_id` and `connector_name` attributes have been removed in favor of the `connector` attribute. - To update the connector’s case closure settings (`PATCH :/api/cases/configure`), you must provide a `connector`. The `connector_id` and `connector_name` attributes have been removed in favor of the `connector` attribute. *via https://github.com/elastic/kibana/pull/77327[#77327]* ==== [float] [[deprecation-v7.10.0]] === Deprecations Monitoring:: * "Internal Monitoring" deprecation warning {kibana-pull}72020[#72020] Platform:: * The /api/status endpoint response format is now deprecated and will change in 8.0 {kibana-pull}76054[#76054] * These two config keys have been renamed and the old names will no longer work as of 8.0: cpu.cgroup.path.override => ops.cGroupOverrides.cpuPath and cpuacct.cgroup.path.override => ops.cGroupOverrides.cpuAcctPath {kibana-pull}76730[#76730] Security:: * Deprecates the `xpack.security.authc.providers.saml..maxRedirectURLSize` setting for SAML authentication {kibana-pull}68117[#68117] Visualizations:: * In 7.0 and later, *Timelion* app is deprecated. In 8.0 and later, *Timelion* app is removed from {kib} {kibana-pull}74660[#74660] + To prepare for the removal of *Timelion* app, you must migrate *Timelion* app worksheets to a dashboard. + NOTE: Only *Timelion* app is deprecated. {kib} continues to support *Timelion* visualizations in *Dashboard*, *Visualize*, and *Canvas*. + To migrate a *Timelion* worksheet to a dashboard: . Open the main menu, click *Dashboard*, then click *Create dashboard*. . For each *Timelion* app worksheet, complete the following steps. .. On the dashboard, click *Create New*, then click *Timelion* on the *New Visualization* window. .. Open a new tab, open the *Timelion* app, select the chart you want to copy, then copy the chart expression. + [role="screenshot"] image::images/timelion-copy-expression.png[Timelion app chart] .. Go to *Timelion*, paste the chart expression in the *Timelion expression* field, then click *Update*. + [role="screenshot"] image::images/timelion-vis-paste-expression.png[Timelion advanced editor UI] .. In the toolbar, click *Save*. .. On the *Save visualization* window, enter the visualization *Title*, then click *Save and return*. + The Timelion visualization panel appears on the dashboard. + [role="screenshot"] image::images/timelion-dashboard.png[Final dashboard with saved Timelion app worksheet] [float] [[breaking-v7.10.0]] === Breaking changes Lens and visualizations:: * Deprecates schema-less specs in Vega {kibana-pull}73805[#73805] Operations:: * The bin/kibana-plugin CLI has been updated to work with the new Kibana Platform plugin format instead of the legacy plugin format {kibana-pull}74604[#74604] Platform:: * The legacy plugin system and the legacy plugin API have been removed. It is no longer possible to use third parties legacy Kibana plugins. Legacy plugin owners should migrate their plugins to the Kibana Platform plugin API {kibana-pull}77599[#77599] For more information, refer to <>. [float] [[enhancement-v7.10.0]] === Enhancements Alerting:: * Batches the update operations in Task Manager {kibana-pull}71470[#71470] * Actions add proxy support {kibana-pull}74289[#74289] * Exempt Alerts pre 7.10 from RBAC on their Action execution until updated {kibana-pull}75563[#75563] * Improves performance of the authorization filter in AlertsClient.find by skipping KQL parsing {kibana-pull}77040[#77040] * Adds a Test Connector tab in the Connectors list {kibana-pull}77365[#77365] * Adds a "Test Connector" button on the Connectors List to make discovery of the Test tab easier {kibana-pull}78746[#78746] * The high-level search API SearchSource is now available on the server {kibana-pull}78383[#78383] * Adds Role Based Access-Control to the Alerting & Action plugins based on Kibana Feature Controls {kibana-pull}67157[#67157] APM:: * Metrics-powered UI {kibana-pull}73953[#73953] * Uses platform history {kibana-pull}74328[#74328] * Immediately returns terms for unbound queries {kibana-pull}74543[#74543] * Implements nest level expand/collapse toggle for each span row {kibana-pull}75259[#75259] * Removes additional "No data" message and re-ordering charts {kibana-pull}75399[#75399] * Uses the outcome field to calculate the transaction error rate chart {kibana-pull}75528[#75528] * Improves breakdown data gaps {kibana-pull}75534[#75534] * UI filters: Change transaction type selector from dropdown to radio buttons {kibana-pull}75625[#75625] * Language-specific stacktrace formatting {kibana-pull}75924[#75924] * Service maps layout enhancements {kibana-pull}76481[#76481] * Service inventory redesign {kibana-pull}76744[#76744] * Shows accurate metrics for containerized applications {kibana-pull}76768[#76768] * Anomaly detection Settings page: Link directly to ML jobs management to filter for the select environment {kibana-pull}77875[#77875] * Removes `max` validation for transaction_max_spans {kibana-pull}77987[#77987] * Service maps grouped external resource nodes {kibana-pull}78136[#78136] * Alerting: Add global option to create all alert types {kibana-pull}78151[#78151] * Empty prompt and loading spinner for service map {kibana-pull}78382[#78382] * Adds default message to alerts. {kibana-pull}78930[#78930] * Persists time range between APM and other apps {kibana-pull}79090[#79090] * Sets service map cursors {kibana-pull}80920[#80920] * Persists time range across apps {kibana-pull}79258[#79258] Dashboard:: * Lens By Value With AttributeService {kibana-pull}77561[#77561] Discover:: * Uiactions to navigate to visualize or maps {kibana-pull}74121[#74121] * Supports unsigned_long fields {kibana-pull}81115[#81115] Ingest Manager:: * Agent bulk actions UI {kibana-pull}77690[#77690] * Supports multiple kibana urls {kibana-pull}75712[#75712] * Adds upgrade action {kibana-pull}77412[#77412] * User experience metrics {kibana-pull}77384[#77384] * Uses optional `registryProxyUrl` setting when contacting Registry {kibana-pull}78648[#78648] * Upgrades Agents in Fleet {kibana-pull}78810[#78810] * Configures Elasticsearch output with YAML in global output settings {kibana-pull}79019[#79019] Kibana UI:: * Elastic home page redesign {kibana-pull}70571[#70571] * Stacked headers and navigational search {kibana-pull}72331[#72331] * Kibana Overview Page {kibana-pull}75827[#75827] * Adds meta data and highlighting to nav search {kibana-pull}77662[#77662] * Creates new "Add Data" tutorials for several newly added Filebeat modules {kibana-pull}77237[#77237] Lens and visualizations:: * Lens is GA {kibana-pull}75574[#75574] * Lens legend improvements {kibana-pull}70619[#70619] * Lens added stack as percentage {kibana-pull}70703[#70703] * Lens adds styling options for x and y axes {kibana-pull}71829[#71829] * Lens adds filters aggregation {kibana-pull}75635[#75635] * Lens supports drag to replace {kibana-pull}75895[#75895] * Lens adds histogram/range aggregation for numbers {kibana-pull}76121[#76121] * Lens settings panel redesign and separate settings per y axis {kibana-pull}76373[#76373] * Lens field stats for IP fields and scripted fields {kibana-pull}76457[#76457] * Adds Lens to Recently Accessed {kibana-pull}77249[#77249] * Navigate from discover to lens {kibana-pull}77873[#77873] * Lens shows runtime fields in field list and improve performance {kibana-pull}79167[#79167] * Drilldowns for TSVB / Vega / Timelion {kibana-pull}74848[#74848] * TSVB filter ratio now supports KQL {kibana-pull}75033[#75033] * Vega is now GA {kibana-pull}75157[#75157] * Uses prefix search in visualize editor's field and aggregation select {kibana-pull}75290[#75290] * TSVB Markdown now handles the case when a field has key_as_string value. Common case is the value is a date string (e.x. 2020-08-21T20:36:58.000Z) or a boolean stringified value ("true"/"false"). Such a value will be first converted into a moment object and formatted with dateFormat from Kibana UI settings. If the key_as_string value is not recognized by a known format in Moments.js, a formatted value from elasticsearch will be returned {kibana-pull}75555[#75555] * Agg-based histograms now have `auto` interval option {kibana-pull}76001[#76001] * The search.aggs service in the data plugin is now available on the server. Usage is the same as on the client, except that a scoped saved objects client must be provided on the server in order to retrieve the start contract {kibana-pull}74472[#74472] Logs:: * Log alerts chart previews {kibana-pull}75296[#75296] * Adds dataset-specific categorization warnings {kibana-pull}75351[#75351] * Log threshold ratio alerts {kibana-pull}76867[#76867] * Adds timestamp as a context variable to log threshold alerts {kibana-pull}78932[#78932] Machine Learning:: * Adds combined job and datafeed JSON editing {kibana-pull}72117[#72117] * Dat frame analytics creation wizard: default destination index to job id {kibana-pull}72758[#72758] * Adds decision path charts to exploration results table {kibana-pull}73561[#73561] * Data frame analytics creation wizard: ensures user can switch back to form from JSON editor {kibana-pull}73752[#73752] * Adds datafeed query reset button {kibana-pull}73958[#73958] * Data frame analytics creation wizard: shows link to results {kibana-pull}74025[#74025] * Adds initial file analysis overrides {kibana-pull}74376[#74376] * Add ability to pass a group ID filter to job management page {kibana-pull}74533[#74533] * Adds memory status to data frame analytics job list {kibana-pull}74570[#74570] * Switching to new {es} client {kibana-pull}74965[#74965] * Inference models management {kibana-pull}74978[#74978] * Adds indicator if there are stopped partitions in categorization job wizard {kibana-pull}75709[#75709] * Adds Metadata and Discovery Analysis Jobs to Security Integration {kibana-pull}76023[#76023] * Adds option to Advanced Settings to set default time range filter for anomaly detection jobs {kibana-pull}76347[#76347] * Adds machine learning modules for Metrics UI Integration {kibana-pull}76460[#76460] * Collapsable sections on data frame analytics job result pages {kibana-pull}76641[#76641] * Improves client side error handling {kibana-pull}76743[#76743] * Adds geo point combined field to CSV import {kibana-pull}77117[#77117] * Adds option to create anomaly detection jobs without starting the datafeed {kibana-pull}77484[#77484] * Adds feature importance summary charts {kibana-pull}78238[#78238] * Default filter of data frame analytics results page by `defaultIsTraining` value in url {kibana-pull}78303[#78303] * Replaces use of rest_total_hits_as_int with track_total_hits {kibana-pull}78423[#78423] * Adds runtime fields support {kibana-pull}78700[#78700] * Adds `ml.is_training` filter to regression/classification views {kibana-pull}78702[#78702] * Data frame analytics creation wizard: replaces select input with job type cards with icons {kibana-pull}78872[#78872] * Data frame analytics results view: ensures boolean values in charts shown without formatting {kibana-pull}78888[#78888] * Only adjust the bounds of Single Metric Viewer if annotations are visible {kibana-pull}79210[#79210] * Data frame analytics creation wizard: ensures job creation possible when model memory lower than estimate {kibana-pull}79229[#79229] * Expandable sections for classification and regression {kibana-pull}79414[#79414] Management:: * Empty index patterns page re-design {kibana-pull}68819[#68819] * Adds inspector for VEGA {kibana-pull}70941[#70941] * Adds links to "wait for snapshot policy" combobox that navigate to the snapshot policy creation wizard, when there no policies created yet or the value doesn't match any existing policies {kibana-pull}72473[#72473] * Adds the possibility to preview the final composite of a composable template. The user will be able to see this preview from the creation or editing wizard flow, or when looking at the details of a composable template {kibana-pull}72598[#72598] * Refines the debugging user experience when creating or editing an ingest node pipeline in the existing Ingest Node Pipelines UI. Once a sample document(s) is provided, the pipeline is executed. The UI highlights the status of each processor, and shows the user how their sample documents change shape at each step in the pipeline {kibana-pull}74964[#74964] * The Data Streams tab in Index Management now allows users to view additional information for data streams {kibana-pull}75107[#75107] * Data tiers for 7.10 {kibana-pull}76126[#76126] * The mappings editor in the Index Templates UI now supports configuring the constant_keyword field type {kibana-pull}76564[#76564] * The mappings editor in the Index Templates UI now supports configuring the wildcard field type {kibana-pull}76574[#76574] * The mappings editor in the Index Templates UI now supports configuring the histogram field type. Support for the meta parameter was also added to the boolean, binary, completion, date, flattened, geo_point, numeric, range, search_as_you_type, token_count and text field types {kibana-pull}76671[#76671] * Time suffix for duration formatter {kibana-pull}76729[#76729] * The ingest node pipeline editor now has the ability to move processors into an empty tree {kibana-pull}76885[#76885] * The ILM UI now allows attaching a lifecycle policy to both a composable index template and a legacy index templatee {kibana-pull}77077[#77077] * Adds forcemerge action to hot phase with a rollover enabled {kibana-pull}77193[#77193] * Transforms: Extend editing and creation options {kibana-pull}77370[#77370] * The mappings editor in the Index Templates UI now supports configuring the point field type {kibana-pull}77543[#77543] * Adds an option to select a higher compression codec for force merge action in ILM {kibana-pull}78175[#78175] * The mappings editor in the Index Templates UI now supports configuring the version field type {kibana-pull}78206[#78206] * Updates transform cloning to include description and new fields {kibana-pull}78364[#78364] * Optimises keyboard navigation of the ingest processors component {kibana-pull}79122[#79122] Maps:: * Auto-fits to data bounds {kibana-pull}72129[#72129] * Implements save and return from dashboard {kibana-pull}74303[#74303] * Adds initial location option that fits to data bounds {kibana-pull}74583[#74583] * Adds drilldown support map embeddable {kibana-pull}75598[#75598] * Originating App Breadcrumb {kibana-pull}75692[#75692] * Adds mvt support for ES doc sources {kibana-pull}75698[#75698] * Adds message to empty add tooltip card {kibana-pull}75809[#75809] * Introduces geo-threshold alerts {kibana-pull}76285[#76285] * Removes alias icon for Lens and Maps {kibana-pull}76418[#76418] * Adds deprecated message to tile_map and region_map visualizations. {kibana-pull}77683[#77683] * Adds super-fine option to grid/cluster layer {kibana-pull}78201[#78201] * Enables auto fit to bounds by default {kibana-pull}79296[#79296] Metrics:: * Supports percentage format in threshold alerts {kibana-pull}72701[#72701] * Uses Notify Every in Alert Preview {kibana-pull}74401[#74401] * Gets custom metrics working in inventory alerts with limited UI {kibana-pull}75073[#75073] * Anomaly Detection setup flow for Metrics {kibana-pull}76787[#76787] * Adds inventory view timeline {kibana-pull}77804[#77804] * Adds anomalies to timeline {kibana-pull}78602[#78602] * Adds ability to override datafeeds and job config for partition field {kibana-pull}78875[#78875] * Overrides anomaly detection partition field {kibana-pull}79214[#79214] Monitoring:: * Fixes the messaging around needing TLS enabled {kibana-pull}72310[#72310] * Adds loading page {kibana-pull}75362[#75362] * Disk usage alerting {kibana-pull}75419[#75419] * Design/UI improvements {kibana-pull}76946[#76946] * Alert Telemetry for the Security app {kibana-pull}77200[#77200] * Adds new elasticsearch client to telemetry plugin {kibana-pull}78046[#78046] * Missing data alert {kibana-pull}78208[#78208] * [Telemetry] Display collected security event sample {kibana-pull}78963[#78963] * JVM memory usage alert {kibana-pull}79039[#79039] * Navigational search UI metrics {kibana-pull}79238[#79238] Operations:: * Kibana no longer needs to optimize plugins for use in the browser when a plugin is installed. This means the --optimize flag is now deprecated and does nothing now. It will be removed in 8.0 {kibana-pull}73154[#73154] * Docker containers now use CentOS 8.2 as the base image, upgrading from 7. {kibana-pull}74656[#74656] * Docker images now include CJK fonts built in {kibana-pull}74806[#74806] Platform:: * Adds support for reading request ID from X-Opaque-Id header {kibana-pull}71019[#71019] * Adds Kea.js support to Enterprise Search plugin {kibana-pull}72160[#72160] * Adds solution-level side navigation {kibana-pull}74705[#74705] * Adds Workplace Search side navigation {kibana-pull}74894[#74894] * Adds support for version on create & bulkCreate when overwriting a document {kibana-pull}75172[#75172] * Monitors the Task Manager Poller and automatically recovers from failure {kibana-pull}75420[#75420] * Adds a new Enterprise Search overview plugin, which introduces and guides users to the App Search and Workplace Search plugins {kibana-pull}76734[#76734] * The deprecated Dashboard Import API (POST /api/kibana/dashboards/import) now accepts filesizes up to the savedObjects.maxImportPayloadBytes configuration which is 10MB by default {kibana-pull}77409[#77409] Reporting:: * Reporting configuration settings for time duration values allow "time unit" strings to be specified as well as number of milliseconds. For byte size values, "byte size" strings are allowed as well as number of bytes. See the Reporting configuration documentation for more details {kibana-pull}74202[#74202] * Reporting/diagnostics {kibana-pull}74314[#74314] * Removes the light gray border around the image in PDF reports {kibana-pull}78036[#78036] * Increases capture.timeouts.openUrl to 1 minute {kibana-pull}75207[#75207] Security:: * Hides management sections based on cluster/index privileges {kibana-pull}67791[#67791] * xpack.encryptedSavedObjects.encryptionKey can now be rotated without losing access to existing encrypted Saved Objects (alerts, actions etc.). Old key(s) can be moved to xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys to be used only to decrypt existing objects while new or updated objects will be encrypted using new primary encryption key. Administrators can also use dedicated API endpoint /api/encrypted_saved_objects/_rotate_key to trigger re-encryption of all existing objects with a new primary key so that old keys can be safely disposed {kibana-pull}72420[#72420] * Groups features for space management {kibana-pull}74151[#74151] * Allows passwords to be visible on security screens {kibana-pull}77394[#77394] * Groups features for role management {kibana-pull}78152[#78152] * Warns users when security is not configured {kibana-pull}78545[#78545] * Sharing saved-objects phase 1.5 {kibana-pull}75444[#75444] * [Detections] Handle conflicts on alert status update {kibana-pull}75492[#75492] * Improves the experience when Kibana returns a 403 HTTP status code or the user tries to access a page/app they do not have access to. In those instances, a new user-friendly error page is shown. The user will get the option to go back to the page from where they came, or log in as a different user. Previously the user would just see a simple JSON document containing a short error message without the ability to do anything {kibana-pull}75538[#75538] * Adds EQL search strategy {kibana-pull}78645[#78645] * Fetches related events from the server {kibana-pull}78780[#78780] * [Resolver] Requests data from new event api {kibana-pull}78782[#78782] * Updates copy styling {kibana-pull}79313[#79313] * Excludes cloud alias index from our query {kibana-pull}81551[#81551] * Implements server-side sessions. {kib} now stores user session information in a dedicated {es} index. By default, expired and invalid sessions are cleaned from the index every hour. You can configure the cleanup interval with the `xpack.security.session.cleanupInterval` setting. After the upgrade, all existing sessions are invalid and users must log back in to {kib}. It's also no longer possible to host different {kib} tenants on different ports of the same host. Although this setup worked in the past, it was discouraged because browsers share cookies across all applications hosted using the same host name, ignoring ports. Cookies are now strictly tied to a particular tenant. {kibana-pull}68117[#68117] Uptime:: * Pings Redirects {kibana-pull}65292[#65292] * Uses `service.name` to link from Uptime -> APM where available {kibana-pull}73618[#73618] * One click simple monitor down alert {kibana-pull}73835[#73835] * Singular alert {kibana-pull}74659[#74659] * Creates new path for client side monitoring {kibana-pull}74740[#74740] * Adds rum core web vitals {kibana-pull}75685[#75685] * Visitors by region map {kibana-pull}77135[#77135] * Url search {kibana-pull}77516[#77516] * Js errors {kibana-pull}77919[#77919] * Synthetics UI {kibana-pull}77960[#77960] * OpenTelemetry icons and data telemetry {kibana-pull}78499[#78499] * Adds percentile selector {kibana-pull}78562[#78562] * Adds core web vitals in obsv homepage {kibana-pull}78976[#78976] * Makes uptime ping histogram bar clickable to improve filtering {kibana-pull}79054[#79054] * Adds type row to monitor detail page {kibana-pull}79556[#79556] * Allow add alert Flyout initial values like name, tags {kibana-pull}76906[#76906] [float] [[bug-v7.10.0]] === Bug fixes Alerting:: * Overwrites SOs when updating instead of partially updating {kibana-pull}73688[#73688] * Reloads the Alerts List when alerts are deleted {kibana-pull}73715[#73715] * Fixes alerting_api_integration/security_and_spaces tests failing if actions proxy set on for parallel process running using commands 'scripts/functional_tests_server' and 'scripts/functional_test_runner' {kibana-pull}75232[#75232] * Adds validation to display an error when creating index action in alert with invalid document. {kibana-pull}75929[#75929] * Avoids setting a default dedupKey on PagerDuty {kibana-pull}77773[#77773] * Fixes React warnings in Suspense usage during Alert creation {kibana-pull}77777[#77777] * Fixes alert add and edit flyout to not close when user clicks outside {kibana-pull}78860[#78860] * Fixes error in UI in the Edit Flyout for PreConfigured Connectors {kibana-pull}78994[#78994] * Makes savedObjectId field optional {kibana-pull}79186[#79186] * Renames "Built-In Alerts" feature to "Stack Alerts" and "Actions" feature to "Actions and Connectors" {kibana-pull}79513[#79513] * Fixes sorting of Alert Instance in Details page {kibana-pull}80103[#80103] * Fixes migration issue for case specific actions, by extending email action migrator checks {kibana-pull}81673[#81673] * Fixes docs in trigger alerting UI {kibana-pull}75363[#75363] * Populates alert instances view with event log data {kibana-pull}68437[#68437] * Displays a banner to users when some alerts have failures, added alert statuses column and filters {kibana-pull}79038[#79038] * Formalizes alert status and add status fields to alert saved object {kibana-pull}75553[#75553] APM:: * Uses core.chrome to set window title {kibana-pull}73232[#73232] * Chart units don't update when toggling the chart legends {kibana-pull}74931[#74931] * Fixes overlapping transaction names {kibana-pull}76083[#76083] * Avoids negative offset for error marker on timeline {kibana-pull}76638[#76638] * Service Map: `Not Defined` option doesn't work properly {kibana-pull}77483[#77483] * Uses model_plot as a signal for anomaly scores {kibana-pull}77756[#77756] * Fixes service maps ML link zoom value {kibana-pull}77841[#77841] * Fixes APM header wrapping {kibana-pull}78845[#78845] * Catches health status error from ML {kibana-pull}80131[#80131] * Hides service if only data is from ML {kibana-pull}80145[#80145] * Fixes link to trace {kibana-pull}80993[#80993] * Service map handle timeout with messaging {kibana-pull}82083[#82083] * Scale transaction rate correctly {kibana-pull}82155[#82155] Dashboard:: * Sample data link does not work {kibana-pull}75262[#75262] * Stores Expanded Panel Id in URL {kibana-pull}78684[#78684] * Fixes embeddable title and description for reporting and dashboard tooltip {kibana-pull}78767[#78767] * Fixes apps break on unrestorable session state in URL {kibana-pull}74264[#74264] Discover:: * Converts legacy sort to be compatible with multi sort {kibana-pull}76986[#76986] * Context - Fix bug when document id contains a slash {kibana-pull}77435[#77435] * Makes _source field not clickable {kibana-pull}78698[#78698] * "View surrounding documents" encodes spaces in filters {kibana-pull}79283[#79283] * Should not visualize unknown/conflict type fields {kibana-pull}81311[#81311] Ingest Manager:: * Fixes removing ingest pipelines from elasticsearch {kibana-pull}75092[#75092] * Installs previous version of package if update fails {kibana-pull}76694[#76694] * Agent Policy names are unique {kibana-pull}79201[#79201] * Index pattern installation uses requested package version {kibana-pull}80079[#80079] * Removes fields from index pattern during package uninstall {kibana-pull}80082[#80082] * Allows default packages to be deleted from the default agent policy {kibana-pull}81535[#81535] Kibana UI:: * Removes duplicate string in search dropdown {kibana-pull}77429[#77429] Lens and visualizations:: * Lens fixes inconsistencies when switching with empty layer {kibana-pull}72809[#72809] * Lens fixes bug in saving {kibana-pull}74483[#74483] * Lens fixes table sorting bug {kibana-pull}74902[#74902] * Lens fixes rollup related bugs {kibana-pull}75314[#75314] * Lens fixes dimension popover design on mobile {kibana-pull}75866[#75866] * Shows meta field data in Lens {kibana-pull}77210[#77210] * Lens fixes unclear UI for bucket aggregation grouping order {kibana-pull}77331[#77331] * Lens handles missing fields gracefully {kibana-pull}78173[#78173] * Lens removes Over time suggestions for numeric intervals {kibana-pull}78442[#78442] * Lens fixes display of multiple un-stacked bar series {kibana-pull}78525[#78525] * Lens prevents values outside of range for number of top values {kibana-pull}78734[#78734] * Lens fixes empty callout for empty/meta fields accordion {kibana-pull}79429[#79429] * Lens fixes debouncing in visualization settings UI {kibana-pull}79625[#79625] * Lens fixes chart switching for XY charts {kibana-pull}80297[#80297] * Lens fixes URL query loss on redirect {kibana-pull}81475[#81475] * TSVB fixes inaccurate Group By {kibana-pull}73683[#73683] * TSVB ffixes bug on TopN weird behavior with zero values {kibana-pull}74942[#74942] * TSVB fixes panel updates with back button {kibana-pull}75896[#75896] * TSVB allows string fields on value count aggregation {kibana-pull}79267[#79267] * Prevents pageload on TSVB drilldown {kibana-pull}78005[#78005] * Data table fixes download filename when using split table {kibana-pull}74231[#74231] * Bar chart fixes rendering of non-stacked bar {kibana-pull}74930[#74930] * Bar chart fixes overlapping percentiles {kibana-pull}75315[#75315] * Fix crash in input controls if index pattern is not available {kibana-pull}79431[#79431] * Vega fixes unexpected change in autosizing behavior post upgrade {kibana-pull}77408[#77408] * Timelion hides app from search results when the setting is disabled {kibana-pull}77763[#77763] * In some old TSVB visualization saved objects, queries and filters can be stored. This is not possible anymore for a while and there is no way to edit them besides changing the JSON of the saved object, but they were still applied to the rendered output. In 7.10, these leftover queries and filters will be removed automatically from the saved object. In almost all cases, no change is necessary. If a visualization contained these local queries and filters deliberately, they should be converted to panel filters in the "Panel options" of the TSVB interface {kibana-pull}75137[#75137] Logs:: * Returns 403s rather than 500s for ML privilege errors {kibana-pull}74506[#74506] * Correctly filters for log rate anomaly examples with missing dataset {kibana-pull}76775[#76775] * Fixes logs permissions for alert management {kibana-pull}81199[#81199] Machine Learning:: * Updates broken job config callout error {kibana-pull}75481[#75481] * Replaces all use of date_histogram interval with fixed_interval {kibana-pull}76876[#76876] * Data frame analytics creation wizard: Fixes field loading race condition {kibana-pull}77326[#77326] * Improves calendar ics file parsing {kibana-pull}78986[#78986] * Data frame analytics creation wizard: Resolves clone usability issues {kibana-pull}79048[#79048] * Fixes jobs so it limit job menu actions for jobs that are closing {kibana-pull}79303[#79303] * Data frame analytics: Ensures clear error when index pattern missing {kibana-pull}79378[#79378] * Avoids full page reload for links following CSV import {kibana-pull}79539[#79539] * Classification results: Ensures confusion matrix doesn't span full width {kibana-pull}79790[#79790] * Fixes anomaly detection jobs list load if call to load job messages fails {kibana-pull}79792[#79792] * Sends secondary auth headers to _explain {kibana-pull}79814[#79814] * Fixes job selection flyout {kibana-pull}79850[#79850] * Datagrid: Ensures column content with 'boolean' schema is not capitalized {kibana-pull}80041[#80041] * Fixes Anomaly Explorer charts time range to obey time picker range {kibana-pull}80317[#80317] * Data frame analytics results: Ensures boolean values in confusion matrix are not capitalized {kibana-pull}80350[#80350] * Fixes values for decision path not showing correctly for regression due to rounding {kibana-pull}80555[#80555] * Fixes regression with some links not opening in new tab {kibana-pull}80785[#80785] * Fixes callout message for total feature importance {kibana-pull}80881[#80881] * Fixes exclude frequent in advanced wizard {kibana-pull}81121[#81121] Management:: * Fixes the copy of the success notification that displays after creating or saving a watch {kibana-pull}73982[#73982] * Data frame analytics / Transforms: Fixes job row actions menu invalid DOM nesting warning {kibana-pull}74499[#74499] * Transforms: Unset doc title when app unmounts {kibana-pull}75539[#75539] * Fixes a bug in Snapshot and Restore when creating a Snapshot Lifecycle Management policy, where the form could become locked if the user enter an invalid value and navigated to a previous step {kibana-pull}76540[#76540] * The mappings editor in Index Management now supports configuring the positive_score_impact parameter for the rank_feature field type {kibana-pull}76824[#76824] * Transforms: Fixes styling of preview grid pagination in summary step {kibana-pull}77789[#77789] * Fixes a bug in the index template wizard, which resulted in an incorrect validation error when a user toggles between the dynamic templates and advanced settings tabs without providing any values {kibana-pull}78707[#78707] * Checks for source indexPattern before opening clone wizard {kibana-pull}79383[#79383] * Fixes an issue when editing the mappings of an index template and selecting the "Other" type {kibana-pull}79434[#79434] * Transforms/Data frame analytics: Fixes data grid column sorting. {kibana-pull}80618[#80618] * Transforms: Fixes tab ids for expanded row. {kibana-pull}80666[#80666] * Fixes package upgrade breaking after first rollover before new data has arrived {kibana-pull}79887[#79887] Maps:: * Fixes swap hidden/show icons in layer action panel {kibana-pull}74549[#74549] * Fixes double fetch when filters are modified {kibana-pull}74893[#74893] * Fixes read only badge is no longer shown in nav for users with read-only permission {kibana-pull}76091[#76091] * Fixes Hotlink for EMS-add-data card do not working {kibana-pull}76110[#76110] * Removes obsolete link {kibana-pull}76419[#76419] * Exposes map title and description to reporting and embeddable container {kibana-pull}79325[#79325] * Uses default format when proxying EMS-files {kibana-pull}79760[#79760] * Fixes refreshing the page causes loss of unsaved change {kibana-pull}81226[#81226] * Fixes top-level Map page is called 'Kibana' {kibana-pull}81238[#81238] * Fixes auto-refresh not auto fitting to bounds {kibana-pull}81251[#81251] * Adds layer type preview icons {kibana-pull}78650[#78650] * GeoJSON datasets link:https://github.com/elastic/ems-file-service/pull/192[#192] Metrics:: * Fixes inventory footer misalignment {kibana-pull}74707[#74707] * Displays No Data context.values as [NO DATA] {kibana-pull}78038[#78038] * Fixes a Chrome bug with Inventory View flickering at certain sizes {kibana-pull}81514[#81514] Monitoring:: * Ensures setup mode works on cloud but only for alerts {kibana-pull}73127[#73127] * Fixes cluster link from cluster listing page {kibana-pull}75016[#75016] * Only show Opt-In banner when user can change settings {kibana-pull}76883[#76883] * Fixes dead links {kibana-pull}78696[#78696] * Fixes cluster listing page in how it handles global state {kibana-pull}78979[#78979] * Ensures alerting is optional {kibana-pull}79168[#79168] * Adds in cluster version number for sec telemetry sender {kibana-pull}80545[#80545] * Fixes sorting of alerts {kibana-pull}80546[#80546] * Fixes a couple of issues with the cpu usage alert {kibana-pull}80737[#80737] * Fixes alert defaults {kibana-pull}81207[#81207] * Ensures some data is returned {kibana-pull}81375[#81375] Platform:: * Simplifies buffer tests to reduce flakiness {kibana-pull}73024[#73024] * Handles case where buffer receives multiple entities with the same ID {kibana-pull}74943[#74943] * Time out work when it overruns in poller {kibana-pull}74980[#74980] * Fixes a bug that caused some applications to not correctly render when a trailing slash was included at the end of their URLs {kibana-pull}75074[#75074] * Prevents Task Manager from trying to claim invalid tasks {kibana-pull}76891[#76891] * Leverages original http request error {kibana-pull}79831[#79831] * Supports special characters in ES password {kibana-pull}81564[#81564] Querying & Filtering:: * Fixes warning text doesn't get displayed on filters with custom filter name {kibana-pull}78617[#78617] Reporting:: * Allows any hostname for chromium proxy bypass {kibana-pull}74693[#74693] * Fixes an issue with CSV Export where a job could fail if clearing the scroll ID failed in Elasticsearch {kibana-pull}76014[#76014] * Fixes a bug where the downloading CSV from a saved search in a dashboard panel had no file name if the dashboard panels were hidden {kibana-pull}76031[#76031] * Fixes the reporting exports to use the correct Space for advanced settings {kibana-pull}76998[#76998] * Fixes a problem in the list of Reports jobs in Management would not refresh with the correct items immediately after deleting a report from the listing {kibana-pull}78516[#78516] Security:: * Displays useful error when role creation fails {kibana-pull}77600[#77600] * Previously when user started SAML or OpenID authentication handshake, but didn't or couldn't finish it they weren't able to access Login Selector easily (e.g. to log in with another authentication provider) unless they used /login URL directly or manually cleared the session cookies. That was a very confusing user experience. The reason was that unauthenticated intermediate session that was created to support handshake forced Kibana to automatically restart the same handshake whenever user accessed Kibana. We fixed that and now in certain cases we ignore unauthenticated intermediate session allowing user to easily access Login Selector whenever they need it {kibana-pull}79300[#79300] * Kibana can now properly handle values for xpack.security.session.idleTimeout and xpack.security.session.lifespan that are larger than ~24 days {kibana-pull}79858[#79858] * Properly encodes links to edit user page {kibana-pull}81562[#81562] * Fixes display of multiple roles in table views {kibana-pull}81603[#81603] * Node list and node detail tests {kibana-pull}74421[#74421] * Improves simulator. Add more click-through tests and panel tests. {kibana-pull}74601[#74601] * [Detections] Refactors signal ancestry to allow multiple parents {kibana-pull}76531[#76531] * Fixes for the Ticket 78375 {kibana-pull}79004[#79004] * Resolver Tree Events tests {kibana-pull}79344[#79344] * Adds the correct class to truncate the names in Endpoint list {kibana-pull}79921[#79921] * [Detections] Fixes remaining render and validation bug with query preview + tests {kibana-pull}80110[#80110] * New events resolver {kibana-pull}80850[#80850] * enable_APM-ci branch fixes {kibana-pull}81658[#81658] Sharing:: * Uses App Title for Display Instead of App Id {kibana-pull}75457[#75457] Spaces:: * Fixes infinite loading spinner on the spaces selector screen. In the case an error occurs while trying to load the spaces that the current user has access to, an error message will now be shown instead of the loading spinner {kibana-pull}79471[#79471] Uptime:: * Ml anomaly alert edit {kibana-pull}76909[#76909] * Removes custom handling of license enabling {kibana-pull}82019[#82019] [[release-notes-7.9.3]] == {kib} 7.9.3 For breaking changes, refer to <>. [float] [[enhancement-v7.9.3]] === Enhancement Reporting:: * Increases openUrl timeout config default to 1min {kibana-pull}78322[#78322] [float] [[bug-v7.9.3]] === Bug fixes Discover:: * Fixes scripted field error handling for non OSS env {kibana-pull}76476[#76476] Lens and visualizations:: * Shows tooltip on external pointer events {kibana-pull}77306[#77306] Management:: * Fixes a bug in the index template wizard, which resulted in an error when the user tries to save an existing template or attempts to view the Elasticsearch request when the template does not have any mappings {kibana-pull}78653[#78653] * Fixes index pattern creation when using cross cluster search with clusters running <7.9 {kibana-pull}80006[#80006] Monitoring:: * Fixes UX around an unavailable remote cluster {kibana-pull}79202[#79202] * Synchronous `setup` and `start` methods {kibana-pull}79457[#79457] * Removes license refresh from setup {kibana-pull}79518[#79518] Platform:: * Invalid `searchSourceJSON` causes saved object migration to fail {kibana-pull}78535[#78535] * Changes legacy import 'version' field to optional {kibana-pull}79706[#79706] Security:: * Adds `xpack.security.sameSiteCookies` to docker allow list {kibana-pull}78192[#78192] * Updates user table after user is deleted {kibana-pull}79491[#79491] [[release-notes-7.9.2]] == {kib} 7.9.2 See also <>. [float] [[enhancement-v7.9.2]] === Enhancement Machine Learning:: * Improves performance of job exists check {kibana-pull}77156[#77156] [float] [[bug-v7.9.2]] === Bug fixes Alerting:: * Fixes alerts unable to create or update when the name has trailing whitepace {kibana-pull}76079[#76079] Machine Learning:: * Swim lane pagination for viewing by job ID {kibana-pull}76847[#76847] * Fixes custom URLs processing for security app {kibana-pull}76957[#76957] Management:: * Fixes an issue in Snapshot and Restore UI where creating a policy, repository, or snapshot with a special character, like a colon, in the name would result in a 404 when viewing details or editing any of the aforementioned {kibana-pull}76278[#76278] * Indices that contain the characters % { [ @ no longer cause a 405 error in Index Management {kibana-pull}76584[#76584] * Fixes an issue in the snapshot and restore policy creation form that allowed a policy to be created without an index specified {kibana-pull}76855[#76855] * The snapshot and restore wizard now notifies users when a policy configured with a non-existing repository is being updated and requires that the user select a new repository {kibana-pull}76861[#76861] * Fixes an issue in the grok debugger where simulation error messages are not being displayed {kibana-pull}77499[#77499] Maps:: * Fixes drawing shapes in maps app broken in 7.9.1 {kibana-pull}76329[#76329] Monitoring:: * Prevents edit/create for Stack Monitoring alerts in Alerts Management {kibana-pull}77097[#77097] * Fixes improper lodash syntax {kibana-pull}77105[#77105] * Fixes UI error when alerting is not available {kibana-pull}77179[#77179] Platform:: * Fixes bug causing multiple overrides to only show the last confirm modal {kibana-pull}76482[#76482] * Fixes remoteAddress being duplicated in userAgent field {kibana-pull}76751[#76751] * Fixes an issue that caused savedObject migration errors to not being displayed in the logs {kibana-pull}77018[#77018] * Fixes an issue where defaultAppId redirect could fire outside home app {kibana-pull}76415[#76415] * Suppresses error logs when clients connect over HTTP instead of HTTPS {kibana-pull}77397[#77397] Reporting:: * Adds back in custom images for reporting + tests {kibana-pull}76810[#76810] Security:: * Adds Lens as a readable saved object for read-only dashboard users {kibana-pull}77067[#77067] Uptime:: * Fixes alerting false positives {kibana-pull}75577[#75577] [[release-notes-7.9.1]] == {kib} 7.9.1 See also <>. [float] [[bug-v7.9.1]] === Bug fixes APM:: * Pluralizes for occurrences vs occurrence {kibana-pull}74564[#74564] * User can't navigate back home using browser nav when clicking link {kibana-pull}75755[#75755] Dashboard:: * Loses OriginatingApp Connection on Save After Create new {kibana-pull}74420[#74420] * Don't Explore data action in dashboard_only mode {kibana-pull}73010[#73010] Discover:: * Don't show actions if Discover app is disabled {kibana-pull}73017[#73017] * Fixes visualize a field through discover app {kibana-pull}73652[#73652] * Fixes issue with query bar not taking full width in safari when selected {kibana-pull}74987[#74987] Lens and visualizations:: * Shows 'No data for this field' for empty field in accordion {kibana-pull}73772[#73772] * Fixes performance degradation after lodash@4 upgrade {kibana-pull}75850[#75850] Machine Learning:: * Fixes file import button on basic license {kibana-pull}75458[#75458] * Adds date picker back onto index based data visualizer page {kibana-pull}75658[#75658] * Adds authorization header to data frame analytics job update request {kibana-pull}75899[#75899] * Removes encoding for scheduled events labels {kibana-pull}75973[#75973] * Anomaly Explorer / Single Metric Viewer: Fix error reporting for annotations {kibana-pull}74953[#74953] Management:: * The watch API considers an index action without a defined index name to be valid, but the Watcher UI didn't validate accordingly. This resulted in a bug manifested as the UI rejecting attempts to create Advanced Watches and Threshold Watches with this configuration, and as displaying watches configured this way via Console with "Config error" states in the watches table. This change fixes the bug so that the UI accepts watches that are configured with index actions without a defined index name {kibana-pull}74684[#74684] * Fixes a bug in the index template wizard, which resulted in the UI crashing when the user tries to save an index template without visiting the "Mappings" step first {kibana-pull}75511[#75511] * Fixes an issue in the mappings editor when trying to clear the "Field type" select dropdown {kibana-pull}76263[#76263] Maps:: * Fixes TMS not loaded in legacy maps {kibana-pull}73570[#73570] * Fixes drawing shapes {kibana-pull}74689[#74689] * Fixes layer sorting issue with hidden layers at map load {kibana-pull}76007[#76007] Monitoring:: * Fixes bug where Kibana crashes with collection disabled {kibana-pull}75335[#75335] * Swallows errors in opt-in remote notification from the server {kibana-pull}75641[#75641] Operations:: * Adds map configurations to docker list {kibana-pull}75035[#75035] * Fixes bug in keystore read process where it was trying to read the path.data directory instead of the keystore file {kibana-pull}75659[#75659] Security:: * Improves login selector UI to display more detailed error messages {kibana-pull}75642[#75642] Uptime:: * Fixes alerting false positives {kibana-pull}75577[#75577] [[release-notes-7.9.0]] == {kib} 7.9.0 For information about the Kibana 7.9.0 release, review the following information. [float] [[breaking-changes-7.9]] === Breaking changes Breaking changes can prevent your application from optimal operation and performance. Before you upgrade to 7.9.0, review the breaking changes, then mitigate the impact to your application. * <> * <> [float] [[user-facing-changes-79]] ==== Breaking changes for users // The following section is re-used in the Installation and Upgrade Guide // tag::notable-breaking-changes[] [float] [[breaking_kibana_keystore]] ===== `kibana.keystore` moved from the data folder to the config folder `kibana.keystore` has moved from the configured `path.data` folder to `/config` for archive distributions and `/etc/kibana` for package distributions. If a pre-existing keystore exists in the data directory, that path will continue to be used. *via https://github.com/elastic/kibana/pull/57856[#57856]* // end::notable-breaking-changes[] [float] [[general-plugin-API-changes-79]] ==== Breaking changes for plugin developers [[breaking_79_actions_api]] .aborted$ event fixed and completed$ event added to `KibanaRequest` [%collapsible] ==== The `request.events.aborted$` Observable will now properly wait for the response to be sent before completing. A new `request.events.completed$` API is available that will emit once a request has been completely handled or aborted. *via https://github.com/elastic/kibana/pull/73898[#73898]* ==== [[breaking_79_management_api]] .The Management API has a new interface [%collapsible] ==== A public `setup` contract has been reduced to just `register`. A new interface, `sections`, which is a map of management sections provided by the plugin, replaces `getSection`. Public start interfaces have been removed as all registration should occur in the `setup` lifecycle. *via https://github.com/elastic/kibana/pull/71144[#71144]* ==== [[breaking_79_fields_with_no_value]] .Filters from fields with no values are now allowed [%collapsible] ==== Kibana now allows the creation of filters from fields with a null or undefined value. *via https://github.com/elastic/kibana/pull/70936[#70936]* ==== [[breaking_79_http_interceptors]] .The `onPreAuth` and `onPreRouting` http interceptors are now separate [%collapsible] ==== The `onPreAuth` interceptor has been renamed to `onPreRouting` to better reflect its place in the execution order—it is now called right before the route lookup step. A new `onPreAuth` interceptor is executed before the `Auth` lifecycle step, but after the `onPreRouting` step. *via https://github.com/elastic/kibana/pull/70775[#70775]* ==== [[breaking_79_metric_service]] .The Metrics API moved to start [%collapsible] ==== The Metric service API exposed from the `setup` contract has been moved to the `start` lifecycle. *via https://github.com/elastic/kibana/pull/69787[#69787]* ==== [[breaking_79_field_formats_removed]] .`fieldFormats` removed from `AggConfig` and `AggConfigs` [%collapsible] ==== `AggConfig` has been updated to no longer return a field format instance for the field it is aggregating on. As a result, the `fieldFormatter` and `fieldOwnFormatter` methods have been removed. Additionally, the `getFormat` method has been removed from each individual agg type. If you need to access a field format instance, use the newly-added `AggConfig.toSerializedFieldFormat` or `AggType.toSerializedFormat` to retrieve the serializable representation of the field's format, and then pass it to the `deserialize` method from the field formats service to get the actual format instance. ```diff class MyPlugin { async start(core, { data }) { const { indexPatterns, fieldFormats, search } = data; const indexPattern = await indexPatterns.get('myId'); const agg = { type: 'terms', params: { field: 'machine.os.keyword' }, }; const aggConfigs = search.aggs.createAggConfigs(indexPattern, [agg]); const termsAgg = aggConfigs.aggs[0]; - const formatter = termsAgg.type.getFormat(termsAgg); - // or - const formatter = termsAgg.fieldFormatter('text'); + const formatter = fieldFormats.deserialize(termsAgg.toSerializedFieldFormat()); + // or + const formatter = fieldFormats.deserialize(termsAgg.type.getSerializedFormat(termsAgg)); const formattedValue = formatter.convert('myValue'); } } ``` In addition, the legacy formatting helpers that were exported from `ui/visualize/loader/pipeline_helpers/utilities` have been removed. If your plugin imports from this directory, please update your code to use the `fieldFormats` service directly. *via https://github.com/elastic/kibana/pull/69762[#69762]* ==== [[breaking_79_encrypted_saved_objects]] .New API adds support for migrations for an `EncryptedSavedObject` [%collapsible] ==== A new `createMigration` API on the `EncryptedSavedObjectsPluginSetup` facilitates defining a migration for an EncryptedSavedObject type. **Defining migrations** `EncryptedSavedObjects` rely on standard `SavedObject migrations`, but due to the additional complexity introduced by the need to decrypt and reencrypt the migrated document, there are some caveats to how we support this. Most of this complexity is abstracted away by the plugin, and all you need to do is leverage our API. The `EncryptedSavedObjects` Plugin _SetupContract_ exposes a `createMigration` API that facilitates defining a migration for your EncryptedSavedObject type. The `createMigration` function takes four arguments: |=== |Argument|Description|Type| |`isMigrationNeededPredicate`|A predicate that is called for each document, prior to being decrypted, which confirms whether a document requires migration or not. This predicate is important as the decryption step is costly, and we would rather not decrypt and re-encrypt a document if we can avoid it.|function| |`migration`|A migration function which will migrate each decrypted document from the old shape to the new one.|function| |`inputType`|Optional. An `EncryptedSavedObjectTypeRegistration` which describes the ESOType of the input (the document prior to migration). If this type isn't provided, we'll assume the input doc follows the registered type. |object| |`migratedType`| Optional. An `EncryptedSavedObjectTypeRegistration` which describes the ESOType of the output (the document after migration). If this type isn't provided, we'll assume the migrated doc follows the registered type.|object| |=== **Example: Migrating a Value** ```ts encryptedSavedObjects.registerType({ type: 'alert', attributesToEncrypt: new Set(['apiKey']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), }); const migration790 = encryptedSavedObjects.createMigration( function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc { return doc.consumer === 'alerting' || doc.consumer === undefined; }, (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc => { const { attributes: { consumer }, } = doc; return { ...doc, attributes: { ...doc.attributes, consumer: consumer === 'alerting' || !consumer ? 'alerts' : consumer, }, }; } ); ``` In the above example, you can see the following: * In `shouldBeMigrated`, we limit the migrated alerts to those whose `consumer` field equals `alerting` or is undefined. * In the migration function, we migrate the value of `consumer` to the value we want (`alerts` or `unknown`, depending on the current value). In this function, we can assume that only documents with a `consumer` of `alerting` or `undefined` will be passed in, but it's still safest not to, and so we use the current `consumer` as the default when needed. * Note that we haven't passed in any type definitions. This is because we can rely on the registered type, as the migration is changing a value and not the shape of the object. An EncryptedSavedObject migration is a normal SavedObjects migration, so we can plug it into the underlying SavedObject just like any other kind of migration: ```typescript savedObjects.registerType({ name: 'alert', hidden: true, namespaceType: 'single', migrations: { // apply this migration in 7.9.0 '7.9.0': migration790, }, mappings: { //... }, }); ``` **Example: Migating a Type** If your migration needs to change the type, for example, by removing an encrypted field, you will have to specify the legacy type for the input. ```ts encryptedSavedObjects.registerType({ type: 'alert', attributesToEncrypt: new Set(['apiKey']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), }); const migration790 = encryptedSavedObjects.createMigration( function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc { return doc.consumer === 'alerting' || doc.consumer === undefined; }, (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc => { const { attributes: { legacyEncryptedField, ...attributes }, } = doc; return { ...doc, attributes: { ...attributes }, }; }, { type: 'alert', attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), } ); ``` This example shows how we provide a legacy type that describes the input that needs to be decrypted. The migration function will default to using the registered type to encrypt the migrated document after the migration is applied. If you need to migrate between two legacy types, you can specify both types at once: ```ts encryptedSavedObjects.registerType({ type: 'alert', attributesToEncrypt: new Set(['apiKey']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), }); const migration780 = encryptedSavedObjects.createMigration( function shouldBeMigrated(doc): doc is SavedObjectUnsanitizedDoc { // ... }, (doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc => { // ... }, // legacy input type { type: 'alert', attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy']), }, // legacy migration type { type: 'alert', attributesToEncrypt: new Set(['apiKey', 'legacyEncryptedField']), attributesToExcludeFromAAD: new Set(['mutedInstanceIds', 'updatedBy', 'legacyEncryptedField']), } ); ``` *via https://github.com/elastic/kibana/pull/69513[#69513]* ==== [[breaking_79_canvas]] .Canvas templates now stored as saved objects [%collapsible] ==== Previously, workpad templates were added through the Canvas API client side. Workpad templates are now stored as saved objects, so an API is no longer required for adding them. You can add templates through `SavedObject` management. *via https://github.com/elastic/kibana/pull/69438[#69438]* ==== [[breaking_79_typescript]] .Search Typescript improved [%collapsible] ==== The front end search strategy concept is now deprecated and the following API methods were removed from the `data.search` plugin: * `registerSearchStrategy` * `getSearchStrategy` *via https://github.com/elastic/kibana/pull/69333[#69333]* ==== [[breaking_79_doclinks]] .DocLinks API moved from `setup` to `start` [%collapsible] ==== The docLinks service API exposed from the `setup` contract has been moved to the `start` lifecycle. *via https://github.com/elastic/kibana/pull/68745[#68745]* ==== [[breaking_79_plugin_api]] .Plugin API added for customizing the logging configuration [%collapsible] ==== Plugins can now customize the logging configuration on the fly. ```ts import { of } from 'rxjs'; core.logging.configure(of( { appenders: { myCustomAppender: { ... }, }, loggers: [ { context: 'subcontext', appenders: ['myCustomAppender'], level: 'warn' } ] } )) ``` *via https://github.com/elastic/kibana/pull/68704[#68704]* ==== [[breaking_79_developer_guide]] .Developer guide restructured [%collapsible] ==== The <> includes the following improvements: * Migrates CONTRIBUTING.md content into AsciiDoc * Moves CONTRIBUTING content into the developer guide * Removes https://github.com/elastic/kibana/issues/67782[outdated content] * Creates https://github.com/elastic/kibana/issues/41833#issuecomment-646195319[the structure proposed in this issue] *via https://github.com/elastic/kibana/pull/67764[#67764]* ==== [[breaking_79_es_api]] .{es} API exposed from `setup` contract is deprecated [%collapsible] ==== The {es} API exposed from the `setup` contract is not available and will be deleted without notice. Use the core start API instead. ```typescript // before setup(core: CoreSetup) { core.elasticsearch.dataClient(...) core.elasticsearch.adminClient(...) } // after setup(core: CoreSetup) { core.elasticsearch.legacy.client(...) } ``` *via https://github.com/elastic/kibana/pull/67596[#67596]* ==== [[breaking_79_API_docs]] .API reference docs available for state_containers and state_sync [%collapsible] ==== The API reference docs for `state_sync` and `state_containers` are now available: * https://github.com/elastic/kibana/blob/master/docs/development/plugins/kibana_utils/public/state_sync/kibana-plugin-plugins-kibana_utils-public-state_sync.md[state_sync] * https://github.com/elastic/kibana/blob/master/docs/development/plugins/kibana_utils/common/state_containers/kibana-plugin-plugins-kibana_utils-common-state_containers.md[state_containers] *via https://github.com/elastic/kibana/pull/67354[#67354]* ==== [[breaking_79_es_request]] .Elasticsearch client exposed via request context marked as deprecated [%collapsible] ==== The Elasticsearch service no longer provides separate `data` and `admin` clients. The Elasticsearch service client is marked as deprecated and is superseded by a new one. ```diff // in route handler router.get( ... async function handler (context) { --- return await context.elasticsearch.adminClient.callAsInternalUser('endpoint'); +++ return await context.elasticsearch.legacy.client.callAsInternalUser('endpoint'); }) // in plugin setup(core){ return { async search(id) { --- return await context.elasticsearch.adminClient.callAsInternalUser('endpoint', id); +++ return await context.elasticsearch.legacy.client.callAsInternalUser('endpoint', id); } } } ``` *via https://github.com/elastic/kibana/pull/67319[#67319]* ==== [[breaking_79_licensing]] .Licensing now uses {es} from `start` contract [%collapsible] ==== The licensing plugin API exposed from the `setup` contract is deprecated in favor of `start` contract counterparts: ```js // before setup(core, plugins){ plugins.licensing.license$.pipe(...) } // after start(core, plugins){ plugins.licensing.license$.pipe(...) } ``` *via https://github.com/elastic/kibana/pull/67291[#67291]* ==== [[breaking_79_actions_type]] .The Actions SavedObject type `action` is now a hidden type [%collapsible] ==== Interaction with the Actions SavedObject type requires you to tell your `SavedObjectsClient` to include the `action` hidden type as follows: ```ts core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['action'] }) ``` Do not circumvent the authorization model by accessing these objects directly. Use `AlertsClient` instead. *via https://github.com/elastic/kibana/pull/67109[#67109]* ==== [[breaking_79_saved_objects_client]] .Saved objects now include support for hidden types [%collapsible] ==== **Saved objects** The SavedObjectClient's `getScopedClient`, `createScopedRepository` and `createInternalRepository` can now take a list of types to include in the underlying repository. You can use this to create a client that has access to hidden types: ```ts core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['hiddenType'] }) ``` This creates a `SavedObjects` client scoped to a user by the specified request with access to a hidden type called `hiddenType`. **Encrypted saved objects** The `EncryptedSavedObject` plugin no longer exposes a single client as part of its `start` contract. Instead it exposes a `getClient` API that exposes the client API. The `getClient` can also specify a list of hidden types to gain access to which are hidden by default. For example, given a {kib} platform plugin that has specified `encryptedSavedObjects` as a `Setup` dependency: ```ts const encryptedSavedObjectsClient = plugins.encryptedSavedObjects.getClient(['hiddenType']); return encryptedSavedObjectsClient.getDecryptedAsInternalUser('hiddenType', '123', { namespace: 'some-namespace' }); ``` *via https://github.com/elastic/kibana/pull/66879[#66879]* ==== [[breaking_79_alerting_api]] .The `alerting` plugin was renamed `alerts` to follow the {kib} styleguide [%collapsible] ==== This includes the following API changes: * Changed actions `BASE_ALERT_API_PATH` to ` '/api/alerts'` because according to the styleguide, it should keep the structure `/api/plugin_id` * Changed endpoint `/api/alert/_find` just to `/api/alerts/_find` * Changed `/types` to `/list_alert_types` * Changed POST `/api/alert` to POST `/api/alerts/alert` * Changed GET `/api/alert/{id}` to GET `/api/alerts/alert/{id}` * Changed PUT `/api/alert/{id}` to PUT `/api/alerts/alert/{id}` * Changed DELETE `/api/alert/{id}` to DELETE `/api/alerts/alert/{id}` * Changed GET `/api/alert/{id}/state` to GET `/api/alerts/alert/{id}/state` * Changed POST `/api/alert/{id}/_enable` to POST `/api/alerts/alert/{id}/_enable` * Changed POST `/api/alert/{id}/_disable` to POST `/api/alerts/alert/{id}/_disable` * Changed POST `/api/alert/{id}/_mute_all` to POST `/api/alerts/alert/{id}/_mute_all` * Changed POST `/api/alert/{alertId}/alert_instance/{alertInstanceId}/_mute` to POST `/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute` * Changed POST `/api/alert/{id}/_unmute_all` to POST `/api/alerts/alert/{id}/_unmute_all` * Changed POST `/api/alert/{id}/_update_api_key` to POST `/api/alerts/alert/{id}/_update_api_key` * Changed POST `/api/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute` to POST `/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute` *via https://github.com/elastic/kibana/pull/66838[#66838]* ==== [[breaking_79_new_management_api]] .The new platform API is now implemented in Management [%collapsible] ==== This change: * Refactors out use of `registerLegacyApp` and uses react-router-dom for routing. * Implements a landing page and sidebar in the Management plugin. * Removes the legacy API from `src/plugins/management/public/plugin.ts` and related code. *via https://github.com/elastic/kibana/pull/66781[#66781]* ==== [[breaking_79_alert_hidden]] .The Alerting SavedObject type `alert` is now a hidden type [%collapsible] ==== Interaction with the Alerting SavedObject type requires you to tell your `SavedObjectsClient` to include the `alert` hidden type as follows: ``` ts core.savedObjects.getScopedClient(request, { includedHiddenTypes: ['alert'] }) ``` Do not circumvent the authorization model by accessing these objects directly. Use AlertsClient instead. *via https://github.com/elastic/kibana/pull/66719[#66719]* ==== [[breaking_79_oss_features]] .Open source features registration moved to Kibana platform [%collapsible] ==== {kib} now allows the `getFeatures` plugin method to be called within the `start` lifecycle. *via https://github.com/elastic/kibana/pull/66524[#66524]* ==== [[breaking_79_so_registration]] .SavedObject registration in the legacy platform is not supported [%collapsible] ==== To use SavedObjects, you must move your plugin to the {kib} platform. ```js // before in the legacy plugin export default function ({ Plugin }) { new Plugin({ id: 'my-plugin', uiExports: { mappings: { 'my-plugin-so': { properties: {...}, }, }, }, }), // in the Kibana platform plugin export class MyPlugin implements Plugin { constructor(context: PluginInitializerContext) {} setup(core: CoreSetup) { core.savedObjects.registerType({ name: 'my-plugin-so', mappings: {...} }); } } ``` *via https://github.com/elastic/kibana/pull/66203[#66203]* ==== [[breaking_79_cross_links]] .Cross-links are now handled automatically [%collapsible] ==== Links from one application to another are now automatically handled by the {kib} platform to perform the navigation without a full page refresh and the need to manually add a click handler to call `application.navigateToApp`. You can disable this behavior by adding the `data-disable-core-navigation` attribute on the link (`a`) element or any of its parent. This feature is not enabled for legacy applications. *via https://github.com/elastic/kibana/pull/65164[#65164]* ==== [[breaking_79_field_formatters]] .Field format editors API migrated to Kibana Platform [%collapsible] ==== Field format editors (used by index pattern management) are no longer added via the field formatters registry, `ui/registry/field_format_editors`. They are now added via the `indexPatternManagement` plugin. *via https://github.com/elastic/kibana/pull/65026[#65026]* ==== [[breaking_79_expressions]] .The `expressions` plugin has a new set of helpers [%collapsible] ==== The `expressions` plugin introduces a set of helpers that make it easier to manipulate expression ASTs. Refer to https://github.com/elastic/kibana/pull/64395[this PR] for more detailed examples. ```ts // also available on `expressions/public/server` import { buildExpression, buildExpressionFunction } from '../../src/plugins/expressions/public'; // `buildExpression` takes an expression string, AST, or array of `buildExpressionFunction` const exp = buildExpression([ // `buildExpressionFunction` takes an expression function name, and object of args buildExpressionFunction('myFn', { hello: [true] }); ]); const anotherFn = buildExpressionFunction('anotherFn', { world: [false] }); exp.functions.push(anotherFn); fn.replaceArgument('world', [true]); exp.toAst(); // prints the latest AST // you can get added type-safety by providing a generic type argument: const exp = buildExpression([ buildExpressionFunction('myFn', { hello: [true] }); ]); const fns = exp.findFunction('myFn'); ``` *via https://github.com/elastic/kibana/pull/64395[#64395]* ==== [[breaking_79_mount]] .Mount `ui/new_platform` applications in same div structure as Core [%collapsible] ==== Applications that are mounted via the `core.application.register` interface from the legacy `ui/new_platform` module are now mounted inside a new `div` inside of the `