kibana/x-pack/plugins/canvas
Catherine Liu 46052ad87d
[8.6] [Canvas] Fixes broken data view sort (#146209) (#146232)
# Backport

This will backport the following commits from `main` to `8.6`:
- [[Canvas] Fixes broken data view sort
(#146209)](https://github.com/elastic/kibana/pull/146209)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Catherine
Liu","email":"catherine.liu@elastic.co"},"sourceCommit":{"committedDate":"2022-11-23T20:54:10Z","message":"[Canvas]
Fixes broken data view sort (#146209)\n\n## Summary\r\n\r\nCloses
#146171.\r\n\r\nThis sorting function for the data view options was
assuming that `name`\r\nwas always defined, but with some legacy data
views/index patterns,\r\n`name` is not defined and only `title` is. This
changes the sort\r\nfunction to use `name` or `title` when sorting, so
it doesn't error out\r\nwhen `name` or `title` is missing. I also
noticed that we were still\r\nusing the data plugin here instead of the
data views plugin directly, so\r\nI fixed that too.\r\n\r\n###
Checklist\r\n\r\nDelete any items that are not applicable to this
PR.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] Any UI
touched in this PR is usable by keyboard only (learn more\r\nabout
[keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n-
[ ] Any UI touched in this PR does not create any new axe
failures\r\n(run axe in
browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n-
[ ] If a plugin configuration key changed, check if it needs to
be\r\nallowlisted in the cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This renders correctly on smaller devices using a
responsive\r\nlayout. (You can test this [in
your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n-
[ ] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"87e88694f2ef3c32e0ace5a35704f992fcef2f0a","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","review","Team:Presentation","loe:hours","release_note:skip","impact:critical","Feature:Canvas","v8.6.0","v8.7.0"],"number":146209,"url":"https://github.com/elastic/kibana/pull/146209","mergeCommit":{"message":"[Canvas]
Fixes broken data view sort (#146209)\n\n## Summary\r\n\r\nCloses
#146171.\r\n\r\nThis sorting function for the data view options was
assuming that `name`\r\nwas always defined, but with some legacy data
views/index patterns,\r\n`name` is not defined and only `title` is. This
changes the sort\r\nfunction to use `name` or `title` when sorting, so
it doesn't error out\r\nwhen `name` or `title` is missing. I also
noticed that we were still\r\nusing the data plugin here instead of the
data views plugin directly, so\r\nI fixed that too.\r\n\r\n###
Checklist\r\n\r\nDelete any items that are not applicable to this
PR.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] Any UI
touched in this PR is usable by keyboard only (learn more\r\nabout
[keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n-
[ ] Any UI touched in this PR does not create any new axe
failures\r\n(run axe in
browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n-
[ ] If a plugin configuration key changed, check if it needs to
be\r\nallowlisted in the cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This renders correctly on smaller devices using a
responsive\r\nlayout. (You can test this [in
your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n-
[ ] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"87e88694f2ef3c32e0ace5a35704f992fcef2f0a"}},"sourceBranch":"main","suggestedTargetBranches":["8.6"],"targetPullRequestStates":[{"branch":"8.6","label":"v8.6.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146209","number":146209,"mergeCommit":{"message":"[Canvas]
Fixes broken data view sort (#146209)\n\n## Summary\r\n\r\nCloses
#146171.\r\n\r\nThis sorting function for the data view options was
assuming that `name`\r\nwas always defined, but with some legacy data
views/index patterns,\r\n`name` is not defined and only `title` is. This
changes the sort\r\nfunction to use `name` or `title` when sorting, so
it doesn't error out\r\nwhen `name` or `title` is missing. I also
noticed that we were still\r\nusing the data plugin here instead of the
data views plugin directly, so\r\nI fixed that too.\r\n\r\n###
Checklist\r\n\r\nDelete any items that are not applicable to this
PR.\r\n\r\n- [ ] Any text added follows [EUI's
writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\r\nsentence case text and includes
[i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n-
[
]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas
added for features that require explanation or tutorials\r\n- [ ] [Unit
or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [ ] Any UI
touched in this PR is usable by keyboard only (learn more\r\nabout
[keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n-
[ ] Any UI touched in this PR does not create any new axe
failures\r\n(run axe in
browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n-
[ ] If a plugin configuration key changed, check if it needs to
be\r\nallowlisted in the cloud and added to the
[docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n-
[ ] This renders correctly on smaller devices using a
responsive\r\nlayout. (You can test this [in
your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n-
[ ] This was checked for
[cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n###
For maintainers\r\n\r\n- [ ] This was checked for breaking API changes
and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"87e88694f2ef3c32e0ace5a35704f992fcef2f0a"}}]}]
BACKPORT-->
2022-11-23 14:54:47 -07:00
..
__fixtures__ [expressions] remove root-level redirect, import from common (#136997) 2022-07-25 08:07:43 -07:00
canvas_plugin_src [Lens] Multi metric partition charts (#143966) 2022-11-14 16:49:39 -07:00
common [Canvas] Migrate the esdocs function to the SQL search strategy (#139921) 2022-09-08 09:10:14 +02:00
i18n [Canvas] Use data views service (#139610) 2022-10-24 12:33:36 -07:00
images [Canvas] move files from legacy/plugins to plugins (#65283) 2020-05-05 20:52:56 -04:00
public [8.6] [Canvas] Fixes broken data view sort (#146209) (#146232) 2022-11-23 14:54:47 -07:00
scripts [build] Remove gulp (#138179) 2022-08-08 21:35:09 -07:00
server [Canvas] Migrate the esdocs function to the SQL search strategy (#139921) 2022-09-08 09:10:14 +02:00
shareable_runtime Bumping EUI to version 67.1.8 (#141279) 2022-11-07 21:45:50 +00:00
storybook Upgrade to Jest 27 (#139335) 2022-10-25 14:38:38 -05:00
tasks/mocks [DX] Upgrade prettier to v2.4.0 (#112359) 2021-09-19 22:34:30 -07:00
types [eslint] fix and skip violations for cross-boundary imports (#136911) 2022-07-29 13:57:55 -05:00
.gitignore [pre-req] Move .storybook to storybook; standardize files (#72384) 2020-07-20 22:18:20 -04:00
.prettierrc [Canvas] move files from legacy/plugins to plugins (#65283) 2020-05-05 20:52:56 -04:00
CONTRIBUTING.md [canvas] Reduce bundle size by co-locating strings with components (#103013) 2021-06-23 17:04:19 -05:00
jest.config.js [jest] update config files to get coverage per plugin (#111299) 2021-09-09 08:14:56 +02:00
kibana.json [Canvas] Use data views service (#139610) 2022-10-24 12:33:36 -07:00
PLUGINS.mdx [api-docs] follow the correct schema for frontmatter (#138348) 2022-08-10 17:17:50 -05:00
README.md Convert Canvas docs to MDX for use in Elastic Docs (#91969) 2021-03-02 12:44:18 -05:00
tsconfig.json [ts] set allowJs to true by default (#144281) 2022-11-01 15:26:44 -07:00

Canvas

"Never look back. The past is done. The future is a blank canvas." ― Suzy Kassem, Rise Up and Salute the Sun

Getting Started

Canvas is included with X-Pack and requires a Basic license or better to use.

Feature Questions

Why are there no tooltips

We've opted for always available data labels instead, for now. While there exists much functionality that can be used for analytical purposes in Canvas our core concern in presentational. In a hands-off presentation format, such as a report or a slideshow, there is no facility for user to mouseover a chart to see a tooltip; data labels are a better fit for us.

Background

What is Canvas?

Canvas is a new visualization application on top of Elasticsearch data. Canvas is extremely versatile, but particularly differentiating example use cases include live infographics, presentations with live-updating charts, and highly customized reports.

Why did we build it? How does this align with the larger Kibana vision?

We realized early on that we are not trying to build one UI “to rule them all” in Kibana. Elasticsearch caters to a wide variety of use cases, users, and audiences and Kibana provides different experiences for these users to explore and interact with their data. Canvas is one of such applications, in particular catering to users looking for desktop-publishing level of control for the presentation of their data summaries.

Does Canvas replace any part of Kibana?

No, it is an alternative experience that does not conflict with other parts of Kibana.

Isnt there overlap between Canvas and Dashboard?

While both can be used as a way to build up reports, Canvas and Dashboard have different goals. Canvas focuses on highly customizable layout more suited to highly curated presentations, while Dashboard provides a fast and efficient way to build up and manage business analytics and operational dashboards that dont require a high degree of layout control and customizability.

Where can I see a demo of Canvas?

Elasticon 2017 keynote (starts at 01:27:00): https://www.elastic.co/elasticon/conf/2017/sf/opening-keynote

Shane Connelly's SQL webinar: https://www.elastic.co/webinars/introduction-to-elasticsearch-sql