# Backport This will backport the following commits from `main` to `8.13`: - [[Dashboard] [Controls] Fix bug with drilldowns when source dashboard has no controls (#179485)](https://github.com/elastic/kibana/pull/179485) **Note:** This only fixes the "no controls" bug - the race condition also fixed in that PR does not need to be backported, since the code that caused it was not merged in 8.13. <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Hannah Mudge","email":"Heenawter@users.noreply.github.com"},"sourceCommit":{"committedDate":"2024-04-02T14:10:53Z","message":"[Dashboard] [Controls] Fix bug with drilldowns when source dashboard has no controls (#179485)\n\nCloses https://github.com/elastic/kibana/issues/179391\r\n\r\n## Summary\r\n\r\nWe were previously only calling `setSavedState` for the control group on\r\ndashboard navigation **when the control group was defined in the loaded\r\ndashboard** - however, if either the source or destination dashboard had\r\nzero controls, this caused problems on navigation:\r\n- If the source dashboard had at least one control and the destination\r\ndashboard had zero, the destination dashboard's control group\r\n`lastSavedInput` would **not** get set in `navigateToDashboard` since it\r\nis undefined - i.e. the `lastSavedInput` on the destination dashboard's\r\ncontrol group would **still be equal to** the `lastSavedInput` of the\r\nsource dashboard's control group after navigation. Therefore, hitting\r\n\"reset\" would replace the destination dashboard's empty control group\r\nwith the source's control group.\r\n- If the source dashboard had zero controls and the destination\r\ndashboard had at least one, the first step in navigation would work as\r\nexpected - the `lastSavedInput` of the destination dashboard would be\r\nset appropriately. However, upon hitting the browser back button and\r\ntriggering `navigateToDashboard` a second time, the source dashboard's\r\ncontrol group's `lastSavedInput` would **not** get set properly (since\r\nit is undefined) and would therefore still be equal to the\r\n`lastSavedInput` of the destination dashboard. Therefore, hitting\r\n\"reset\" would replace the source's empty control group with the\r\ndestination dashboard's controls.\r\n\r\nThis fixes the above scenarios by calling `setSavedState` on the control\r\ngroup **even if** the last saved control group state is undefined.\r\n\r\n### Race Condition Fix\r\n\r\nIn my testing for this, I discovered **another** bug caused by a race\r\ncondition where, on dashboard navigation, the subscription to the\r\ncontrol group's `initialize# Backport This will backport the following commits from `main` to `8.13`: - [[Dashboard] [Controls] Fix bug with drilldowns when source dashboard has no controls (#179485)](https://github.com/elastic/kibana/pull/179485) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT subject was firing with the **wrong**\r\ninput, so the `lastSavedFilters` would be calculated incorrectly. This\r\ncaused the dashboard to get stuck in an unsaved changes state, like so:\r\n\r\n\r\n\r\n |
||
---|---|---|
.buildkite | ||
.github | ||
api_docs | ||
config | ||
dev_docs | ||
docs | ||
examples | ||
kbn_pm | ||
legacy_rfcs | ||
licenses | ||
packages | ||
plugins | ||
scripts | ||
src | ||
test | ||
typings | ||
x-pack | ||
.backportrc.json | ||
.bazelignore | ||
.bazeliskversion | ||
.bazelrc | ||
.bazelrc.common | ||
.bazelversion | ||
.browserslistrc | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.i18nrc.json | ||
.node-version | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
.stylelintignore | ||
.stylelintrc | ||
.telemetryrc.json | ||
.yarnrc | ||
BUILD.bazel | ||
catalog-info.yaml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
FAQ.md | ||
fleet_packages.json | ||
github_checks_reporter.json | ||
kibana.d.ts | ||
LICENSE.txt | ||
nav-kibana-dev.docnav.json | ||
NOTICE.txt | ||
package.json | ||
preinstall_check.js | ||
README.md | ||
renovate.json | ||
RISK_MATRIX.mdx | ||
SECURITY.md | ||
sonar-project.properties | ||
STYLEGUIDE.mdx | ||
tsconfig.base.json | ||
tsconfig.browser.json | ||
tsconfig.browser_bazel.json | ||
tsconfig.json | ||
TYPESCRIPT.md | ||
versions.json | ||
WORKSPACE.bazel | ||
yarn.lock |
Kibana
Kibana is your window into the Elastic Stack. Specifically, it's a browser-based analytics and search dashboard for Elasticsearch.
- Getting Started
- Documentation
- Version Compatibility with Elasticsearch
- Questions? Problems? Suggestions?
Getting Started
If you just want to try Kibana out, check out the Elastic Stack Getting Started Page to give it a whirl.
If you're interested in diving a bit deeper and getting a taste of Kibana's capabilities, head over to the Kibana Getting Started Page.
Using a Kibana Release
If you want to use a Kibana release in production, give it a test run, or just play around:
- Download the latest version on the Kibana Download Page.
- Learn more about Kibana's features and capabilities on the Kibana Product Page.
- We also offer a hosted version of Kibana on our Cloud Service.
Building and Running Kibana, and/or Contributing Code
You might want to build Kibana locally to contribute some code, test out the latest features, or try out an open PR:
- CONTRIBUTING.md will help you get Kibana up and running.
- If you would like to contribute code, please follow our STYLEGUIDE.mdx.
- For all other questions, check out the FAQ.md and wiki.
Documentation
Visit Elastic.co for the full Kibana documentation.
For information about building the documentation, see the README in elastic/docs.
Version Compatibility with Elasticsearch
Ideally, you should be running Elasticsearch and Kibana with matching version numbers. If your Elasticsearch has an older version number or a newer major number than Kibana, then Kibana will fail to run. If Elasticsearch has a newer minor or patch number than Kibana, then the Kibana Server will log a warning.
Note: The version numbers below are only examples, meant to illustrate the relationships between different types of version numbers.
Situation | Example Kibana version | Example ES version | Outcome |
---|---|---|---|
Versions are the same. | 7.15.1 | 7.15.1 | 💚 OK |
ES patch number is newer. | 7.15.0 | 7.15.1 | ⚠️ Logged warning |
ES minor number is newer. | 7.14.2 | 7.15.0 | ⚠️ Logged warning |
ES major number is newer. | 7.15.1 | 8.0.0 | 🚫 Fatal error |
ES patch number is older. | 7.15.1 | 7.15.0 | ⚠️ Logged warning |
ES minor number is older. | 7.15.1 | 7.14.2 | 🚫 Fatal error |
ES major number is older. | 8.0.0 | 7.15.1 | 🚫 Fatal error |
Questions? Problems? Suggestions?
- If you've found a bug or want to request a feature, please create a GitHub Issue. Please check to make sure someone else hasn't already created an issue for the same topic.
- Need help using Kibana? Ask away on our Kibana Discuss Forum and a fellow community member or Elastic engineer will be glad to help you out.