diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 837d80f28153c..c0dad860b212b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -25,7 +25,6 @@ /src/plugins/charts/ @elastic/kibana-vis-editors /src/plugins/management/ @elastic/kibana-vis-editors /src/plugins/kibana_legacy/ @elastic/kibana-vis-editors -/src/plugins/timelion/ @elastic/kibana-vis-editors /src/plugins/vis_default_editor/ @elastic/kibana-vis-editors /src/plugins/vis_types/metric/ @elastic/kibana-vis-editors /src/plugins/vis_type_table/ @elastic/kibana-vis-editors diff --git a/.i18nrc.json b/.i18nrc.json index 77c57ded8242b..11d31be8f891c 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -56,7 +56,7 @@ "server": "src/legacy/server", "statusPage": "src/legacy/core_plugins/status_page", "telemetry": ["src/plugins/telemetry", "src/plugins/telemetry_management_section"], - "timelion": ["src/plugins/timelion", "src/plugins/vis_type_timelion"], + "timelion": ["src/plugins/vis_type_timelion"], "uiActions": "src/plugins/ui_actions", "visDefaultEditor": "src/plugins/vis_default_editor", "visTypeMarkdown": "src/plugins/vis_type_markdown", diff --git a/api_docs/core_application.json b/api_docs/core_application.json index 72a11803976c9..35c12330898fb 100644 --- a/api_docs/core_application.json +++ b/api_docs/core_application.json @@ -1393,10 +1393,6 @@ "plugin": "kibanaOverview", "path": "src/plugins/kibana_overview/public/application.tsx" }, - { - "plugin": "timelion", - "path": "src/plugins/timelion/public/application.ts" - }, { "plugin": "management", "path": "src/plugins/management/target/types/public/application.d.ts" diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index e1328b249ce7a..82caea2104067 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -13,7 +13,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| -| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, securitySolution, visualize, timelion, presentationUtil | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, securitySolution, visualize, presentationUtil | 8.1 | | | lens, timelines, infra, securitySolution, stackAlerts, transform, indexPatternManagement, visTypeTimelion, visTypeVega | 8.1 | | | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visTypeTimelion, visualize, visTypeVega, presentationUtil, ml, visTypeTimeseries | 8.1 | | | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visTypeTimelion, visualize, visTypeVega, presentationUtil, ml, visTypeTimeseries | 8.1 | @@ -86,16 +86,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | discover | - | | | discover, ml, transform, canvas | - | | | embeddable, discover, presentationUtil, dashboard, graph | - | -| | visualizations, discover, dashboard, savedObjectsManagement, timelion | - | +| | visualizations, discover, dashboard, savedObjectsManagement | - | | | discover, savedObjectsTaggingOss, visualizations, dashboard, visualize, visDefaultEditor | - | -| | discover, visualizations, dashboard, timelion | - | +| | discover, visualizations, dashboard | - | | | data, discover, embeddable | - | | | advancedSettings, discover | - | | | advancedSettings, discover | - | | | security | - | | | security | - | | | security, licenseManagement, ml, fleet, apm, reporting, crossClusterReplication, logstash, painlessLab, searchprofiler, watcher | - | -| | management, fleet, security, kibanaOverview, timelion | - | +| | management, fleet, security, kibanaOverview | - | | | visualizations, dashboard | - | | | visualizations, dashboard | - | | | visualizations, dashboard | - | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 8d070428376b4..75eac66df04a1 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -811,17 +811,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex -## timelion - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/plugin.ts#:~:text=esFilters), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/plugin.ts#:~:text=esFilters) | 8.1 | -| | [saved_sheets.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/services/saved_sheets.ts#:~:text=SavedObjectLoader), [saved_sheets.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/services/saved_sheets.ts#:~:text=SavedObjectLoader) | - | -| | [_saved_sheet.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/services/_saved_sheet.ts#:~:text=SavedObjectClass) | - | -| | [application.ts](https://github.com/elastic/kibana/tree/master/src/plugins/timelion/public/application.ts#:~:text=appBasePath) | - | - - - ## transform | Deprecated API | Reference location(s) | Remove By | diff --git a/api_docs/saved_objects.json b/api_docs/saved_objects.json index a0e14bae47ba2..d400068df4f83 100644 --- a/api_docs/saved_objects.json +++ b/api_docs/saved_objects.json @@ -679,14 +679,6 @@ { "plugin": "savedObjectsManagement", "path": "src/plugins/saved_objects_management/public/management_section/object_view/components/form.tsx" - }, - { - "plugin": "timelion", - "path": "src/plugins/timelion/public/services/saved_sheets.ts" - }, - { - "plugin": "timelion", - "path": "src/plugins/timelion/public/services/saved_sheets.ts" } ], "children": [ @@ -3860,10 +3852,6 @@ { "plugin": "dashboard", "path": "src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts" - }, - { - "plugin": "timelion", - "path": "src/plugins/timelion/public/services/_saved_sheet.ts" } ] }, diff --git a/docs/api/features.asciidoc b/docs/api/features.asciidoc index dad3ef75c8117..69f0effb80023 100644 --- a/docs/api/features.asciidoc +++ b/docs/api/features.asciidoc @@ -134,7 +134,6 @@ The API returns the following: "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad" ] }, @@ -152,7 +151,6 @@ The API returns the following: "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad", "dashboard" ] diff --git a/docs/api/role-management/get.asciidoc b/docs/api/role-management/get.asciidoc index d1e9d1e6afa83..b18b2e231774a 100644 --- a/docs/api/role-management/get.asciidoc +++ b/docs/api/role-management/get.asciidoc @@ -73,9 +73,6 @@ The API returns the following: "indexPatterns": [ "read" ], - "timelion": [ - "all" - ], "graph": [ "all" ], diff --git a/docs/api/role-management/put.asciidoc b/docs/api/role-management/put.asciidoc index be46178100095..92750840aca10 100644 --- a/docs/api/role-management/put.asciidoc +++ b/docs/api/role-management/put.asciidoc @@ -94,9 +94,6 @@ $ curl -X PUT api/security/role/my_kibana_role "indexPatterns": [ "read" ], - "timelion": [ - "all" - ], "graph": [ "all" ], diff --git a/docs/api/saved-objects/bulk_create.asciidoc b/docs/api/saved-objects/bulk_create.asciidoc index 5bd3a7587dde9..a935907ef3f11 100644 --- a/docs/api/saved-objects/bulk_create.asciidoc +++ b/docs/api/saved-objects/bulk_create.asciidoc @@ -30,7 +30,7 @@ experimental[] Create multiple {kib} saved objects. ==== Request body `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Optional, string) Specifies an ID instead of using a randomly generated ID. diff --git a/docs/api/saved-objects/bulk_get.asciidoc b/docs/api/saved-objects/bulk_get.asciidoc index 4c6bf4c19a76c..1bcdf7ba33cf4 100644 --- a/docs/api/saved-objects/bulk_get.asciidoc +++ b/docs/api/saved-objects/bulk_get.asciidoc @@ -23,7 +23,7 @@ experimental[] Retrieve multiple {kib} saved objects by ID. ==== Request Body `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Required, string) ID of the retrieved object. The ID includes the {kib} unique identifier or a custom identifier. diff --git a/docs/api/saved-objects/create.asciidoc b/docs/api/saved-objects/create.asciidoc index e7e25c7d3bba6..437bdb497da26 100644 --- a/docs/api/saved-objects/create.asciidoc +++ b/docs/api/saved-objects/create.asciidoc @@ -24,7 +24,7 @@ experimental[] Create {kib} saved objects. (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. ``:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. ``:: (Optional, string) Specifies an ID instead of using a randomly generated ID. diff --git a/docs/api/saved-objects/delete.asciidoc b/docs/api/saved-objects/delete.asciidoc index 9c342cb4d843e..ab50fd6e37eac 100644 --- a/docs/api/saved-objects/delete.asciidoc +++ b/docs/api/saved-objects/delete.asciidoc @@ -22,7 +22,7 @@ WARNING: Once you delete a saved object, _it cannot be recovered_. (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Required, string) The object ID that you want to remove. diff --git a/docs/api/saved-objects/get.asciidoc b/docs/api/saved-objects/get.asciidoc index 4c8cd020e0286..cfc591d811227 100644 --- a/docs/api/saved-objects/get.asciidoc +++ b/docs/api/saved-objects/get.asciidoc @@ -21,7 +21,7 @@ experimental[] Retrieve a single {kib} saved object by ID. `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Required, string) The ID of the object to retrieve. diff --git a/docs/api/saved-objects/resolve.asciidoc b/docs/api/saved-objects/resolve.asciidoc index abfad6a0a8150..aa18538975f5f 100644 --- a/docs/api/saved-objects/resolve.asciidoc +++ b/docs/api/saved-objects/resolve.asciidoc @@ -25,7 +25,7 @@ object can be retrieved via the Resolve API using either its new ID or its old I `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Required, string) The ID of the object to retrieve. diff --git a/docs/api/saved-objects/update.asciidoc b/docs/api/saved-objects/update.asciidoc index d237ced8b52d1..2bd95df1adf30 100644 --- a/docs/api/saved-objects/update.asciidoc +++ b/docs/api/saved-objects/update.asciidoc @@ -20,7 +20,7 @@ experimental[] Update the attributes for existing {kib} saved objects. (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used. `type`:: - (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`. + (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`. `id`:: (Required, string) The object ID to update. diff --git a/docs/api/spaces-management/get_all.asciidoc b/docs/api/spaces-management/get_all.asciidoc index e76848da80efb..3c95b1b904441 100644 --- a/docs/api/spaces-management/get_all.asciidoc +++ b/docs/api/spaces-management/get_all.asciidoc @@ -70,7 +70,7 @@ The API returns the following: "id": "sales", "name": "Sales", "initials": "MK", - "disabledFeatures": ["discover", "timelion"], + "disabledFeatures": ["discover"], "imageUrl": "" } ] @@ -124,7 +124,7 @@ The API returns the following: "id": "sales", "name": "Sales", "initials": "MK", - "disabledFeatures": ["discover", "timelion"], + "disabledFeatures": ["discover"], "imageUrl": "", "authorizedPurposes": { "any": true, diff --git a/docs/api/spaces-management/post.asciidoc b/docs/api/spaces-management/post.asciidoc index 1abfffd1c736f..28d60caa0d333 100644 --- a/docs/api/spaces-management/post.asciidoc +++ b/docs/api/spaces-management/post.asciidoc @@ -54,7 +54,7 @@ $ curl -X POST api/spaces/space "description" : "This is the Marketing Space", "color": "#aabbcc", "initials": "MK", - "disabledFeatures": ["timelion"], + "disabledFeatures": [], "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAABACAYAAABC6cT1AAAGf0lEQVRoQ+3abYydRRUH8N882xYo0IqagEVjokQJKAiKBjXExC9G/aCkGowCIghCkRcrVSSKIu/FEiqgGL6gBIlAYrAqUTH6hZgQFVEMKlQFfItWoQWhZe8z5uzMLdvbfbkLxb13d+fbvfe588x/zpn/+Z9zJpmnI81T3BaAzzfLL1h8weLzZAcWXH2eGHo7zAWLL1h8nuzAjFw9G1N6Kzq8HnuM36MR8iibF3Fv4q+7cv8yDV6K13bYq2furSP8Ag8ncr/vnSnwRViJT2GfCV7yL1yHGxLb+l3EdM9lluNEnIC9xz+f2ZL4Er6Z2DrdXN3fZwp8CU7OfDHxggle8lTLbQ1nJ/7Z7yKmey5zYGZt4h2IzR8/trRc2PDlxJPTzfVcgJ+CC0wMPOa9F6cm7up3EVM9V9386MxliVdM8GwAv6hh/awCz/w7lY25OtF5ruBz4ZLP42NYNrDAFbC3YPWuILnMAfgq3oaRQQYea/stViV+sgssvjKzLvGySeaaNVfP4d7Btokgvxj/bblgpueuF1hmWcyTCmfE3J3M1lTcv0vMswM88zR+jpw4osu6me8kzkpsfLZWzxyRuabO22buxxOJ12FxnXfWgEe83pB5sOE47BsLymzscOoi7nw2JJfZreUjiUsTyzKPZm5NvBDvSuw268AzNzV8H5/Am+qCnsAXgpgSW2Zq9cyKlksbPlTd+te4quWNieMHBfiNDdciYnwsdI/MaOaWhnMTf54J8CqNj8x8JXFIZltYu+HqlmNT8YSBsHgAPw/vxvlVV4du/s0oaxbxg0TbL/jMni0nNcVjQq7+HZfgtpbzBg342TgQ63AkmsymxBW4IjE6A+D7Vzd/fyWxIM/VuCe+HzTgZ2Jpy/kNJ2FJLmLm24mPJ/42A+Bvrxt4SISwlhsaPodH26LZB8rVA3inwwebsrixJCZzX+KMxI/7AV61eVh3DV6Mx3EOvh4kN6jAg8nfUCXm4d1wE66OyxNPTQc+s3/o/MoXizL3JE5O3F3P/uBZPPF4Zr+Wi5uSO48ZPRdyCwn7YB/A35m5KhWNHox4fcNnIs0ddOCRSBxf8+cQG+Huf0l8NJVYP+nI7NXy2ar4QqIGm69JfKPOE2w/mBavCzwM11R2D+ChsUO7hyUfmwx55qDM1xJvqZ7y08TpifuGBfjeURVJnNIVGpkNiXNS0ds7jcySDitDCCWW56LJ10fRo8sNA+3qXUSZD2CtQlZh9T+1rB7h9oliembflnMbzqgSNZKbKGHdPm7OwXb1CvQ1metSETMpszmzvikCJNh/h5E5PHNl4qga/+/cxqrdeWDYgIe7X5L4cGJPJX2940lOX8pD41FnFnc4riluvQKbK0dcHJFi2IBHNTQSlguru4d2/wPOTNzRA3x5y+U1E1uqWDkETOT026XuUJzx6u7ReLhSYenQ7uHua0fKZmwfmcPqsQjxE5WVONcRxn7X89zgn/EKPMRMxOVQXmP18Mx3q3b/Y/0cQE/IhFtHESMsHFlZ1Ml3CH3DZPHImY+pxcKumNmYirtvqMBfhMuU6s3iqOQkTsMPe1tCQwO8Ajs0lxr7W+vnp1MJc9EgCNd/cy6x+9D4veXmprj5wxMw/3C4egW6zzgZOlYZzfwo3F2J7ael0pJamvlPKgWNKFft1AAcKotXoFEbD7kaoSoQPVKB35+5KHF0lai/rJo+up87jWEE/qqqwY+qrL21LWLm95lPJ16ppKw31XC3PXYPJauPEx7B6BHCgrSizRs18qiaRp8tlN3ueCTYPHH9RNaunjI8Z7wLYpT3jZSCYXQ8e9vTsRE/q+no3XMKeObgGtaintbb/AvXj4JDkNw/5hrwYPfIvlZFUbLn7G5q+eQIN09Vnho6cqvnM/Lt99RixH49wO8K0ZL41WTWHoQzvsNVkOheZqKhEGpsp3SzB+BBtZAYve7uOR9tuTaaB6l0XScdYfEQPpkTUyHEGP+XqyDBzu+NBCITUjNWHynkrbWKOuWFn1xKzqsyx0bdvS78odp0+N503Zao0uCsWuSIDku8/7EO60b41vN5+Ses9BKlTdvd8bhp9EBvJjWJAIn/vxwHe6b3tSk6JFPV4nq85oAOrx555v/x/rh3E6Lo+bnuNS4uB4Cuq0ZfvO8X1rM6q/+vnjLVqZq7v83onttc2oYF4HPJmv1gWbB4P7s0l55ZsPhcsmY/WBYs3s8uzaVn5q3F/wf70mRuBCtbjQAAAABJRU5ErkJggg==" } -------------------------------------------------- diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 319ac1e8476fe..84e6668830edc 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -235,11 +235,6 @@ generating deep links to other apps, and creating short URLs. |This plugin adds the Advanced Settings section for the Usage and Security Data collection (aka Telemetry). -|{kib-repo}blob/{branch}/src/plugins/timelion/README.md[timelion] -|Contains the deprecated timelion application. For the timelion visualization, -which also contains the timelion APIs and backend, look at the vis_type_timelion plugin. - - |<> |UI Actions plugins provides API to manage *triggers* and *actions*. diff --git a/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md b/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md index eb0dbb59e6c12..00e5da4a9a9f9 100644 --- a/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md +++ b/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md @@ -25,29 +25,29 @@ import { i18n } from '@kbn/i18n'; async function getDeprecations({ esClient, savedObjectsClient }: GetDeprecationsContext): Promise { const deprecations: DeprecationsDetails[] = []; - const count = await getTimelionSheetsCount(savedObjectsClient); + // Example of an api correctiveAction + const count = await getFooCount(savedObjectsClient); if (count > 0) { - // Example of a manual correctiveAction deprecations.push({ - title: i18n.translate('xpack.timelion.deprecations.worksheetsTitle', { - defaultMessage: 'Timelion worksheets are deprecated' + title: i18n.translate('xpack.foo.deprecations.title', { + defaultMessage: `Foo's are deprecated` }), - message: i18n.translate('xpack.timelion.deprecations.worksheetsMessage', { - defaultMessage: 'You have {count} Timelion worksheets. Migrate your Timelion worksheets to a dashboard to continue using them.', + message: i18n.translate('xpack.foo.deprecations.message', { + defaultMessage: `You have {count} Foo's. Migrate your Foo's to a dashboard to continue using them.`, values: { count }, }), documentationUrl: - 'https://www.elastic.co/guide/en/kibana/current/create-panels-with-timelion.html', + 'https://www.elastic.co/guide/en/kibana/current/foo.html', level: 'warning', correctiveActions: { manualSteps: [ - i18n.translate('xpack.timelion.deprecations.worksheets.manualStepOneMessage', { - defaultMessage: 'Navigate to the Kibana Dashboard and click "Create dashboard".', - }), - i18n.translate('xpack.timelion.deprecations.worksheets.manualStepTwoMessage', { - defaultMessage: 'Select Timelion from the "New Visualization" window.', - }), + i18n.translate('xpack.foo.deprecations.manualStepOneMessage', { + defaultMessage: 'Navigate to the Kibana Dashboard and click "Create dashboard".', + }), + i18n.translate('xpack.foo.deprecations.manualStepTwoMessage', { + defaultMessage: 'Select Foo from the "New Visualization" window.', + }), ], api: { path: '/internal/security/users/test_dashboard_user', @@ -68,6 +68,7 @@ async function getDeprecations({ esClient, savedObjectsClient }: GetDeprecations }, }); } + return deprecations; } diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index cbf32c35c55fd..6bf9ddb365290 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -470,13 +470,6 @@ The default period of time in the Security time filter. [[kibana-timelion-settings]] ==== Timelion -[horizontal] -[[timelion-defaultcolumns]]`timelion:default_columns`:: -The default number of columns to use on a Timelion sheet. - -[[timelion-defaultrows]]`timelion:default_rows`:: -The default number of rows to use on a Timelion sheet. - [[timelion-esdefaultindex]]`timelion:es.default_index`:: The default index when using the `.es()` query. @@ -502,9 +495,6 @@ experimental:[] Used with quandl queries, this is your API key from https://www.quandl.com/[www.quandl.com]. -[[timelion-showtutorial]]`timelion:showTutorial`:: -Shows the Timelion tutorial to users when they first open the Timelion app. - [[timelion-targetbuckets]]`timelion:target_buckets`:: Used for calculating automatic intervals in visualizations, this is the number of buckets to try to represent. diff --git a/docs/user/dashboard/timelion.asciidoc b/docs/user/dashboard/timelion.asciidoc index 85c8bbd436d25..ae92ed4259b65 100644 --- a/docs/user/dashboard/timelion.asciidoc +++ b/docs/user/dashboard/timelion.asciidoc @@ -13,8 +13,6 @@ The syntax enables some features that classical point series charts don't offer, [role="screenshot"] image:dashboard/images/timelion.png[Timelion] -deprecated::[7.0.0,"*Timelion* is still supported. The *Timelion app* is deprecated in 7.0, replaced by dashboard features. In 7.16 and later, the *Timelion app* is removed from {kib}. To prepare for the removal of *Timelion app*, you must migrate *Timelion app* worksheets to a dashboard. For information on how to migrate *Timelion app* worksheets, refer to the link:https://www.elastic.co/guide/en/kibana/7.10/release-notes-7.10.0.html#deprecation-v7.10.0[7.10.0 Release Notes]."] - [float] ==== Timelion expressions diff --git a/package.json b/package.json index b9beacb296ebe..3cf8db1e1ca7e 100644 --- a/package.json +++ b/package.json @@ -189,7 +189,6 @@ "angular-recursion": "^1.0.5", "angular-route": "^1.8.0", "angular-sanitize": "^1.8.0", - "angular-sortable-view": "^0.0.17", "antlr4ts": "^0.5.0-alpha.3", "archiver": "^5.2.0", "axios": "^0.21.1", diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 282abe1e1741a..69cfffe1f08f0 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -70,7 +70,6 @@ pageLoadAssetSize: spaces: 57868 telemetry: 51957 telemetryManagementSection: 38586 - timelion: 29920 transform: 41007 triggersActionsUi: 100000 uiActions: 97717 diff --git a/rfcs/text/0007_lifecycle_unblocked.md b/rfcs/text/0007_lifecycle_unblocked.md index cb978d3dcd7ba..3f347891b2ba8 100644 --- a/rfcs/text/0007_lifecycle_unblocked.md +++ b/rfcs/text/0007_lifecycle_unblocked.md @@ -342,7 +342,6 @@ functions and will be impacted: 2. [tile_map](https://github.com/elastic/kibana/blob/6039709929caf0090a4130b8235f3a53bd04ed84/src/legacy/core_plugins/tile_map/public/plugin.ts#L62) 3. [vis_type_table](https://github.com/elastic/kibana/blob/6039709929caf0090a4130b8235f3a53bd04ed84/src/legacy/core_plugins/vis_type_table/public/plugin.ts#L61) 4. [vis_type_vega](https://github.com/elastic/kibana/blob/6039709929caf0090a4130b8235f3a53bd04ed84/src/legacy/core_plugins/vis_type_vega/public/plugin.ts#L59) -5. [timelion](https://github.com/elastic/kibana/blob/9d69b72a5f200e58220231035b19da852fc6b0a5/src/plugins/timelion/server/plugin.ts#L40) 6. [code](https://github.com/elastic/kibana/blob/5049b460b47d4ae3432e1d9219263bb4be441392/x-pack/legacy/plugins/code/server/plugin.ts#L129-L149) 7. [spaces](https://github.com/elastic/kibana/blob/096c7ee51136327f778845c636d7c4f1188e5db2/x-pack/legacy/plugins/spaces/server/new_platform/plugin.ts#L95) 8. [licensing](https://github.com/elastic/kibana/blob/4667c46caef26f8f47714504879197708debae32/x-pack/plugins/licensing/server/plugin.ts) diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index 958cae8816efa..72fa6c5553f77 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -273,7 +273,6 @@ export class DocLinksService { }, visualize: { guide: `${KIBANA_DOCS}dashboard.html`, - timelionDeprecation: `${KIBANA_DOCS}timelion.html`, lens: `${ELASTIC_WEBSITE_URL}what-is/kibana-lens`, lensPanels: `${KIBANA_DOCS}lens.html`, maps: `${ELASTIC_WEBSITE_URL}maps`, diff --git a/src/core/server/deprecations/README.mdx b/src/core/server/deprecations/README.mdx index 197b25ac909c3..533f607c3d4c2 100644 --- a/src/core/server/deprecations/README.mdx +++ b/src/core/server/deprecations/README.mdx @@ -139,7 +139,6 @@ Plugins are responsible for registering any deprecations during the `setup` life the deprecations service. Examples of non-config deprecations include things like -- timelion sheets - kibana_user security roles This service is not intended to be used for non-user facing deprecations or cases where the deprecation diff --git a/src/core/server/deprecations/deprecations_service.ts b/src/core/server/deprecations/deprecations_service.ts index f6f48d2a88b01..b8a134fbf8cd2 100644 --- a/src/core/server/deprecations/deprecations_service.ts +++ b/src/core/server/deprecations/deprecations_service.ts @@ -37,28 +37,27 @@ import { SavedObjectsClientContract } from '../saved_objects/types'; * * async function getDeprecations({ esClient, savedObjectsClient }: GetDeprecationsContext): Promise { * const deprecations: DeprecationsDetails[] = []; - * const count = await getTimelionSheetsCount(savedObjectsClient); - * + * const count = await getFooCount(savedObjectsClient); * if (count > 0) { * // Example of a manual correctiveAction * deprecations.push({ - * title: i18n.translate('xpack.timelion.deprecations.worksheetsTitle', { - * defaultMessage: 'Timelion worksheets are deprecated' + * title: i18n.translate('xpack.foo.deprecations.title', { + * defaultMessage: `Foo's are deprecated` * }), - * message: i18n.translate('xpack.timelion.deprecations.worksheetsMessage', { - * defaultMessage: 'You have {count} Timelion worksheets. Migrate your Timelion worksheets to a dashboard to continue using them.', + * message: i18n.translate('xpack.foo.deprecations.message', { + * defaultMessage: `You have {count} Foo's. Migrate your Foo's to a dashboard to continue using them.`, * values: { count }, * }), * documentationUrl: - * 'https://www.elastic.co/guide/en/kibana/current/create-panels-with-timelion.html', + * 'https://www.elastic.co/guide/en/kibana/current/foo.html', * level: 'warning', * correctiveActions: { * manualSteps: [ - * i18n.translate('xpack.timelion.deprecations.worksheets.manualStepOneMessage', { + * i18n.translate('xpack.foo.deprecations.manualStepOneMessage', { * defaultMessage: 'Navigate to the Kibana Dashboard and click "Create dashboard".', * }), - * i18n.translate('xpack.timelion.deprecations.worksheets.manualStepTwoMessage', { - * defaultMessage: 'Select Timelion from the "New Visualization" window.', + * i18n.translate('xpack.foo.deprecations.manualStepTwoMessage', { + * defaultMessage: 'Select Foo from the "New Visualization" window.', * }), * ], * api: { diff --git a/src/core/server/saved_objects/migrations/core/elastic_index.ts b/src/core/server/saved_objects/migrations/core/elastic_index.ts index f473b3ed02526..5068c24df3414 100644 --- a/src/core/server/saved_objects/migrations/core/elastic_index.ts +++ b/src/core/server/saved_objects/migrations/core/elastic_index.ts @@ -45,6 +45,8 @@ export const REMOVED_TYPES: string[] = [ 'tsvb-validation-telemetry', // replaced by osquery-manager-usage-metric 'osquery-usage-metric', + // Was removed in 7.16 + 'timelion-sheet', ].sort(); // When migrating from the outdated index we use a read query which excludes diff --git a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker index c9b6fa3d9dda5..cee43fd85c90f 100755 --- a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker +++ b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker @@ -200,7 +200,6 @@ kibana_vars=( tilemap.options.minZoom tilemap.options.subdomains tilemap.url - timelion.enabled url_drilldown.enabled vega.enableExternalUrls vis_type_vega.enableExternalUrls diff --git a/src/plugins/kibana_usage_collection/README.md b/src/plugins/kibana_usage_collection/README.md index 1cb14cdef647e..4ea014457fd07 100644 --- a/src/plugins/kibana_usage_collection/README.md +++ b/src/plugins/kibana_usage_collection/README.md @@ -9,7 +9,7 @@ This plugin registers the Platform Usage Collectors in Kibana. | **Config Usage** | Reports the non-default values set via `kibana.yml` config file or CLI options. It `[redacts]` any potential PII-sensitive values. | [Link](./server/collectors/config_usage/README.md) | | **User-changed UI Settings** | Reports all the UI Settings that have been overwritten by the user. It `[redacts]` any potential PII-sensitive values. | [Link](./server/collectors/management/README.md) | | **CSP configuration** | Reports the key values regarding the CSP configuration. | - | -| **Kibana** | It reports the number of Saved Objects per type. It is limited to `dashboard`, `visualization`, `search`, `index-pattern`, `graph-workspace` and `timelion-sheet`.
It exists for legacy purposes, and may still be used by Monitoring via Metricbeat. | - | +| **Kibana** | It reports the number of Saved Objects per type. It is limited to `dashboard`, `visualization`, `search`, `index-pattern`, `graph-workspace`.
It exists for legacy purposes, and may still be used by Monitoring via Metricbeat. | - | | **Saved Objects Counts** | Number of Saved Objects per type. | - | | **Localization data** | Localization settings: setup locale and installed translation files. | - | | **Ops stats** | Operation metrics from the system. | - | diff --git a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts index d29d6d6a86e85..5f268a6fdfee7 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/application_usage/schema.ts @@ -124,7 +124,6 @@ export const applicationUsageSchema = { kibana: commonSchema, // It's a forward app so we'll likely never report it management: commonSchema, short_url_redirect: commonSchema, // It's a forward app so we'll likely never report it - timelion: commonSchema, visualize: commonSchema, error: commonSchema, status: commonSchema, diff --git a/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts index 68d56944d9974..237ec54e4692b 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/management/schema.ts @@ -104,22 +104,10 @@ export const stackManagementSchema: MakeSchemaFrom = { type: 'keyword', _meta: { description: 'Non-default value of setting.' }, }, - 'timelion:default_rows': { - type: 'long', - _meta: { description: 'Non-default value of setting.' }, - }, - 'timelion:default_columns': { - type: 'long', - _meta: { description: 'Non-default value of setting.' }, - }, 'timelion:es.default_index': { type: 'keyword', _meta: { description: 'Non-default value of setting.' }, }, - 'timelion:showTutorial': { - type: 'boolean', - _meta: { description: 'Non-default value of setting.' }, - }, 'securitySolution:timeDefaults': { type: 'keyword', _meta: { description: 'Non-default value of setting.' }, diff --git a/src/plugins/kibana_usage_collection/server/collectors/management/types.ts b/src/plugins/kibana_usage_collection/server/collectors/management/types.ts index ed46e6b38b283..0c4b848ff3544 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/management/types.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/management/types.ts @@ -49,10 +49,7 @@ export interface UsageStats { 'timelion:max_buckets': number; 'timelion:es.timefield': string; 'timelion:min_interval': string; - 'timelion:default_rows': number; - 'timelion:default_columns': number; 'timelion:es.default_index': string; - 'timelion:showTutorial': boolean; 'securitySolution:timeDefaults': string; 'securitySolution:defaultAnomalyScore': number; 'securitySolution:refreshIntervalDefaults': string; diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.test.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.test.ts index 6097910afe22b..fc9f9a6e8c2d3 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.test.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.test.ts @@ -56,7 +56,6 @@ describe('kibana_usage', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 0 }, - timelion_sheet: { total: 0 }, }); }); }); @@ -81,7 +80,6 @@ describe('getKibanaSavedObjectCounts', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 0 }, - timelion_sheet: { total: 0 }, }); }); @@ -91,7 +89,6 @@ describe('getKibanaSavedObjectCounts', () => { types: { buckets: [ { key: 'dashboard', doc_count: 1 }, - { key: 'timelion-sheet', doc_count: 2 }, { key: 'index-pattern', value: 2 }, // Malformed on purpose { key: 'graph_workspace', doc_count: 3 }, // already snake_cased ], @@ -106,7 +103,6 @@ describe('getKibanaSavedObjectCounts', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 2 }, }); }); }); diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.ts index 1ebb61c446083..13b9d0ca2104c 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/kibana_usage_collector.ts @@ -19,21 +19,13 @@ interface KibanaSavedObjectCounts { search: { total: number }; index_pattern: { total: number }; graph_workspace: { total: number }; - timelion_sheet: { total: number }; } interface KibanaUsage extends KibanaSavedObjectCounts { index: string; } -const TYPES = [ - 'dashboard', - 'visualization', - 'search', - 'index-pattern', - 'graph-workspace', - 'timelion-sheet', -]; +const TYPES = ['dashboard', 'visualization', 'search', 'index-pattern', 'graph-workspace']; export async function getKibanaSavedObjectCounts( esClient: ElasticsearchClient, @@ -89,12 +81,6 @@ export function registerKibanaUsageCollector( _meta: { description: 'Total number of graph_workspace saved objects' }, }, }, - timelion_sheet: { - total: { - type: 'long', - _meta: { description: 'Total number of timelion_sheet saved objects' }, - }, - }, }, async fetch({ esClient }) { const { diff --git a/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts index fec314fc6b87e..5252ab24395aa 100644 --- a/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts +++ b/src/plugins/kibana_usage_collection/server/collectors/ui_metric/schema.ts @@ -28,7 +28,6 @@ const uiMetricFromDataPluginSchema: MakeSchemaFrom = { kibana: commonSchema, // It's a forward app so we'll likely never report it management: commonSchema, short_url_redirect: commonSchema, // It's a forward app so we'll likely never report it - timelion: commonSchema, visualize: commonSchema, // X-Pack diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 07c765b493db4..abf4aac7df59a 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -1088,137 +1088,6 @@ } } }, - "timelion": { - "properties": { - "appId": { - "type": "keyword", - "_meta": { - "description": "The application being tracked" - } - }, - "viewId": { - "type": "keyword", - "_meta": { - "description": "Always `main`" - } - }, - "clicks_total": { - "type": "long", - "_meta": { - "description": "General number of clicks in the application since we started counting them" - } - }, - "clicks_7_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the application over the last 7 days" - } - }, - "clicks_30_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the application over the last 30 days" - } - }, - "clicks_90_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the application over the last 90 days" - } - }, - "minutes_on_screen_total": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen since we started counting them." - } - }, - "minutes_on_screen_7_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen over the last 7 days" - } - }, - "minutes_on_screen_30_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen over the last 30 days" - } - }, - "minutes_on_screen_90_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen over the last 90 days" - } - }, - "views": { - "type": "array", - "items": { - "properties": { - "appId": { - "type": "keyword", - "_meta": { - "description": "The application being tracked" - } - }, - "viewId": { - "type": "keyword", - "_meta": { - "description": "The application view being tracked" - } - }, - "clicks_total": { - "type": "long", - "_meta": { - "description": "General number of clicks in the application sub view since we started counting them" - } - }, - "clicks_7_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the active application sub view over the last 7 days" - } - }, - "clicks_30_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the active application sub view over the last 30 days" - } - }, - "clicks_90_days": { - "type": "long", - "_meta": { - "description": "General number of clicks in the active application sub view over the last 90 days" - } - }, - "minutes_on_screen_total": { - "type": "float", - "_meta": { - "description": "Minutes the application sub view is active and on-screen since we started counting them." - } - }, - "minutes_on_screen_7_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen active application sub view over the last 7 days" - } - }, - "minutes_on_screen_30_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen active application sub view over the last 30 days" - } - }, - "minutes_on_screen_90_days": { - "type": "float", - "_meta": { - "description": "Minutes the application is active and on-screen active application sub view over the last 90 days" - } - } - } - } - } - } - }, "visualize": { "properties": { "appId": { @@ -7253,30 +7122,12 @@ "description": "Non-default value of setting." } }, - "timelion:default_rows": { - "type": "long", - "_meta": { - "description": "Non-default value of setting." - } - }, - "timelion:default_columns": { - "type": "long", - "_meta": { - "description": "Non-default value of setting." - } - }, "timelion:es.default_index": { "type": "keyword", "_meta": { "description": "Non-default value of setting." } }, - "timelion:showTutorial": { - "type": "boolean", - "_meta": { - "description": "Non-default value of setting." - } - }, "securitySolution:timeDefaults": { "type": "keyword", "_meta": { @@ -7855,16 +7706,6 @@ } } } - }, - "timelion_sheet": { - "properties": { - "total": { - "type": "long", - "_meta": { - "description": "Total number of timelion_sheet saved objects" - } - } - } } } }, @@ -8396,25 +8237,6 @@ } } }, - "timelion": { - "type": "array", - "items": { - "properties": { - "key": { - "type": "keyword", - "_meta": { - "description": "The event that is tracked" - } - }, - "value": { - "type": "long", - "_meta": { - "description": "The value of the event" - } - } - } - } - }, "csm": { "type": "array", "items": { diff --git a/src/plugins/telemetry/schema/oss_root.json b/src/plugins/telemetry/schema/oss_root.json index c4dd1096a6e98..3748485465cc0 100644 --- a/src/plugins/telemetry/schema/oss_root.json +++ b/src/plugins/telemetry/schema/oss_root.json @@ -64,13 +64,6 @@ }, "kibana": { "properties": { - "timelion_sheet": { - "properties": { - "total": { - "type": "long" - } - } - }, "visualization": { "properties": { "total": { diff --git a/src/plugins/timelion/README.md b/src/plugins/timelion/README.md deleted file mode 100644 index d29a33028e967..0000000000000 --- a/src/plugins/timelion/README.md +++ /dev/null @@ -1,2 +0,0 @@ -Contains the deprecated timelion application. For the timelion visualization, -which also contains the timelion APIs and backend, look at the vis_type_timelion plugin. diff --git a/src/plugins/timelion/kibana.json b/src/plugins/timelion/kibana.json deleted file mode 100644 index 4d48462a1ed6a..0000000000000 --- a/src/plugins/timelion/kibana.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": "timelion", - "version": "kibana", - "ui": true, - "server": true, - "requiredBundles": [ - "kibanaLegacy", - "kibanaUtils", - "visTypeTimelion" - ], - "requiredPlugins": [ - "visualizations", - "data", - "navigation", - "visTypeTimelion", - "savedObjects", - "kibanaLegacy" - ], - "owner": { - "name": "Vis Editors", - "githubTeam": "kibana-vis-editors" - } -} diff --git a/src/plugins/timelion/public/_app.scss b/src/plugins/timelion/public/_app.scss deleted file mode 100644 index d8a6eb423a670..0000000000000 --- a/src/plugins/timelion/public/_app.scss +++ /dev/null @@ -1,83 +0,0 @@ -.timApp { - position: relative; - background: $euiColorEmptyShade; - - [ng-click] { - cursor: pointer; - } -} - -.timApp__container { - margin: $euiSizeM; -} - -.timApp__menus { - margin: $euiSizeM; -} - -.timApp__title { - display: flex; - align-items: center; - padding: $euiSizeM $euiSizeS; - font-size: $euiSize; - font-weight: $euiFontWeightBold; - border-bottom: 1px solid $euiColorLightShade; - flex-grow: 1; - background-color: $euiColorEmptyShade; -} - -.timApp__stats { - font-weight: $euiFontWeightRegular; - color: $euiColorMediumShade; -} - -.timApp__form { - display: flex; - align-items: flex-start; - margin-top: $euiSize; - margin-bottom: $euiSize; -} - -.timApp__expression { - display: flex; - flex: 1; - margin-right: $euiSizeS; -} - -.timApp__button { - margin-top: $euiSizeS; - padding: $euiSizeXS $euiSizeM; - font-size: $euiSize; - border: none; - border-radius: $euiSizeXS; - color: $euiColorEmptyShade; - background-color: $euiColorPrimary; -} - -.timApp__button--secondary { - margin-top: $euiSizeS; - padding: $euiSizeXS $euiSizeM; - font-size: $euiSize; - border: 1px solid $euiColorPrimary; - border-radius: $euiSizeXS; - color: $euiColorPrimary; - width: 100%; -} - -.timApp__sectionTitle { - margin-bottom: $euiSizeM; - font-size: 18px; - color: $euiColorDarkestShade; -} - -.timApp__helpText { - margin-bottom: $euiSize; - font-size: 14px; - color: $euiColorDarkShade; -} - -.timApp__label { - font-size: $euiSize; - line-height: 1.5; - font-weight: $euiFontWeightBold; -} diff --git a/src/plugins/timelion/public/_base.scss b/src/plugins/timelion/public/_base.scss deleted file mode 100644 index e71196a2e6df9..0000000000000 --- a/src/plugins/timelion/public/_base.scss +++ /dev/null @@ -1,18 +0,0 @@ -// Angular form states -.ng-invalid { - &.ng-dirty, - &.ng-touched { - border-color: $euiColorDanger; - } -} - -input[type='radio'], -input[type='checkbox'], -.radio, -.checkbox { - &[disabled], - fieldset[disabled] & { - cursor: default; - opacity: .8; - } -} diff --git a/src/plugins/timelion/public/app.js b/src/plugins/timelion/public/app.js deleted file mode 100644 index 4a4b2be679dd3..0000000000000 --- a/src/plugins/timelion/public/app.js +++ /dev/null @@ -1,655 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; - -import { i18n } from '@kbn/i18n'; - -import { createHashHistory } from 'history'; - -import { createKbnUrlStateStorage, withNotifyOnErrors } from '../../kibana_utils/public'; -import { syncQueryStateWithUrl } from '../../data/public'; - -import { getSavedSheetBreadcrumbs, getCreateBreadcrumbs } from './breadcrumbs'; -import { - addFatalError, - registerListenEventListener, - watchMultiDecorator, -} from '../../kibana_legacy/public'; -import { _LEGACY_ as visTypeTimelion } from '../../vis_type_timelion/public'; -import { initCellsDirective } from './directives/cells/cells'; -import { initFullscreenDirective } from './directives/fullscreen/fullscreen'; -import { initFixedElementDirective } from './directives/fixed_element'; -import { initTimelionLoadSheetDirective } from './directives/timelion_load_sheet'; -import { initTimelionHelpDirective } from './directives/timelion_help/timelion_help'; -import { initTimelionSaveSheetDirective } from './directives/timelion_save_sheet'; -import { initTimelionOptionsSheetDirective } from './directives/timelion_options_sheet'; -import { initSavedObjectSaveAsCheckBoxDirective } from './directives/saved_object_save_as_checkbox'; -import { initSavedObjectFinderDirective } from './directives/saved_object_finder'; -import { initTimelionTabsDirective } from './components/timelionhelp_tabs_directive'; -import { initTimelionTDeprecationDirective } from './components/timelion_deprecation_directive'; -import { initTimelionTopNavDirective } from './components/timelion_top_nav_directive'; -import { initInputFocusDirective } from './directives/input_focus'; -import { Chart } from './directives/chart/chart'; -import { TimelionInterval } from './directives/timelion_interval/timelion_interval'; -import { timelionExpInput } from './directives/timelion_expression_input'; -import { TimelionExpressionSuggestions } from './directives/timelion_expression_suggestions/timelion_expression_suggestions'; -import { initSavedSheetService } from './services/saved_sheets'; -import { initTimelionAppState } from './timelion_app_state'; - -import rootTemplate from './index.html'; - -export function initTimelionApp(app, deps) { - app.run(registerListenEventListener); - - const savedSheetLoader = initSavedSheetService(app, deps); - - app.factory('history', () => createHashHistory()); - app.factory('kbnUrlStateStorage', (history) => - createKbnUrlStateStorage({ - history, - useHash: deps.core.uiSettings.get('state:storeInSessionStorage'), - ...withNotifyOnErrors(deps.core.notifications.toasts), - }) - ); - app.config(watchMultiDecorator); - - app - .controller('TimelionVisController', function ($scope) { - $scope.$on('timelionChartRendered', (event) => { - event.stopPropagation(); - $scope.renderComplete(); - }); - }) - .constant('timelionPanels', deps.timelionPanels) - .directive('chart', Chart) - .directive('timelionInterval', TimelionInterval) - .directive('timelionExpressionSuggestions', TimelionExpressionSuggestions) - .directive('timelionExpressionInput', timelionExpInput(deps)); - - initTimelionHelpDirective(app); - initInputFocusDirective(app); - initTimelionTabsDirective(app, deps); - initTimelionTDeprecationDirective(app, deps); - initTimelionTopNavDirective(app, deps); - initSavedObjectFinderDirective(app, savedSheetLoader, deps.core.uiSettings); - initSavedObjectSaveAsCheckBoxDirective(app); - initCellsDirective(app); - initFixedElementDirective(app); - initFullscreenDirective(app); - initTimelionSaveSheetDirective(app); - initTimelionLoadSheetDirective(app); - initTimelionOptionsSheetDirective(app); - - const location = 'Timelion'; - - app.directive('timelionApp', function () { - return { - restrict: 'E', - controllerAs: 'timelionApp', - controller: timelionController, - }; - }); - - function timelionController( - $http, - $route, - $routeParams, - $scope, - $timeout, - history, - kbnUrlStateStorage - ) { - // Keeping this at app scope allows us to keep the current page when the user - // switches to say, the timepicker. - $scope.page = deps.core.uiSettings.get('timelion:showTutorial', true) ? 1 : 0; - $scope.setPage = (page) => ($scope.page = page); - const timefilter = deps.plugins.data.query.timefilter.timefilter; - - timefilter.enableAutoRefreshSelector(); - timefilter.enableTimeRangeSelector(); - - deps.core.chrome.docTitle.change('Timelion - Kibana'); - - // starts syncing `_g` portion of url with query services - const { stop: stopSyncingQueryServiceStateWithUrl } = syncQueryStateWithUrl( - deps.plugins.data.query, - kbnUrlStateStorage - ); - - const savedSheet = $route.current.locals.savedSheet; - - function getStateDefaults() { - return { - sheet: savedSheet.timelion_sheet, - selected: 0, - columns: savedSheet.timelion_columns, - rows: savedSheet.timelion_rows, - interval: savedSheet.timelion_interval, - }; - } - - const { stateContainer, stopStateSync } = initTimelionAppState({ - stateDefaults: getStateDefaults(), - kbnUrlStateStorage, - }); - - $scope.state = _.cloneDeep(stateContainer.getState()); - $scope.expression = _.clone($scope.state.sheet[$scope.state.selected]); - $scope.updatedSheets = []; - - const savedVisualizations = deps.plugins.visualizations.savedVisualizationsLoader; - const timezone = visTypeTimelion.getTimezone(deps.core.uiSettings); - - const defaultExpression = '.es(*)'; - - $scope.topNavMenu = getTopNavMenu(); - - $timeout(function () { - if (deps.core.uiSettings.get('timelion:showTutorial', true)) { - $scope.toggleMenu('showHelp'); - } - }, 0); - - $scope.transient = {}; - - function getTopNavMenu() { - const newSheetAction = { - id: 'new', - label: i18n.translate('timelion.topNavMenu.newSheetButtonLabel', { - defaultMessage: 'New', - }), - description: i18n.translate('timelion.topNavMenu.newSheetButtonAriaLabel', { - defaultMessage: 'New Sheet', - }), - run: function () { - history.push('/'); - $route.reload(); - }, - testId: 'timelionNewButton', - }; - - const addSheetAction = { - id: 'add', - label: i18n.translate('timelion.topNavMenu.addChartButtonLabel', { - defaultMessage: 'Add', - }), - description: i18n.translate('timelion.topNavMenu.addChartButtonAriaLabel', { - defaultMessage: 'Add a chart', - }), - run: function () { - $scope.$evalAsync(() => $scope.newCell()); - }, - testId: 'timelionAddChartButton', - }; - - const saveSheetAction = { - id: 'save', - label: i18n.translate('timelion.topNavMenu.saveSheetButtonLabel', { - defaultMessage: 'Save', - }), - description: i18n.translate('timelion.topNavMenu.saveSheetButtonAriaLabel', { - defaultMessage: 'Save Sheet', - }), - run: () => { - $scope.$evalAsync(() => $scope.toggleMenu('showSave')); - }, - testId: 'timelionSaveButton', - }; - - const deleteSheetAction = { - id: 'delete', - label: i18n.translate('timelion.topNavMenu.deleteSheetButtonLabel', { - defaultMessage: 'Delete', - }), - description: i18n.translate('timelion.topNavMenu.deleteSheetButtonAriaLabel', { - defaultMessage: 'Delete current sheet', - }), - disableButton: function () { - return !savedSheet.id; - }, - run: function () { - const title = savedSheet.title; - function doDelete() { - savedSheet - .delete() - .then(() => { - deps.core.notifications.toasts.addSuccess( - i18n.translate('timelion.topNavMenu.delete.modal.successNotificationText', { - defaultMessage: `Deleted '{title}'`, - values: { title }, - }) - ); - history.push('/'); - }) - .catch((error) => addFatalError(deps.core.fatalErrors, error, location)); - } - - const confirmModalOptions = { - confirmButtonText: i18n.translate( - 'timelion.topNavMenu.delete.modal.confirmButtonLabel', - { - defaultMessage: 'Delete', - } - ), - title: i18n.translate('timelion.topNavMenu.delete.modalTitle', { - defaultMessage: `Delete Timelion sheet '{title}'?`, - values: { title }, - }), - }; - - $scope.$evalAsync(() => { - deps.core.overlays - .openConfirm( - i18n.translate('timelion.topNavMenu.delete.modal.warningText', { - defaultMessage: `You can't recover deleted sheets.`, - }), - confirmModalOptions - ) - .then((isConfirmed) => { - if (isConfirmed) { - doDelete(); - } - }); - }); - }, - testId: 'timelionDeleteButton', - }; - - const openSheetAction = { - id: 'open', - label: i18n.translate('timelion.topNavMenu.openSheetButtonLabel', { - defaultMessage: 'Open', - }), - description: i18n.translate('timelion.topNavMenu.openSheetButtonAriaLabel', { - defaultMessage: 'Open Sheet', - }), - run: () => { - $scope.$evalAsync(() => $scope.toggleMenu('showLoad')); - }, - testId: 'timelionOpenButton', - }; - - const optionsAction = { - id: 'options', - label: i18n.translate('timelion.topNavMenu.optionsButtonLabel', { - defaultMessage: 'Options', - }), - description: i18n.translate('timelion.topNavMenu.optionsButtonAriaLabel', { - defaultMessage: 'Options', - }), - run: () => { - $scope.$evalAsync(() => $scope.toggleMenu('showOptions')); - }, - testId: 'timelionOptionsButton', - }; - - const helpAction = { - id: 'help', - label: i18n.translate('timelion.topNavMenu.helpButtonLabel', { - defaultMessage: 'Help', - }), - description: i18n.translate('timelion.topNavMenu.helpButtonAriaLabel', { - defaultMessage: 'Help', - }), - run: () => { - $scope.$evalAsync(() => $scope.toggleMenu('showHelp')); - }, - testId: 'timelionDocsButton', - }; - - if (deps.core.application.capabilities.timelion.save) { - return [ - newSheetAction, - addSheetAction, - saveSheetAction, - deleteSheetAction, - openSheetAction, - optionsAction, - helpAction, - ]; - } - return [newSheetAction, addSheetAction, openSheetAction, optionsAction, helpAction]; - } - - let refresher; - const setRefreshData = function () { - if (refresher) $timeout.cancel(refresher); - const interval = timefilter.getRefreshInterval(); - if (interval.value > 0 && !interval.pause) { - function startRefresh() { - refresher = $timeout(function () { - if (!$scope.running) $scope.search(); - startRefresh(); - }, interval.value); - } - startRefresh(); - } - }; - - const init = function () { - $scope.running = false; - $scope.search(); - setRefreshData(); - - $scope.model = { - timeRange: timefilter.getTime(), - refreshInterval: timefilter.getRefreshInterval(), - }; - - const unsubscribeStateUpdates = stateContainer.subscribe((state) => { - const clonedState = _.cloneDeep(state); - $scope.updatedSheets.forEach((updatedSheet) => { - clonedState.sheet[updatedSheet.id] = updatedSheet.expression; - }); - $scope.state = clonedState; - $scope.opts.state = clonedState; - $scope.expression = _.clone($scope.state.sheet[$scope.state.selected]); - $scope.search(); - }); - - timefilter.getFetch$().subscribe($scope.search); - - $scope.opts = { - saveExpression: saveExpression, - saveSheet: saveSheet, - savedSheet: savedSheet, - state: _.cloneDeep(stateContainer.getState()), - search: $scope.search, - dontShowHelp: function () { - deps.core.uiSettings.set('timelion:showTutorial', false); - $scope.setPage(0); - $scope.closeMenus(); - }, - }; - - $scope.$watch('opts.state.rows', function (newRow) { - const state = stateContainer.getState(); - if (state.rows !== newRow) { - stateContainer.transitions.set('rows', newRow); - } - }); - - $scope.$watch('opts.state.columns', function (newColumn) { - const state = stateContainer.getState(); - if (state.columns !== newColumn) { - stateContainer.transitions.set('columns', newColumn); - } - }); - - $scope.menus = { - showHelp: false, - showSave: false, - showLoad: false, - showOptions: false, - }; - - $scope.toggleMenu = (menuName) => { - const curState = $scope.menus[menuName]; - $scope.closeMenus(); - $scope.menus[menuName] = !curState; - }; - - $scope.closeMenus = () => { - _.forOwn($scope.menus, function (value, key) { - $scope.menus[key] = false; - }); - }; - - $scope.$on('$destroy', () => { - stopSyncingQueryServiceStateWithUrl(); - unsubscribeStateUpdates(); - stopStateSync(); - }); - }; - - $scope.onTimeUpdate = function ({ dateRange }) { - $scope.model.timeRange = { - ...dateRange, - }; - timefilter.setTime(dateRange); - if (!$scope.running) $scope.search(); - }; - - $scope.onRefreshChange = function ({ isPaused, refreshInterval }) { - $scope.model.refreshInterval = { - pause: isPaused, - value: refreshInterval, - }; - timefilter.setRefreshInterval({ - pause: isPaused, - value: refreshInterval ? refreshInterval : $scope.refreshInterval.value, - }); - - setRefreshData(); - }; - - $scope.$watch( - function () { - return savedSheet.lastSavedTitle; - }, - function (newTitle) { - if (savedSheet.id && newTitle) { - deps.core.chrome.docTitle.change(newTitle); - } - } - ); - - $scope.$watch('expression', function (newExpression) { - const state = stateContainer.getState(); - if (state.sheet[state.selected] !== newExpression) { - const updatedSheet = $scope.updatedSheets.find( - (updatedSheet) => updatedSheet.id === state.selected - ); - if (updatedSheet) { - updatedSheet.expression = newExpression; - } else { - $scope.updatedSheets.push({ - id: state.selected, - expression: newExpression, - }); - } - } - }); - - $scope.toggle = function (property) { - $scope[property] = !$scope[property]; - }; - - $scope.changeInterval = function (interval) { - $scope.currentInterval = interval; - }; - - $scope.updateChart = function () { - const state = stateContainer.getState(); - const newSheet = _.clone(state.sheet); - if ($scope.updatedSheets.length) { - $scope.updatedSheets.forEach((updatedSheet) => { - newSheet[updatedSheet.id] = updatedSheet.expression; - }); - $scope.updatedSheets = []; - } - stateContainer.transitions.updateState({ - interval: $scope.currentInterval ? $scope.currentInterval : state.interval, - sheet: newSheet, - }); - }; - - $scope.newSheet = function () { - history.push('/'); - }; - - $scope.removeSheet = function (removedIndex) { - const state = stateContainer.getState(); - const newSheet = state.sheet.filter((el, index) => index !== removedIndex); - $scope.updatedSheets = $scope.updatedSheets.filter((el) => el.id !== removedIndex); - stateContainer.transitions.updateState({ - sheet: newSheet, - selected: removedIndex ? removedIndex - 1 : removedIndex, - }); - }; - - $scope.newCell = function () { - const state = stateContainer.getState(); - const newSheet = [...state.sheet, defaultExpression]; - stateContainer.transitions.updateState({ sheet: newSheet, selected: newSheet.length - 1 }); - }; - - $scope.setActiveCell = function (cell) { - const state = stateContainer.getState(); - if (state.selected !== cell) { - stateContainer.transitions.updateState({ sheet: $scope.state.sheet, selected: cell }); - } - }; - - $scope.search = function () { - $scope.running = true; - const state = stateContainer.getState(); - - // parse the time range client side to make sure it behaves like other charts - const timeRangeBounds = timefilter.getBounds(); - - const httpResult = $http - .post('../api/timelion/run', { - sheet: state.sheet, - time: _.assignIn( - { - from: timeRangeBounds.min, - to: timeRangeBounds.max, - }, - { - interval: state.interval, - timezone: timezone, - } - ), - }) - .then((resp) => resp.data) - .catch((resp) => { - throw resp.data; - }); - - httpResult - .then(function (resp) { - $scope.stats = resp.stats; - $scope.sheet = resp.sheet; - _.forEach(resp.sheet, function (cell) { - if (cell.exception && cell.plot !== state.selected) { - stateContainer.transitions.set('selected', cell.plot); - } - }); - $scope.running = false; - }) - .catch(function (resp) { - $scope.sheet = []; - $scope.running = false; - - const err = new Error(resp.message); - err.stack = resp.stack; - deps.core.notifications.toasts.addError(err, { - title: i18n.translate('timelion.searchErrorTitle', { - defaultMessage: 'Timelion request error', - }), - }); - }); - }; - - $scope.safeSearch = _.debounce($scope.search, 500); - - function saveSheet() { - const state = stateContainer.getState(); - savedSheet.timelion_sheet = state.sheet; - savedSheet.timelion_interval = state.interval; - savedSheet.timelion_columns = state.columns; - savedSheet.timelion_rows = state.rows; - savedSheet.save().then(function (id) { - if (id) { - deps.core.notifications.toasts.addSuccess({ - title: i18n.translate('timelion.saveSheet.successNotificationText', { - defaultMessage: `Saved sheet '{title}'`, - values: { title: savedSheet.title }, - }), - 'data-test-subj': 'timelionSaveSuccessToast', - }); - - if (savedSheet.id !== $routeParams.id) { - history.push(`/${savedSheet.id}`); - } - } - }); - } - - async function saveExpression(title) { - const vis = await deps.plugins.visualizations.createVis('timelion', { - title, - params: { - expression: $scope.state.sheet[$scope.state.selected], - interval: $scope.state.interval, - }, - }); - const state = deps.plugins.visualizations.convertFromSerializedVis(vis.serialize()); - const visSavedObject = await savedVisualizations.get(); - Object.assign(visSavedObject, state); - const id = await visSavedObject.save(); - if (id) { - deps.core.notifications.toasts.addSuccess( - i18n.translate('timelion.saveExpression.successNotificationText', { - defaultMessage: `Saved expression '{title}'`, - values: { title: state.title }, - }) - ); - } - } - - init(); - } - - app.config(function ($routeProvider) { - $routeProvider - .when('/:id?', { - template: rootTemplate, - reloadOnSearch: false, - k7Breadcrumbs: ($injector, $route) => - $injector.invoke( - $route.current.params.id ? getSavedSheetBreadcrumbs : getCreateBreadcrumbs - ), - badge: () => { - if (deps.core.application.capabilities.timelion.save) { - return undefined; - } - - return { - text: i18n.translate('timelion.badge.readOnly.text', { - defaultMessage: 'Read only', - }), - tooltip: i18n.translate('timelion.badge.readOnly.tooltip', { - defaultMessage: 'Unable to save Timelion sheets', - }), - iconType: 'glasses', - }; - }, - resolve: { - savedSheet: function (savedSheets, $route) { - return savedSheets - .get($route.current.params.id) - .then((savedSheet) => { - if ($route.current.params.id) { - deps.core.chrome.recentlyAccessed.add( - savedSheet.getFullPath(), - savedSheet.title, - savedSheet.id - ); - } - return savedSheet; - }) - .catch(); - }, - }, - }) - .otherwise('/'); - }); -} diff --git a/src/plugins/timelion/public/application.ts b/src/plugins/timelion/public/application.ts deleted file mode 100644 index 1e3cf43f62655..0000000000000 --- a/src/plugins/timelion/public/application.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import './index.scss'; - -import { EuiIcon } from '@elastic/eui'; -import angular, { IModule } from 'angular'; -// required for `ngSanitize` angular module -import 'angular-sanitize'; -// required for ngRoute -import 'angular-route'; -import 'angular-sortable-view'; -import { i18nDirective, i18nFilter, I18nProvider } from '@kbn/i18n/angular'; -import { - IUiSettingsClient, - CoreStart, - PluginInitializerContext, - AppMountParameters, -} from 'kibana/public'; -import { getTimeChart } from './panels/timechart/timechart'; -import { Panel } from './panels/panel'; - -import { configureAppAngularModule } from '../../kibana_legacy/public'; -import { TimelionPluginStartDependencies } from './plugin'; -import { DataPublicPluginStart } from '../../data/public'; -// @ts-ignore -import { initTimelionApp } from './app'; - -export interface RenderDeps { - pluginInitializerContext: PluginInitializerContext; - mountParams: AppMountParameters; - core: CoreStart; - plugins: TimelionPluginStartDependencies; - timelionPanels: Map; -} - -export interface TimelionVisualizationDependencies { - uiSettings: IUiSettingsClient; - timelionPanels: Map; - data: DataPublicPluginStart; - $rootScope: any; - $compile: any; -} - -let angularModuleInstance: IModule | null = null; - -export const renderApp = (deps: RenderDeps) => { - if (!angularModuleInstance) { - angularModuleInstance = createLocalAngularModule(deps); - // global routing stuff - configureAppAngularModule( - angularModuleInstance, - { core: deps.core, env: deps.pluginInitializerContext.env }, - true - ); - initTimelionApp(angularModuleInstance, deps); - } - - const $injector = mountTimelionApp(deps.mountParams.appBasePath, deps.mountParams.element, deps); - - return () => { - $injector.get('$rootScope').$destroy(); - }; -}; - -function registerPanels(dependencies: TimelionVisualizationDependencies) { - const timeChartPanel: Panel = getTimeChart(dependencies); - - dependencies.timelionPanels.set(timeChartPanel.name, timeChartPanel); -} - -const mainTemplate = (basePath: string) => `
- -
`; - -const moduleName = 'app/timelion'; - -const thirdPartyAngularDependencies = ['ngSanitize', 'ngRoute', 'react', 'angular-sortable-view']; - -function mountTimelionApp(appBasePath: string, element: HTMLElement, deps: RenderDeps) { - const mountpoint = document.createElement('div'); - mountpoint.setAttribute('class', 'timelionAppContainer'); - // eslint-disable-next-line no-unsanitized/property - mountpoint.innerHTML = mainTemplate(appBasePath); - // bootstrap angular into detached element and attach it later to - // make angular-within-angular possible - const $injector = angular.bootstrap(mountpoint, [moduleName]); - - registerPanels({ - uiSettings: deps.core.uiSettings, - timelionPanels: deps.timelionPanels, - data: deps.plugins.data, - $rootScope: $injector.get('$rootScope'), - $compile: $injector.get('$compile'), - }); - element.appendChild(mountpoint); - return $injector; -} - -function createLocalAngularModule(deps: RenderDeps) { - createLocalI18nModule(); - createLocalIconModule(); - - const dashboardAngularModule = angular.module(moduleName, [ - ...thirdPartyAngularDependencies, - 'app/timelion/I18n', - 'app/timelion/icon', - ]); - return dashboardAngularModule; -} - -function createLocalIconModule() { - angular - .module('app/timelion/icon', ['react']) - .directive('icon', (reactDirective) => reactDirective(EuiIcon)); -} - -function createLocalI18nModule() { - angular - .module('app/timelion/I18n', []) - .provider('i18n', I18nProvider) - .filter('i18n', i18nFilter) - .directive('i18nId', i18nDirective); -} diff --git a/src/plugins/timelion/public/breadcrumbs.js b/src/plugins/timelion/public/breadcrumbs.js deleted file mode 100644 index aff173823946b..0000000000000 --- a/src/plugins/timelion/public/breadcrumbs.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { i18n } from '@kbn/i18n'; - -const ROOT_BREADCRUMB = { - text: i18n.translate('timelion.breadcrumbs.root', { - defaultMessage: 'Timelion', - }), - href: '#', -}; - -export function getCreateBreadcrumbs() { - return [ - ROOT_BREADCRUMB, - { - text: i18n.translate('timelion.breadcrumbs.create', { - defaultMessage: 'Create', - }), - }, - ]; -} - -export function getSavedSheetBreadcrumbs($route) { - const { savedSheet } = $route.current.locals; - return [ - ROOT_BREADCRUMB, - { - text: savedSheet.title, - }, - ]; -} diff --git a/src/plugins/timelion/public/components/timelion_deprecation.tsx b/src/plugins/timelion/public/components/timelion_deprecation.tsx deleted file mode 100644 index 117aabed6773c..0000000000000 --- a/src/plugins/timelion/public/components/timelion_deprecation.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiSpacer, EuiCallOut, EuiLink } from '@elastic/eui'; -import React from 'react'; -import { DocLinksStart } from '../../../../core/public'; - -export const TimelionDeprecation = ({ links }: DocLinksStart) => { - const timelionDeprecationLink = links.visualize.timelionDeprecation; - return ( - <> - - - - ), - }} - /> - } - color="warning" - iconType="alert" - size="s" - /> - - - ); -}; diff --git a/src/plugins/timelion/public/components/timelion_deprecation_directive.js b/src/plugins/timelion/public/components/timelion_deprecation_directive.js deleted file mode 100644 index 2aeea00991864..0000000000000 --- a/src/plugins/timelion/public/components/timelion_deprecation_directive.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { TimelionDeprecation } from './timelion_deprecation'; - -export function initTimelionTDeprecationDirective(app, deps) { - app.directive('timelionDeprecation', function (reactDirective) { - return reactDirective( - () => { - return ( - - - - ); - }, - [], - { - restrict: 'E', - scope: { - docLinks: '=', - }, - } - ); - }); -} diff --git a/src/plugins/timelion/public/components/timelion_top_nav_directive.js b/src/plugins/timelion/public/components/timelion_top_nav_directive.js deleted file mode 100644 index 4ec3b40e47c52..0000000000000 --- a/src/plugins/timelion/public/components/timelion_top_nav_directive.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; - -export function initTimelionTopNavDirective(app, deps) { - app.directive('timelionTopNav', function (reactDirective) { - return reactDirective( - (props) => { - const { TopNavMenu } = deps.plugins.navigation.ui; - return ( - - - - ); - }, - [ - ['topNavMenu', { watchDepth: 'reference' }], - ['onTimeUpdate', { watchDepth: 'reference' }], - ], - { - restrict: 'E', - scope: { - topNavMenu: '=', - onTimeUpdate: '=', - }, - } - ); - }); -} diff --git a/src/plugins/timelion/public/components/timelionhelp_tabs.js b/src/plugins/timelion/public/components/timelionhelp_tabs.js deleted file mode 100644 index 537e1bfa393b7..0000000000000 --- a/src/plugins/timelion/public/components/timelionhelp_tabs.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import PropTypes from 'prop-types'; -import React from 'react'; - -import { EuiTabs, EuiTab } from '@elastic/eui'; - -import { FormattedMessage } from '@kbn/i18n/react'; - -function handleClick(activateTab, tabName) { - activateTab(tabName); -} - -export function TimelionHelpTabs(props) { - return ( - - handleClick(props.activateTab, 'funcref')} - > - - - handleClick(props.activateTab, 'keyboardtips')} - > - - - - ); -} - -TimelionHelpTabs.propTypes = { - activeTab: PropTypes.string, - activateTab: PropTypes.func, -}; diff --git a/src/plugins/timelion/public/components/timelionhelp_tabs_directive.js b/src/plugins/timelion/public/components/timelionhelp_tabs_directive.js deleted file mode 100644 index a88e156cb5c51..0000000000000 --- a/src/plugins/timelion/public/components/timelionhelp_tabs_directive.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { TimelionHelpTabs } from './timelionhelp_tabs'; - -export function initTimelionTabsDirective(app, deps) { - app.directive('timelionHelpTabs', function (reactDirective) { - return reactDirective( - (props) => { - return ( - - - - ); - }, - [['activeTab'], ['activateTab', { watchDepth: 'reference' }]], - { - restrict: 'E', - scope: { - activeTab: '=', - activateTab: '=', - }, - } - ); - }); -} diff --git a/src/plugins/timelion/public/directives/_form.scss b/src/plugins/timelion/public/directives/_form.scss deleted file mode 100644 index 37a0cc4c0f3e5..0000000000000 --- a/src/plugins/timelion/public/directives/_form.scss +++ /dev/null @@ -1,83 +0,0 @@ -.form-control { - @include euiFontSizeS; - display: block; - width: 100%; - height: $euiFormControlCompressedHeight; - padding: $euiSizeXS $euiSizeM; - border: $euiBorderThin; - background-color: $euiFormBackgroundColor; - color: $euiTextColor; - border-radius: $euiBorderRadius; - cursor: pointer; - - &:not([type='range']) { - appearance: none; - } - - &:focus { - border-color: $euiColorPrimary; - outline: none; - box-shadow: none; - } -} - -select.form-control { // stylelint-disable-line selector-no-qualifying-type - // Makes the select arrow similar to EUI's arrowDown icon - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"%3E%3Cpath fill="#{hexToRGB($euiTextColor)}" d="M13.0688508,5.15725038 L8.38423975,9.76827428 C8.17054415,9.97861308 7.82999214,9.97914095 7.61576025,9.76827428 L2.93114915,5.15725038 C2.7181359,4.94758321 2.37277319,4.94758321 2.15975994,5.15725038 C1.94674669,5.36691756 1.94674669,5.70685522 2.15975994,5.9165224 L6.84437104,10.5275463 C7.48517424,11.1582836 8.51644979,11.1566851 9.15562896,10.5275463 L13.8402401,5.9165224 C14.0532533,5.70685522 14.0532533,5.36691756 13.8402401,5.15725038 C13.6272268,4.94758321 13.2818641,4.94758321 13.0688508,5.15725038 Z"/%3E%3C/svg%3E'); - background-size: $euiSize; - background-repeat: no-repeat; - background-position: calc(100% - #{$euiSizeS}); - padding-right: $euiSizeXL; -} - -.fullWidth { - width: 100%; -} - -.timDropdownWarning { - margin-bottom: $euiSize; - padding: $euiSizeXS $euiSizeS; - color: $euiColorDarkestShade; - border-left: solid 2px $euiColorDanger; - font-size: $euiSizeM; -} - -.timFormCheckbox { - display: flex; - align-items: center; - line-height: 1.5; - position: relative; -} - -.timFormCheckbox__input { - appearance: none; - background-color: $euiColorLightestShade; - border: 1px solid $euiColorLightShade; - border-radius: $euiSizeXS; - width: $euiSize; - height: $euiSize; - font-size: $euiSizeM; - transition: background-color .1s linear; -} - -.timFormCheckbox__input:checked { - border-color: $euiColorPrimary; - background-color: $euiColorPrimary; -} - -.timFormCheckbox__icon { - position: absolute; - top: 0; - left: 2px; -} - -.timFormTextarea { - padding: $euiSizeXS $euiSizeM; - font-size: $euiSize; - line-height: 1.5; - color: $euiColorDarkestShade; - background-color: $euiFormBackgroundColor; - border: 1px solid $euiColorLightShade; - border-radius: $euiSizeXS; - transition: border-color .1s linear; -} diff --git a/src/plugins/timelion/public/directives/_index.scss b/src/plugins/timelion/public/directives/_index.scss deleted file mode 100644 index 2a015711062a6..0000000000000 --- a/src/plugins/timelion/public/directives/_index.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import './timelion_expression_input'; -@import './cells/index'; -@import './timelion_expression_suggestions/index'; -@import './timelion_help/index'; -@import './timelion_interval/index'; -@import './saved_object_finder'; -@import './form'; diff --git a/src/plugins/timelion/public/directives/_saved_object_finder.scss b/src/plugins/timelion/public/directives/_saved_object_finder.scss deleted file mode 100644 index 55882fe78e99e..0000000000000 --- a/src/plugins/timelion/public/directives/_saved_object_finder.scss +++ /dev/null @@ -1,132 +0,0 @@ -.list-group-menu { - &.select-mode a { - outline: none; - color: tintOrShade($euiColorPrimary, 10%, 10%); - } - - .list-group-menu-item { - list-style: none; - color: tintOrShade($euiColorPrimary, 10%, 10%); - - &.active { - font-weight: bold; - background-color: $euiColorLightShade; - } - - &:hover { - background-color: tintOrShade($euiColorPrimary, 90%, 90%); - } - - li { - list-style: none; - color: tintOrShade($euiColorPrimary, 10%, 10%); - } - } -} - -saved-object-finder { - - .timSearchBar { - display: flex; - align-items: center; - } - - .timSearchBar__section { - position: relative; - margin-right: $euiSize; - flex: 1; - } - - .timSearchBar__icon { - position: absolute; - top: $euiSizeS; - left: $euiSizeS; - font-size: $euiSize; - color: $euiColorDarkShade; - } - - .timSearchBar__input { - padding: $euiSizeS $euiSizeM; - color: $euiColorDarkestShade; - background-color: $euiColorEmptyShade; - border: 1px solid $euiColorLightShade; - border-radius: $euiSizeXS; - transition: border-color .1s linear; - padding-left: $euiSizeXL; - width: 100%; - font-size: $euiSize; - } - - .timSearchBar__pagecount { - font-size: $euiSize; - color: $euiColorDarkShade; - } - - .list-sort-button { - border-top-left-radius: 0; - border-top-right-radius: 0; - border: none; - padding: $euiSizeS $euiSize; - font-weight: $euiFontWeightRegular; - background-color: $euiColorLightestShade; - margin-top: $euiSize; - } - - .li-striped { - li { - border: none; - } - - li:nth-child(even) { - background-color: $euiColorLightestShade; - } - - li:nth-child(odd) { - background-color: $euiColorEmptyShade; - } - - .paginate-heading { - font-weight: $euiFontWeightRegular; - color: $euiColorDarkestShade; - } - - .list-group-item { - padding: $euiSizeS $euiSize; - - ul { - padding: 0; - display: flex; - flex-direction: row; - - .finder-type { - margin-right: $euiSizeS; - } - } - - a { - display: block; - color: $euiColorPrimary; - - i { - color: shade($euiColorPrimary, 10%); - margin-right: $euiSizeS; - } - } - - &:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - - &.list-group-no-results p { - margin-bottom: 0; - } - } - } - - paginate { - paginate-controls { - margin: $euiSize; - } - } -} diff --git a/src/plugins/timelion/public/directives/_timelion_expression_input.scss b/src/plugins/timelion/public/directives/_timelion_expression_input.scss deleted file mode 100644 index e4294d8454c7c..0000000000000 --- a/src/plugins/timelion/public/directives/_timelion_expression_input.scss +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 1. Anchor suggestions beneath input. - * 2. Allow for option of positioning suggestions absolutely. - */ - -.timExpressionInput__container { - flex: 1 1 auto; - display: flex; - flex-direction: column; /* 1 */ - position: relative; /* 2 */ -} - -.timExpressionInput { - min-height: 70px; // Matches buttons on the right with new vertical rhythm sizing -} diff --git a/src/plugins/timelion/public/directives/cells/_cells.scss b/src/plugins/timelion/public/directives/cells/_cells.scss deleted file mode 100644 index d1e5e976fc8d2..0000000000000 --- a/src/plugins/timelion/public/directives/cells/_cells.scss +++ /dev/null @@ -1,61 +0,0 @@ -.timCell { - display: inline-block; - cursor: pointer; - position: relative; - box-sizing: border-box; - border: 2px dashed transparent; - // sass-lint:disable-block no-important - padding-left: 0 !important; - padding-right: 0 !important; - margin-bottom: $euiSizeM; - - &.active { - border-color: $euiColorLightShade; - } -} - -.timCell.running { - opacity: .5; -} - -.timCell__actions { - position: absolute; - bottom: $euiSizeXS; - left: $euiSizeXS; - - > .timCell__action, - > .timCell__id { - @include euiFontSizeXS; - font-weight: $euiFontWeightBold; - color: $euiColorMediumShade; - display: inline-block; - text-align: center; - width: $euiSizeL; - height: $euiSizeL; - border-radius: $euiSizeL / 2; - border: $euiBorderThin; - background-color: $euiColorLightestShade; - z-index: $euiZLevel1; - } - - > .timCell__action { - opacity: 0; - - &:focus { - opacity: 1; - } - - &:hover, - &:focus { - color: $euiTextColor; - border-color: $euiColorMediumShade; - background-color: $euiColorLightShade; - } - } -} - -.timCell:hover { - .timCell__action { - opacity: 1; - } -} diff --git a/src/plugins/timelion/public/directives/cells/_index.scss b/src/plugins/timelion/public/directives/cells/_index.scss deleted file mode 100644 index 8611b4d8ba1d0..0000000000000 --- a/src/plugins/timelion/public/directives/cells/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './cells'; diff --git a/src/plugins/timelion/public/directives/cells/cells.html b/src/plugins/timelion/public/directives/cells/cells.html deleted file mode 100644 index f90b85abaf920..0000000000000 --- a/src/plugins/timelion/public/directives/cells/cells.html +++ /dev/null @@ -1,52 +0,0 @@ -
- -
- -
-
-
{{$index + 1}}
- - - - -
-
- -
diff --git a/src/plugins/timelion/public/directives/cells/cells.js b/src/plugins/timelion/public/directives/cells/cells.js deleted file mode 100644 index af9e315a7d944..0000000000000 --- a/src/plugins/timelion/public/directives/cells/cells.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { move } from './collection'; -import { initTimelionGridDirective } from '../timelion_grid'; - -import html from './cells.html'; - -export function initCellsDirective(app) { - initTimelionGridDirective(app); - - app.directive('timelionCells', function () { - return { - restrict: 'E', - scope: { - sheet: '=', - state: '=', - transient: '=', - onSearch: '=', - onSelect: '=', - onRemoveSheet: '=', - }, - template: html, - link: function ($scope) { - $scope.removeCell = function (index) { - $scope.onRemoveSheet(index); - }; - - $scope.dropCell = function (item, partFrom, partTo, indexFrom, indexTo) { - move($scope.sheet, indexFrom, indexTo); - $scope.onSelect(indexTo); - }; - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/cells/collection.ts b/src/plugins/timelion/public/directives/cells/collection.ts deleted file mode 100644 index 188f00bef16ae..0000000000000 --- a/src/plugins/timelion/public/directives/cells/collection.ts +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; - -/** - * move an obj either up or down in the collection by - * injecting it either before/after the prev/next obj that - * satisfied the qualifier - * - * or, just from one index to another... - * - * @param {array} objs - the list to move the object within - * @param {number|any} obj - the object that should be moved, or the index that the object is currently at - * @param {number|boolean} below - the index to move the object to, or whether it should be moved up or down - * @param {function} qualifier - a lodash-y callback, object = _.where, string = _.pluck - * @return {array} - the objs argument - */ -export function move( - objs: any[], - obj: object | number, - below: number | boolean, - qualifier?: ((object: object, index: number) => any) | Record | string -): object[] { - const origI = _.isNumber(obj) ? obj : objs.indexOf(obj); - if (origI === -1) { - return objs; - } - - if (_.isNumber(below)) { - // move to a specific index - objs.splice(below, 0, objs.splice(origI, 1)[0]); - return objs; - } - - below = !!below; - qualifier = qualifier && _.iteratee(qualifier); - - const above = !below; - const finder = below ? _.findIndex : _.findLastIndex; - - // find the index of the next/previous obj that meets the qualifications - const targetI = finder(objs, (otherAgg, otherI) => { - if (below && otherI <= origI) { - return; - } - if (above && otherI >= origI) { - return; - } - return Boolean(_.isFunction(qualifier) && qualifier(otherAgg, otherI)); - }); - - if (targetI === -1) { - return objs; - } - - // place the obj at it's new index - objs.splice(targetI, 0, objs.splice(origI, 1)[0]); - return objs; -} diff --git a/src/plugins/timelion/public/directives/chart/chart.js b/src/plugins/timelion/public/directives/chart/chart.js deleted file mode 100644 index 8f02fb70436e7..0000000000000 --- a/src/plugins/timelion/public/directives/chart/chart.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { i18n } from '@kbn/i18n'; - -export function Chart(timelionPanels) { - return { - restrict: 'A', - scope: { - seriesList: '=chart', // The flot object, data, config and all - search: '=', // The function to execute to kick off a search - interval: '=', // Required for formatting x-axis ticks - rerenderTrigger: '=', - }, - link: function ($scope, $elem) { - let panelScope = $scope.$new(true); - - function render() { - panelScope.$destroy(); - - if (!$scope.seriesList) return; - - $scope.seriesList.render = $scope.seriesList.render || { - type: 'timechart', - }; - - const panelSchema = timelionPanels.get($scope.seriesList.render.type); - - if (!panelSchema) { - $elem.text( - i18n.translate('timelion.chart.seriesList.noSchemaWarning', { - defaultMessage: 'No such panel type: {renderType}', - values: { renderType: $scope.seriesList.render.type }, - }) - ); - return; - } - - panelScope = $scope.$new(true); - panelScope.seriesList = $scope.seriesList; - panelScope.interval = $scope.interval; - panelScope.search = $scope.search; - - panelSchema.render(panelScope, $elem); - } - - $scope.$watchGroup(['seriesList', 'rerenderTrigger'], render); - }, - }; -} diff --git a/src/plugins/timelion/public/directives/fixed_element.js b/src/plugins/timelion/public/directives/fixed_element.js deleted file mode 100644 index 4349161892367..0000000000000 --- a/src/plugins/timelion/public/directives/fixed_element.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import $ from 'jquery'; - -export function initFixedElementDirective(app) { - app.directive('fixedElementRoot', function () { - return { - restrict: 'A', - link: function ($elem) { - let fixedAt; - $(window).bind('scroll', function () { - const fixed = $('[fixed-element]', $elem); - const body = $('[fixed-element-body]', $elem); - const top = fixed.offset().top; - - if ($(window).scrollTop() > top) { - // This is a gross hack, but its better than it was. I guess - fixedAt = $(window).scrollTop(); - fixed.addClass(fixed.attr('fixed-element')); - body.addClass(fixed.attr('fixed-element-body')); - body.css({ top: fixed.height() }); - } - - if ($(window).scrollTop() < fixedAt) { - fixed.removeClass(fixed.attr('fixed-element')); - body.removeClass(fixed.attr('fixed-element-body')); - body.removeAttr('style'); - } - }); - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/fullscreen/fullscreen.html b/src/plugins/timelion/public/directives/fullscreen/fullscreen.html deleted file mode 100644 index 1ed6aa82ea3b9..0000000000000 --- a/src/plugins/timelion/public/directives/fullscreen/fullscreen.html +++ /dev/null @@ -1,14 +0,0 @@ -
-
-
- -
-
diff --git a/src/plugins/timelion/public/directives/fullscreen/fullscreen.js b/src/plugins/timelion/public/directives/fullscreen/fullscreen.js deleted file mode 100644 index 8403d861a4479..0000000000000 --- a/src/plugins/timelion/public/directives/fullscreen/fullscreen.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import html from './fullscreen.html'; - -export function initFullscreenDirective(app) { - app.directive('timelionFullscreen', function () { - return { - restrict: 'E', - scope: { - expression: '=', - series: '=', - state: '=', - transient: '=', - onSearch: '=', - }, - template: html, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/input_focus.js b/src/plugins/timelion/public/directives/input_focus.js deleted file mode 100644 index 23b8c54d623c3..0000000000000 --- a/src/plugins/timelion/public/directives/input_focus.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export function initInputFocusDirective(app) { - app.directive('inputFocus', function ($parse, $timeout) { - return { - restrict: 'A', - link: function ($scope, $elem, attrs) { - const isDisabled = attrs.disableInputFocus && $parse(attrs.disableInputFocus)($scope); - if (!isDisabled) { - $timeout(function () { - $elem.focus(); - if (attrs.inputFocus === 'select') $elem.select(); - }); - } - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/key_map.ts b/src/plugins/timelion/public/directives/key_map.ts deleted file mode 100644 index 3e28bf3d7a3d5..0000000000000 --- a/src/plugins/timelion/public/directives/key_map.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export const keyMap: { [key: number]: string } = { - 8: 'backspace', - 9: 'tab', - 13: 'enter', - 16: 'shift', - 17: 'ctrl', - 18: 'alt', - 19: 'pause', - 20: 'capsLock', - 27: 'escape', - 32: 'space', - 33: 'pageUp', - 34: 'pageDown', - 35: 'end', - 36: 'home', - 37: 'left', - 38: 'up', - 39: 'right', - 40: 'down', - 45: 'insert', - 46: 'delete', - 48: '0', - 49: '1', - 50: '2', - 51: '3', - 52: '4', - 53: '5', - 54: '6', - 55: '7', - 56: '8', - 57: '9', - 65: 'a', - 66: 'b', - 67: 'c', - 68: 'd', - 69: 'e', - 70: 'f', - 71: 'g', - 72: 'h', - 73: 'i', - 74: 'j', - 75: 'k', - 76: 'l', - 77: 'm', - 78: 'n', - 79: 'o', - 80: 'p', - 81: 'q', - 82: 'r', - 83: 's', - 84: 't', - 85: 'u', - 86: 'v', - 87: 'w', - 88: 'x', - 89: 'y', - 90: 'z', - 91: 'leftWindowKey', - 92: 'rightWindowKey', - 93: 'selectKey', - 96: '0', - 97: '1', - 98: '2', - 99: '3', - 100: '4', - 101: '5', - 102: '6', - 103: '7', - 104: '8', - 105: '9', - 106: 'multiply', - 107: 'add', - 109: 'subtract', - 110: 'period', - 111: 'divide', - 112: 'f1', - 113: 'f2', - 114: 'f3', - 115: 'f4', - 116: 'f5', - 117: 'f6', - 118: 'f7', - 119: 'f8', - 120: 'f9', - 121: 'f10', - 122: 'f11', - 123: 'f12', - 144: 'numLock', - 145: 'scrollLock', - 186: 'semiColon', - 187: 'equalSign', - 188: 'comma', - 189: 'dash', - 190: 'period', - 191: 'forwardSlash', - 192: 'graveAccent', - 219: 'openBracket', - 220: 'backSlash', - 221: 'closeBracket', - 222: 'singleQuote', - 224: 'meta', -}; diff --git a/src/plugins/timelion/public/directives/saved_object_finder.html b/src/plugins/timelion/public/directives/saved_object_finder.html deleted file mode 100644 index 1ce10efe4e0a8..0000000000000 --- a/src/plugins/timelion/public/directives/saved_object_finder.html +++ /dev/null @@ -1,112 +0,0 @@ -
-
-
- - -
- -
-

-
- - - -
-
-
-
- - - - - diff --git a/src/plugins/timelion/public/directives/saved_object_finder.js b/src/plugins/timelion/public/directives/saved_object_finder.js deleted file mode 100644 index 3bd6a2d9581f4..0000000000000 --- a/src/plugins/timelion/public/directives/saved_object_finder.js +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; -import rison from 'rison-node'; -import savedObjectFinderTemplate from './saved_object_finder.html'; -import { keyMap } from './key_map'; -import { - PaginateControlsDirectiveProvider, - PaginateDirectiveProvider, -} from '../../../kibana_legacy/public'; -import { PER_PAGE_SETTING } from '../../../saved_objects/public'; -import { VISUALIZE_ENABLE_LABS_SETTING } from '../../../visualizations/public'; - -export function initSavedObjectFinderDirective(app, savedSheetLoader, uiSettings) { - app - .directive('paginate', PaginateDirectiveProvider) - .directive('paginateControls', PaginateControlsDirectiveProvider) - .directive('savedObjectFinder', function () { - return { - restrict: 'E', - scope: { - type: '@', - // optional make-url attr, sets the userMakeUrl in our scope - userMakeUrl: '=?makeUrl', - // optional on-choose attr, sets the userOnChoose in our scope - userOnChoose: '=?onChoose', - // optional useLocalManagement attr, removes link to management section - useLocalManagement: '=?useLocalManagement', - /** - * @type {function} - an optional function. If supplied an `Add new X` button is shown - * and this function is called when clicked. - */ - onAddNew: '=', - /** - * @{type} boolean - set this to true, if you don't want the search box above the - * table to automatically gain focus once loaded - */ - disableAutoFocus: '=', - }, - template: savedObjectFinderTemplate, - controllerAs: 'finder', - controller: function ($scope, $element, $location, history) { - const self = this; - - // the text input element - const $input = $element.find('input[ng-model=filter]'); - - // The number of items to show in the list - $scope.perPage = uiSettings.get(PER_PAGE_SETTING); - - // the list that will hold the suggestions - const $list = $element.find('ul'); - - // the current filter string, used to check that returned results are still useful - let currentFilter = $scope.filter; - - // the most recently entered search/filter - let prevSearch; - - // the list of hits, used to render display - self.hits = []; - - self.service = savedSheetLoader; - self.properties = self.service.loaderProperties; - - filterResults(); - - /** - * Boolean that keeps track of whether hits are sorted ascending (true) - * or descending (false) by title - * @type {Boolean} - */ - self.isAscending = true; - - /** - * Sorts saved object finder hits either ascending or descending - * @param {Array} hits Array of saved finder object hits - * @return {Array} Array sorted either ascending or descending - */ - self.sortHits = function (hits) { - self.isAscending = !self.isAscending; - self.hits = self.isAscending - ? _.sortBy(hits, ['title']) - : _.sortBy(hits, ['title']).reverse(); - }; - - /** - * Passed the hit objects and will determine if the - * hit should have a url in the UI, returns it if so - * @return {string|null} - the url or nothing - */ - self.makeUrl = function (hit) { - if ($scope.userMakeUrl) { - return $scope.userMakeUrl(hit); - } - - if (!$scope.userOnChoose) { - return hit.url; - } - - return '#'; - }; - - self.preventClick = function ($event) { - $event.preventDefault(); - }; - - /** - * Called when a hit object is clicked, can override the - * url behavior if necessary. - */ - self.onChoose = function (hit, $event) { - if ($scope.userOnChoose) { - $scope.userOnChoose(hit, $event); - } - - const url = self.makeUrl(hit); - if (!url || url === '#' || url.charAt(0) !== '#') return; - - $event.preventDefault(); - - history.push(url.substr(1)); - }; - - $scope.$watch('filter', function (newFilter) { - // ensure that the currentFilter changes from undefined to '' - // which triggers - currentFilter = newFilter || ''; - filterResults(); - }); - - $scope.pageFirstItem = 0; - $scope.pageLastItem = 0; - $scope.onPageChanged = (page) => { - $scope.pageFirstItem = page.firstItem; - $scope.pageLastItem = page.lastItem; - }; - - //manages the state of the keyboard selector - self.selector = { - enabled: false, - index: -1, - }; - - self.getLabel = function () { - return _.words(self.properties.nouns).map(_.capitalize).join(' '); - }; - - //key handler for the filter text box - self.filterKeyDown = function ($event) { - switch (keyMap[$event.keyCode]) { - case 'enter': - if (self.hitCount !== 1) return; - const hit = self.hits[0]; - if (!hit) return; - - self.onChoose(hit, $event); - $event.preventDefault(); - break; - } - }; - - //key handler for the list items - self.hitKeyDown = function ($event, page, paginate) { - switch (keyMap[$event.keyCode]) { - case 'tab': - if (!self.selector.enabled) break; - - self.selector.index = -1; - self.selector.enabled = false; - - //if the user types shift-tab return to the textbox - //if the user types tab, set the focus to the currently selected hit. - if ($event.shiftKey) { - $input.focus(); - } else { - $list.find('li.active a').focus(); - } - - $event.preventDefault(); - break; - case 'down': - if (!self.selector.enabled) break; - - if (self.selector.index + 1 < page.length) { - self.selector.index += 1; - } - $event.preventDefault(); - break; - case 'up': - if (!self.selector.enabled) break; - - if (self.selector.index > 0) { - self.selector.index -= 1; - } - $event.preventDefault(); - break; - case 'right': - if (!self.selector.enabled) break; - - if (page.number < page.count) { - paginate.goToPage(page.number + 1); - self.selector.index = 0; - selectTopHit(); - } - $event.preventDefault(); - break; - case 'left': - if (!self.selector.enabled) break; - - if (page.number > 1) { - paginate.goToPage(page.number - 1); - self.selector.index = 0; - selectTopHit(); - } - $event.preventDefault(); - break; - case 'escape': - if (!self.selector.enabled) break; - - $input.focus(); - $event.preventDefault(); - break; - case 'enter': - if (!self.selector.enabled) break; - - const hitIndex = (page.number - 1) * paginate.perPage + self.selector.index; - const hit = self.hits[hitIndex]; - if (!hit) break; - - self.onChoose(hit, $event); - $event.preventDefault(); - break; - case 'shift': - break; - default: - $input.focus(); - break; - } - }; - - self.hitBlur = function () { - self.selector.index = -1; - self.selector.enabled = false; - }; - - self.manageObjects = function (type) { - $location.url('/management/kibana/objects?_a=' + rison.encode({ tab: type })); - }; - - self.hitCountNoun = function () { - return (self.hitCount === 1 - ? self.properties.noun - : self.properties.nouns - ).toLowerCase(); - }; - - function selectTopHit() { - setTimeout(function () { - //triggering a focus event kicks off a new angular digest cycle. - $list.find('a:first').focus(); - }, 0); - } - - function filterResults() { - if (!self.service) return; - if (!self.properties) return; - - // track the filter that we use for this search, - // but ensure that we don't search for the same - // thing twice. This is called from multiple places - // and needs to be smart about when it actually searches - const filter = currentFilter; - if (prevSearch === filter) return; - - prevSearch = filter; - - const isLabsEnabled = uiSettings.get(VISUALIZE_ENABLE_LABS_SETTING); - self.service.find(filter).then(function (hits) { - hits.hits = hits.hits.filter( - (hit) => isLabsEnabled || _.get(hit, 'type.stage') !== 'experimental' - ); - hits.total = hits.hits.length; - - // ensure that we don't display old results - // as we can't really cancel requests - if (currentFilter === filter) { - self.hitCount = hits.total; - self.hits = _.sortBy(hits.hits, ['title']); - } - }); - } - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.html b/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.html deleted file mode 100644 index a001ddc751748..0000000000000 --- a/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.html +++ /dev/null @@ -1,29 +0,0 @@ -
-
- - -
- diff --git a/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.js b/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.js deleted file mode 100644 index 865e5ea473b85..0000000000000 --- a/src/plugins/timelion/public/directives/saved_object_save_as_checkbox.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import saveObjectSaveAsCheckboxTemplate from './saved_object_save_as_checkbox.html'; - -export function initSavedObjectSaveAsCheckBoxDirective(app) { - app.directive('savedObjectSaveAsCheckBox', function () { - return { - restrict: 'E', - template: saveObjectSaveAsCheckboxTemplate, - replace: true, - scope: { - savedObject: '=', - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/timelion_expression_input.html b/src/plugins/timelion/public/directives/timelion_expression_input.html deleted file mode 100644 index 6c115118860ba..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_input.html +++ /dev/null @@ -1,41 +0,0 @@ -
- - - - -
diff --git a/src/plugins/timelion/public/directives/timelion_expression_input.js b/src/plugins/timelion/public/directives/timelion_expression_input.js deleted file mode 100644 index c29c802914987..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_input.js +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -/** - * Timelion Expression Autocompleter - * - * This directive allows users to enter multiline timelion expressions. If the user has entered - * a valid expression and then types a ".", this directive will display a list of suggestions. - * - * Users can navigate suggestions using the arrow keys. When a user selects a suggestion, it's - * inserted into the expression and the caret position is updated to be inside of the newly- - * added function's parentheses. - * - * Beneath the hood, we use a PEG grammar to validate the Timelion expression and detect if - * the caret is in a position within the expression that allows functions to be suggested. - * - * NOTE: This directive doesn't work well with contenteditable divs. Challenges include: - * - You have to replace markup with newline characters and spaces when passing the expression - * to the grammar. - * - You have to do the opposite when loading a saved expression, so that it appears correctly - * within the contenteditable (i.e. replace newlines with
markup). - * - The Range and Selection APIs ignore newlines when providing caret position, so there is - * literally no way to insert suggestions into the correct place in a multiline expression - * that has more than a single consecutive newline. - */ - -import _ from 'lodash'; -import $ from 'jquery'; -import timelionExpressionInputTemplate from './timelion_expression_input.html'; -import { - SUGGESTION_TYPE, - Suggestions, - suggest, - insertAtLocation, -} from './timelion_expression_input_helpers'; -import { comboBoxKeyCodes } from '@elastic/eui'; - -export function timelionExpInput(deps) { - return ($http, $timeout) => { - return { - restrict: 'E', - scope: { - rows: '=', - sheet: '=', - updateChart: '&', - shouldPopoverSuggestions: '@', - }, - replace: true, - template: timelionExpressionInputTemplate, - link: function (scope, elem) { - const argValueSuggestions = deps.plugins.visTypeTimelion.getArgValueSuggestions(); - const expressionInput = elem.find('[data-expression-input]'); - const functionReference = {}; - let suggestibleFunctionLocation = {}; - - scope.suggestions = new Suggestions(); - - function init() { - $http.get('../api/timelion/functions').then(function (resp) { - Object.assign(functionReference, { - byName: _.keyBy(resp.data, 'name'), - list: resp.data, - }); - }); - } - - function setCaretOffset(caretOffset) { - // Wait for Angular to update the input with the new expression and *then* we can set - // the caret position. - $timeout(() => { - expressionInput.focus(); - expressionInput[0].selectionStart = expressionInput[0].selectionEnd = caretOffset; - scope.$apply(); - }, 0); - } - - function insertSuggestionIntoExpression(suggestionIndex) { - if (scope.suggestions.isEmpty()) { - return; - } - - const { min, max } = suggestibleFunctionLocation; - let insertedValue; - let insertPositionMinOffset = 0; - - switch (scope.suggestions.type) { - case SUGGESTION_TYPE.FUNCTIONS: { - // Position the caret inside of the function parentheses. - insertedValue = `${scope.suggestions.list[suggestionIndex].name}()`; - - // min advanced one to not replace function '.' - insertPositionMinOffset = 1; - break; - } - case SUGGESTION_TYPE.ARGUMENTS: { - // Position the caret after the '=' - insertedValue = `${scope.suggestions.list[suggestionIndex].name}=`; - break; - } - case SUGGESTION_TYPE.ARGUMENT_VALUE: { - // Position the caret after the argument value - insertedValue = `${scope.suggestions.list[suggestionIndex].name}`; - break; - } - } - - const updatedExpression = insertAtLocation( - insertedValue, - scope.sheet, - min + insertPositionMinOffset, - max - ); - scope.sheet = updatedExpression; - - const newCaretOffset = min + insertedValue.length; - setCaretOffset(newCaretOffset); - } - - function scrollToSuggestionAt(index) { - // We don't cache these because the list changes based on user input. - const suggestionsList = $('[data-suggestions-list]'); - const suggestionListItem = $('[data-suggestion-list-item]')[index]; - // Scroll to the position of the item relative to the list, not to the window. - suggestionsList.scrollTop(suggestionListItem.offsetTop - suggestionsList[0].offsetTop); - } - - function getCursorPosition() { - if (expressionInput.length) { - return expressionInput[0].selectionStart; - } - return null; - } - - async function getSuggestions() { - const suggestions = await suggest( - scope.sheet, - functionReference.list, - getCursorPosition(), - argValueSuggestions - ); - - // We're using ES6 Promises, not $q, so we have to wrap this in $apply. - scope.$apply(() => { - if (suggestions) { - scope.suggestions.setList(suggestions.list, suggestions.type); - scope.suggestions.show(); - suggestibleFunctionLocation = suggestions.location; - $timeout(() => { - const suggestionsList = $('[data-suggestions-list]'); - suggestionsList.scrollTop(0); - }, 0); - return; - } - - suggestibleFunctionLocation = undefined; - scope.suggestions.reset(); - }); - } - - function isNavigationalKey(keyCode) { - const keyCodes = _.values(comboBoxKeyCodes); - return keyCodes.includes(keyCode); - } - - scope.onFocusInput = () => { - // Wait for the caret position of the input to update and then we can get suggestions - // (which depends on the caret position). - $timeout(getSuggestions, 0); - }; - - scope.onBlurInput = () => { - scope.suggestions.hide(); - }; - - scope.onKeyDownInput = (e) => { - // If we've pressed any non-navigational keys, then the user has typed something and we - // can exit early without doing any navigation. The keyup handler will pull up suggestions. - if (!isNavigationalKey(e.keyCode)) { - return; - } - - switch (e.keyCode) { - case comboBoxKeyCodes.UP: - if (scope.suggestions.isVisible) { - // Up and down keys navigate through suggestions. - e.preventDefault(); - scope.suggestions.stepForward(); - scrollToSuggestionAt(scope.suggestions.index); - } - break; - - case comboBoxKeyCodes.DOWN: - if (scope.suggestions.isVisible) { - // Up and down keys navigate through suggestions. - e.preventDefault(); - scope.suggestions.stepBackward(); - scrollToSuggestionAt(scope.suggestions.index); - } - break; - - case comboBoxKeyCodes.TAB: - // If there are no suggestions or none is selected, the user tabs to the next input. - if (scope.suggestions.isEmpty() || scope.suggestions.index < 0) { - // Before letting the tab be handled to focus the next element - // we need to hide the suggestions, otherwise it will focus these - // instead of the time interval select. - scope.suggestions.hide(); - return; - } - - // If we have suggestions, complete the selected one. - e.preventDefault(); - insertSuggestionIntoExpression(scope.suggestions.index); - break; - - case comboBoxKeyCodes.ENTER: - if (e.metaKey || e.ctrlKey) { - // Re-render the chart when the user hits CMD+ENTER. - e.preventDefault(); - scope.updateChart(); - } else if (!scope.suggestions.isEmpty()) { - // If the suggestions are open, complete the expression with the suggestion. - e.preventDefault(); - insertSuggestionIntoExpression(scope.suggestions.index); - } - break; - - case comboBoxKeyCodes.ESCAPE: - e.preventDefault(); - scope.suggestions.hide(); - break; - } - }; - - scope.onKeyUpInput = (e) => { - // If the user isn't navigating, then we should update the suggestions based on their input. - if (!isNavigationalKey(e.keyCode)) { - getSuggestions(); - } - }; - - scope.onClickExpression = () => { - getSuggestions(); - }; - - scope.onClickSuggestion = (index) => { - insertSuggestionIntoExpression(index); - }; - - scope.getActiveSuggestionId = () => { - if (scope.suggestions.isVisible && scope.suggestions.index > -1) { - return `timelionSuggestion${scope.suggestions.index}`; - } - return ''; - }; - - init(); - }, - }; - }; -} diff --git a/src/plugins/timelion/public/directives/timelion_expression_input_helpers.js b/src/plugins/timelion/public/directives/timelion_expression_input_helpers.js deleted file mode 100644 index 0bc5897c49d6f..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_input_helpers.js +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; -import { _LEGACY_ as visTypeTimelion } from '../../../vis_type_timelion/public'; - -export const SUGGESTION_TYPE = { - ARGUMENTS: 'arguments', - ARGUMENT_VALUE: 'argument_value', - FUNCTIONS: 'functions', -}; - -export class Suggestions { - constructor() { - this.reset(); - } - - reset() { - this.index = -1; - this.list = []; - this.type = null; - this.isVisible = false; - } - - setList(list, type) { - this.list = list.sort((a, b) => { - if (a.name < b.name) { - return -1; - } - if (a.name > b.name) { - return 1; - } - // names must be equal - return 0; - }); - this.type = type; - - // Only try to position index inside of list range, when it was already focused - // beforehand (i.e. not -1) - if (this.index > -1) { - // We may get a shorter list than the one we have now, so we need to make sure our index doesn't - // fall outside of the new list's range. - this.index = Math.max(0, Math.min(this.index, this.list.length - 1)); - } - } - - getCount() { - return this.list.length; - } - - isEmpty() { - return this.list.length === 0; - } - - show() { - this.isVisible = true; - } - - hide() { - this.isVisible = false; - } - - stepForward() { - if (this.index > 0) { - this.index -= 1; - } - } - - stepBackward() { - if (this.index < this.list.length - 1) { - this.index += 1; - } - } -} - -function inLocation(cursorPosition, location) { - return cursorPosition >= location.min && cursorPosition <= location.max; -} - -function getArgumentsHelp(functionHelp, functionArgs = []) { - if (!functionHelp) { - return []; - } - - // Do not provide 'inputSeries' as argument suggestion for chainable functions - const argsHelp = functionHelp.chainable ? functionHelp.args.slice(1) : functionHelp.args.slice(0); - - // ignore arguments that are already provided in function declaration - const functionArgNames = functionArgs.map((arg) => { - return arg.name; - }); - return argsHelp.filter((arg) => { - return !functionArgNames.includes(arg.name); - }); -} - -async function extractSuggestionsFromParsedResult( - result, - cursorPosition, - functionList, - argValueSuggestions -) { - const activeFunc = result.functions.find((func) => { - return cursorPosition >= func.location.min && cursorPosition < func.location.max; - }); - - if (!activeFunc) { - return; - } - - const functionHelp = functionList.find((func) => { - return func.name === activeFunc.function; - }); - - // return function suggestion when cursor is outside of parentheses - // location range includes '.', function name, and '('. - const openParen = activeFunc.location.min + activeFunc.function.length + 2; - if (cursorPosition < openParen) { - return { list: [functionHelp], location: activeFunc.location, type: SUGGESTION_TYPE.FUNCTIONS }; - } - - // return argument value suggestions when cursor is inside argument value - const activeArg = activeFunc.arguments.find((argument) => { - return inLocation(cursorPosition, argument.location); - }); - if ( - activeArg && - activeArg.type === 'namedArg' && - inLocation(cursorPosition, activeArg.value.location) - ) { - const { function: functionName, arguments: functionArgs } = activeFunc; - - const { - name: argName, - value: { text: partialInput }, - } = activeArg; - - let valueSuggestions; - if (argValueSuggestions.hasDynamicSuggestionsForArgument(functionName, argName)) { - valueSuggestions = await argValueSuggestions.getDynamicSuggestionsForArgument( - functionName, - argName, - functionArgs, - partialInput - ); - } else { - const { suggestions: staticSuggestions } = functionHelp.args.find((arg) => { - return arg.name === activeArg.name; - }); - valueSuggestions = argValueSuggestions.getStaticSuggestionsForInput( - partialInput, - staticSuggestions - ); - } - return { - list: valueSuggestions, - location: activeArg.value.location, - type: SUGGESTION_TYPE.ARGUMENT_VALUE, - }; - } - - // return argument suggestions - const argsHelp = getArgumentsHelp(functionHelp, activeFunc.arguments); - const argumentSuggestions = argsHelp.filter((arg) => { - if (_.get(activeArg, 'type') === 'namedArg') { - return _.startsWith(arg.name, activeArg.name); - } else if (activeArg) { - return _.startsWith(arg.name, activeArg.text); - } - return true; - }); - const location = activeArg ? activeArg.location : { min: cursorPosition, max: cursorPosition }; - return { list: argumentSuggestions, location: location, type: SUGGESTION_TYPE.ARGUMENTS }; -} - -export async function suggest(expression, functionList, cursorPosition, argValueSuggestions) { - try { - const result = await visTypeTimelion.parseTimelionExpressionAsync(expression); - return await extractSuggestionsFromParsedResult( - result, - cursorPosition, - functionList, - argValueSuggestions - ); - } catch (e) { - let message; - try { - // The grammar will throw an error containing a message if the expression is formatted - // correctly and is prepared to accept suggestions. If the expression is not formatted - // correctly the grammar will just throw a regular PEG SyntaxError, and this JSON.parse - // attempt will throw an error. - message = JSON.parse(e.message); - } catch (e) { - // The expression isn't correctly formatted, so JSON.parse threw an error. - return; - } - - switch (message.type) { - case 'incompleteFunction': { - let list; - if (message.function) { - // The user has start typing a function name, so we'll filter the list down to only - // possible matches. - list = functionList.filter((func) => _.startsWith(func.name, message.function)); - } else { - // The user hasn't typed anything yet, so we'll just return the entire list. - list = functionList; - } - return { list, location: message.location, type: SUGGESTION_TYPE.FUNCTIONS }; - } - case 'incompleteArgument': { - const { currentFunction: functionName, currentArgs: functionArgs } = message; - const functionHelp = functionList.find((func) => func.name === functionName); - return { - list: getArgumentsHelp(functionHelp, functionArgs), - location: message.location, - type: SUGGESTION_TYPE.ARGUMENTS, - }; - } - case 'incompleteArgumentValue': { - const { name: argName, currentFunction: functionName, currentArgs: functionArgs } = message; - let valueSuggestions = []; - if (argValueSuggestions.hasDynamicSuggestionsForArgument(functionName, argName)) { - valueSuggestions = await argValueSuggestions.getDynamicSuggestionsForArgument( - functionName, - argName, - functionArgs - ); - } else { - const functionHelp = functionList.find((func) => func.name === functionName); - if (functionHelp) { - const argHelp = functionHelp.args.find((arg) => arg.name === argName); - if (argHelp && argHelp.suggestions) { - valueSuggestions = argHelp.suggestions; - } - } - } - return { - list: valueSuggestions, - location: { min: cursorPosition, max: cursorPosition }, - type: SUGGESTION_TYPE.ARGUMENT_VALUE, - }; - } - } - } -} - -export function insertAtLocation( - valueToInsert, - destination, - replacementRangeStart, - replacementRangeEnd -) { - // Insert the value at a location caret within the destination. - const prefix = destination.slice(0, replacementRangeStart); - const suffix = destination.slice(replacementRangeEnd, destination.length); - const result = `${prefix}${valueToInsert}${suffix}`; - return result; -} diff --git a/src/plugins/timelion/public/directives/timelion_expression_suggestions/_index.scss b/src/plugins/timelion/public/directives/timelion_expression_suggestions/_index.scss deleted file mode 100644 index 6fd0098aea68e..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_suggestions/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './timelion_expression_suggestions'; diff --git a/src/plugins/timelion/public/directives/timelion_expression_suggestions/_timelion_expression_suggestions.scss b/src/plugins/timelion/public/directives/timelion_expression_suggestions/_timelion_expression_suggestions.scss deleted file mode 100644 index 4bf6ba24108d2..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_suggestions/_timelion_expression_suggestions.scss +++ /dev/null @@ -1,36 +0,0 @@ -.timSuggestions { - @include euiBottomShadowMedium; - background-color: $euiColorLightestShade; - color: $euiTextColor; - border: $euiBorderThin; - // sass-lint:disable-block no-important - border-radius: 0 0 $euiBorderRadius $euiBorderRadius !important; - z-index: $euiZLevel9; - max-height: $euiSizeXL * 10; - overflow-y: auto; - - &.timSuggestions-isPopover { - position: absolute; - top: 100%; - } -} - -.timSuggestions__item { - border-bottom: $euiBorderThin; - padding: $euiSizeXS $euiSizeL; - - &:hover, - &.active { - background-color: $euiColorLightShade; - } -} - -.timSuggestions__details { - background-color: $euiColorLightestShade; - padding: $euiSizeM; - border-radius: $euiBorderRadius; - - > table { - margin-bottom: 0; - } -} diff --git a/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.html b/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.html deleted file mode 100644 index ddb9f21615aee..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.html +++ /dev/null @@ -1,109 +0,0 @@ -
-
- -
- -
-

- .{{suggestion.name}}() - - - - -

- -
-
- - - {{arg.name}}=({{arg.types.join(' | ')}}) - , - -
- -
- - - - - - - - - - - -
{{arg.name}}{{arg.types.join(', ')}}{{arg.help}}
-
-
-
- -
-

- {{suggestion.name}}= - - {{suggestion.help}} - -

-
- Accepts: - {{suggestion.types.join(', ')}} -
-
- -
-

- {{suggestion.name}} - - {{suggestion.help}} - -

-
- -
-
-
diff --git a/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.js b/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.js deleted file mode 100644 index cce0f17f4ef1a..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_expression_suggestions/timelion_expression_suggestions.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import template from './timelion_expression_suggestions.html'; - -export function TimelionExpressionSuggestions() { - return { - restrict: 'E', - scope: { - suggestions: '=', - suggestionsType: '=', - selectedIndex: '=', - onClickSuggestion: '&', - shouldPopover: '=', - }, - replace: true, - template, - link: function (scope) { - // This will prevent the expression input from losing focus. - scope.onMouseDown = (e) => e.preventDefault(); - }, - }; -} diff --git a/src/plugins/timelion/public/directives/timelion_grid.js b/src/plugins/timelion/public/directives/timelion_grid.js deleted file mode 100644 index cb55dd6b8e110..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_grid.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import $ from 'jquery'; - -export function initTimelionGridDirective(app) { - app.directive('timelionGrid', function () { - return { - restrict: 'A', - scope: { - timelionGridRows: '=', - timelionGridColumns: '=', - }, - link: function ($scope, $elem) { - function init() { - setDimensions(); - } - - $scope.$on('$destroy', function () { - $(window).off('resize'); //remove the handler added earlier - }); - - $(window).resize(function () { - setDimensions(); - }); - - $scope.$watchMulti(['timelionGridColumns', 'timelionGridRows'], function () { - setDimensions(); - }); - - function setDimensions() { - const borderSize = 2; - const headerSize = 45 + 35 + 28 + 20 * 2; // chrome + subnav + buttons + (container padding) - const verticalPadding = 10; - - if ($scope.timelionGridColumns != null) { - $elem.width($elem.parent().width() / $scope.timelionGridColumns - borderSize * 2); - } - - if ($scope.timelionGridRows != null) { - $elem.height( - ($(window).height() - headerSize) / $scope.timelionGridRows - - (verticalPadding + borderSize * 2) - ); - } - } - - init(); - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/timelion_help/_index.scss b/src/plugins/timelion/public/directives/timelion_help/_index.scss deleted file mode 100644 index 4228e56180066..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_help/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './timelion_help'; diff --git a/src/plugins/timelion/public/directives/timelion_help/_timelion_help.scss b/src/plugins/timelion/public/directives/timelion_help/_timelion_help.scss deleted file mode 100644 index 1f8551116aab0..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_help/_timelion_help.scss +++ /dev/null @@ -1,33 +0,0 @@ -.timHelp { - // EUITODO: Make .euiText > code background transparent - code { - background-color: transparentize($euiTextColor, .9); - } -} - -.timHelp__buttons { - display: flex; - justify-content: space-between; -} - -.timHelp__functions { - height: $euiSizeXL * 10; - overflow-y: auto; -} - -.timHelp__links { - color: $euiColorPrimary; - - &:hover { - text-decoration: underline; - } -} - -/** - * 1. Override bootstrap .table styles. - */ -.timHelp__functionsTableRow:hover, -.timHelp__functionDetailsTable { - // sass-lint:disable-block no-important - background-color: $euiColorLightestShade !important; /* 1 */ -} diff --git a/src/plugins/timelion/public/directives/timelion_help/timelion_help.html b/src/plugins/timelion/public/directives/timelion_help/timelion_help.html deleted file mode 100644 index 4c4fdfe4faf51..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_help/timelion_help.html +++ /dev/null @@ -1,741 +0,0 @@ -
-
-
-

-

-

- - . -

-
-
- - - - - - -
-
-
-
-
-

-

-

-
-
- - - - - - - -
-
-
-
-

-

- - - -

-

-
    -
  • - -

    - - - - - - -

    -
  • -
  • - -

    -
  • -
-

-
-
- - - - - - -
-
-
-
-
-

-

-

- - - -

-

-

-

-

- - - -

-
-
- - - - - - -
-
- -
-
-

-

-

-

- - - - - - - - - - - - - - - - - -
.es(*), .es(US)
.es(*).color(#f66), .es(US).bars(1)
- .es(*).color(#f66).lines(fill=3), - .es(US).bars(1).points(radius=3, weight=1) -
(.es(*), .es(GB)).points()
-

- - . -

-
-
- - - - - - -
-
-
-
-

-

-

-

-

-

-

- - - -

-
-
- - - - - - - -
-
-
-
-

- - - - -
-
- - . -
- -
- - - - - - - - -
.{{function.name}}(){{function.help}}
-
- - - - - - - - - - - -
{{arg.name}}{{arg.types.join(', ')}}{{arg.help}}
-
- -
-
-
-
-
- -
- -
-
-
-
-
Ctrl/Cmd + Enter
-
-
- - -
-
-
- -
-
-
-
Enter/Tab
-
-
Esc
-
-
-
-
diff --git a/src/plugins/timelion/public/directives/timelion_help/timelion_help.js b/src/plugins/timelion/public/directives/timelion_help/timelion_help.js deleted file mode 100644 index ee518a8bce75c..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_help/timelion_help.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import template from './timelion_help.html'; -import { i18n } from '@kbn/i18n'; -import _ from 'lodash'; -import moment from 'moment'; - -export function initTimelionHelpDirective(app) { - app.directive('timelionHelp', function ($http) { - return { - restrict: 'E', - template, - controller: function ($scope) { - $scope.functions = { - list: [], - details: null, - }; - - $scope.activeTab = 'funcref'; - $scope.activateTab = function (tabName) { - $scope.activeTab = tabName; - }; - - function init() { - $scope.es = { - invalidCount: 0, - }; - - $scope.translations = { - nextButtonLabel: i18n.translate('timelion.help.nextPageButtonLabel', { - defaultMessage: 'Next', - }), - previousButtonLabel: i18n.translate('timelion.help.previousPageButtonLabel', { - defaultMessage: 'Previous', - }), - dontShowHelpButtonLabel: i18n.translate('timelion.help.dontShowHelpButtonLabel', { - defaultMessage: `Don't show this again`, - }), - strongNextText: i18n.translate('timelion.help.welcome.content.strongNextText', { - defaultMessage: 'Next', - }), - emphasizedEverythingText: i18n.translate( - 'timelion.help.welcome.content.emphasizedEverythingText', - { - defaultMessage: 'everything', - } - ), - notValidAdvancedSettingsPath: i18n.translate( - 'timelion.help.configuration.notValid.advancedSettingsPathText', - { - defaultMessage: 'Management / Kibana / Advanced Settings', - } - ), - validAdvancedSettingsPath: i18n.translate( - 'timelion.help.configuration.valid.advancedSettingsPathText', - { - defaultMessage: 'Management/Kibana/Advanced Settings', - } - ), - esAsteriskQueryDescription: i18n.translate( - 'timelion.help.querying.esAsteriskQueryDescriptionText', - { - defaultMessage: 'hey Elasticsearch, find everything in my default index', - } - ), - esIndexQueryDescription: i18n.translate( - 'timelion.help.querying.esIndexQueryDescriptionText', - { - defaultMessage: 'use * as the q (query) for the logstash-* index', - } - ), - strongAddText: i18n.translate('timelion.help.expressions.strongAddText', { - defaultMessage: 'Add', - }), - twoExpressionsDescriptionTitle: i18n.translate( - 'timelion.help.expressions.examples.twoExpressionsDescriptionTitle', - { - defaultMessage: 'Double the fun.', - } - ), - customStylingDescriptionTitle: i18n.translate( - 'timelion.help.expressions.examples.customStylingDescriptionTitle', - { - defaultMessage: 'Custom styling.', - } - ), - namedArgumentsDescriptionTitle: i18n.translate( - 'timelion.help.expressions.examples.namedArgumentsDescriptionTitle', - { - defaultMessage: 'Named arguments.', - } - ), - groupedExpressionsDescriptionTitle: i18n.translate( - 'timelion.help.expressions.examples.groupedExpressionsDescriptionTitle', - { - defaultMessage: 'Grouped expressions.', - } - ), - }; - - getFunctions(); - checkElasticsearch(); - } - - function getFunctions() { - return $http.get('../api/timelion/functions').then(function (resp) { - $scope.functions.list = resp.data; - }); - } - $scope.recheckElasticsearch = function () { - $scope.es.valid = null; - checkElasticsearch().then(function (valid) { - if (!valid) $scope.es.invalidCount++; - }); - }; - - function checkElasticsearch() { - return $http.get('../api/timelion/validate/es').then(function (resp) { - if (resp.data.ok) { - $scope.es.valid = true; - $scope.es.stats = { - min: moment(resp.data.min).format('LLL'), - max: moment(resp.data.max).format('LLL'), - field: resp.data.field, - }; - } else { - $scope.es.valid = false; - $scope.es.invalidReason = (function () { - try { - const esResp = JSON.parse(resp.data.resp.response); - return _.get(esResp, 'error.root_cause[0].reason'); - } catch (e) { - if (_.get(resp, 'data.resp.message')) return _.get(resp, 'data.resp.message'); - if (_.get(resp, 'data.resp.output.payload.message')) - return _.get(resp, 'data.resp.output.payload.message'); - return i18n.translate('timelion.help.unknownErrorMessage', { - defaultMessage: 'Unknown error', - }); - } - })(); - } - return $scope.es.valid; - }); - } - init(); - }, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/timelion_interval/_index.scss b/src/plugins/timelion/public/directives/timelion_interval/_index.scss deleted file mode 100644 index 2a201f9b35a4d..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_interval/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './timelion_interval'; diff --git a/src/plugins/timelion/public/directives/timelion_interval/_timelion_interval.scss b/src/plugins/timelion/public/directives/timelion_interval/_timelion_interval.scss deleted file mode 100644 index 7ce09155cafd8..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_interval/_timelion_interval.scss +++ /dev/null @@ -1,30 +0,0 @@ -timelion-interval { - display: flex; -} - -.timInterval__input { - width: $euiSizeXL * 2; - padding: $euiSizeXS $euiSizeM; - color: $euiColorDarkestShade; - border: 1px solid $euiColorLightShade; - border-radius: $euiSizeXS; - transition: border-color .1s linear; - font-size: 14px; -} - -.timInterval__input--compact { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.timInterval__presets { - width: $euiSizeXL * 3; -} - -.timInterval__presets--compact { - width: $euiSizeXL * 1; - padding-left: 0; - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} diff --git a/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.html b/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.html deleted file mode 100644 index 49009355e49f4..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.html +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.js b/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.js deleted file mode 100644 index 55f50fff132eb..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_interval/timelion_interval.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; -import $ from 'jquery'; -import template from './timelion_interval.html'; - -export function TimelionInterval($timeout) { - return { - restrict: 'E', - scope: { - // The interval model - model: '=', - changeInterval: '=', - }, - template, - link: function ($scope, $elem) { - $scope.intervalOptions = ['auto', '1s', '1m', '1h', '1d', '1w', '1M', '1y', 'other']; - $scope.intervalLabels = { - auto: 'auto', - '1s': '1 second', - '1m': '1 minute', - '1h': '1 hour', - '1d': '1 day', - '1w': '1 week', - '1M': '1 month', - '1y': '1 year', - other: 'other', - }; - - $scope.$watch('model', function (newVal, oldVal) { - // Only run this on initialization - if (newVal !== oldVal || oldVal == null) return; - - if (_.includes($scope.intervalOptions, newVal)) { - $scope.interval = newVal; - } else { - $scope.interval = 'other'; - } - - if (newVal !== 'other') { - $scope.otherInterval = newVal; - } - }); - - $scope.$watch('interval', function (newVal, oldVal) { - if (newVal === oldVal || $scope.model === newVal) return; - - if (newVal === 'other') { - $scope.otherInterval = oldVal; - $scope.changeInterval($scope.otherInterval); - $timeout(function () { - $('input', $elem).select(); - }, 0); - } else { - $scope.otherInterval = $scope.interval; - $scope.changeInterval($scope.interval); - } - }); - - $scope.$watch('otherInterval', function (newVal, oldVal) { - if (newVal === oldVal || $scope.model === newVal) return; - $scope.changeInterval(newVal); - }); - }, - }; -} diff --git a/src/plugins/timelion/public/directives/timelion_load_sheet.js b/src/plugins/timelion/public/directives/timelion_load_sheet.js deleted file mode 100644 index 83b8b4c2e262b..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_load_sheet.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import template from '../partials/load_sheet.html'; - -export function initTimelionLoadSheetDirective(app) { - app.directive('timelionLoad', function () { - return { - replace: true, - restrict: 'E', - template, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/timelion_options_sheet.js b/src/plugins/timelion/public/directives/timelion_options_sheet.js deleted file mode 100644 index b3560111d4152..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_options_sheet.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import template from '../partials/sheet_options.html'; - -export function initTimelionOptionsSheetDirective(app) { - app.directive('timelionOptions', function () { - return { - replace: true, - restrict: 'E', - template, - }; - }); -} diff --git a/src/plugins/timelion/public/directives/timelion_save_sheet.js b/src/plugins/timelion/public/directives/timelion_save_sheet.js deleted file mode 100644 index 40289b1bb8353..0000000000000 --- a/src/plugins/timelion/public/directives/timelion_save_sheet.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import saveTemplate from '../partials/save_sheet.html'; - -export function initTimelionSaveSheetDirective(app) { - app.directive('timelionSave', function () { - return { - replace: true, - restrict: 'E', - template: saveTemplate, - }; - }); -} diff --git a/src/plugins/timelion/public/index.html b/src/plugins/timelion/public/index.html deleted file mode 100644 index 3fb518e81e882..0000000000000 --- a/src/plugins/timelion/public/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - -
- - - - - -
- -
-
- -
-
- -
- -
- - - -
-
- -
- - - -
-
-
- - diff --git a/src/plugins/timelion/public/index.scss b/src/plugins/timelion/public/index.scss deleted file mode 100644 index 7a4259b2a17c8..0000000000000 --- a/src/plugins/timelion/public/index.scss +++ /dev/null @@ -1,18 +0,0 @@ -/* Timelion plugin styles */ - -// Prefix all styles with "tim" to avoid conflicts. -// Examples -// timChart -// timChart__legend -// timChart__legend--small -// timChart__legend-isLoading - -@import './app'; -@import './base'; -@import './directives/index'; - -// these styles is needed to be loaded here explicitly if the timelion visualization was not opened in browser -// styles for timelion visualization are lazy loaded only while a vis is opened -// this will duplicate styles only if both Timelion app and timelion visualization are loaded -// could be left here as it is since the Timelion app is deprecated -@import '../../vis_type_timelion/public/legacy/timelion_vis.scss'; diff --git a/src/plugins/timelion/public/index.ts b/src/plugins/timelion/public/index.ts deleted file mode 100644 index 866d8a4ad20a2..0000000000000 --- a/src/plugins/timelion/public/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { PluginInitializerContext } from 'kibana/public'; -import { TimelionPlugin as Plugin } from './plugin'; - -export function plugin(initializerContext: PluginInitializerContext) { - return new Plugin(initializerContext); -} diff --git a/src/plugins/timelion/public/lib/observe_resize.js b/src/plugins/timelion/public/lib/observe_resize.js deleted file mode 100644 index d2902a59821c3..0000000000000 --- a/src/plugins/timelion/public/lib/observe_resize.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export default function ($elem, fn, frequency) { - frequency = frequency || 500; - let currentHeight = $elem.height(); - let currentWidth = $elem.width(); - - let timeout; - - function checkLoop() { - timeout = setTimeout(function () { - if (currentHeight !== $elem.height() || currentWidth !== $elem.width()) { - currentHeight = $elem.height(); - currentWidth = $elem.width(); - - if (currentWidth > 0 && currentWidth > 0) fn(); - } - checkLoop(); - }, frequency); - } - - checkLoop(); - - return function () { - clearTimeout(timeout); - }; -} diff --git a/src/plugins/timelion/public/panels/panel.ts b/src/plugins/timelion/public/panels/panel.ts deleted file mode 100644 index 333634976eba1..0000000000000 --- a/src/plugins/timelion/public/panels/panel.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { i18n } from '@kbn/i18n'; - -interface PanelConfig { - help?: string; - render?: Function; -} - -export class Panel { - name: string; - help: string; - render: Function | undefined; - - constructor(name: string, config: PanelConfig) { - this.name = name; - this.help = config.help || ''; - this.render = config.render; - - if (!config.render) { - throw new Error( - i18n.translate('timelion.panels.noRenderFunctionErrorMessage', { - defaultMessage: 'Panel must have a rendering function', - }) - ); - } - } -} diff --git a/src/plugins/timelion/public/panels/timechart/schema.ts b/src/plugins/timelion/public/panels/timechart/schema.ts deleted file mode 100644 index dc26adc6ea5f5..0000000000000 --- a/src/plugins/timelion/public/panels/timechart/schema.ts +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import _ from 'lodash'; -import $ from 'jquery'; -import moment from 'moment-timezone'; -// @ts-ignore -import observeResize from '../../lib/observe_resize'; -import { _LEGACY_ as visTypeTimelion } from '../../../../vis_type_timelion/public'; -import { TimelionVisualizationDependencies } from '../../application'; - -const DEBOUNCE_DELAY = 50; - -export function timechartFn(dependencies: TimelionVisualizationDependencies) { - const { - $rootScope, - $compile, - uiSettings, - data: { - query: { timefilter }, - }, - } = dependencies; - - return function () { - return { - help: 'Draw a timeseries chart', - render($scope: any, $elem: any) { - const template = '
'; - const formatters = visTypeTimelion.tickFormatters() as any; - const getxAxisFormatter = visTypeTimelion.xaxisFormatterProvider(uiSettings); - const generateTicks = visTypeTimelion.generateTicksProvider(); - - // TODO: I wonder if we should supply our own moment that sets this every time? - // could just use angular's injection to provide a moment service? - moment.tz.setDefault(uiSettings.get('dateFormat:tz')); - - const render = $scope.seriesList.render || {}; - - $scope.chart = $scope.seriesList.list; - $scope.interval = $scope.interval; - $scope.search = $scope.search || _.noop; - - let legendValueNumbers: any; - let legendCaption: any; - const debouncedSetLegendNumbers = _.debounce(setLegendNumbers, DEBOUNCE_DELAY, { - maxWait: DEBOUNCE_DELAY, - leading: true, - trailing: false, - }); - // ensure legend is the same height with or without a caption so legend items do not move around - const emptyCaption = '
'; - - const defaultOptions = { - xaxis: { - mode: 'time', - tickLength: 5, - timezone: 'browser', - }, - selection: { - mode: 'x', - color: '#ccc', - }, - crosshair: { - mode: 'x', - color: '#C66', - lineWidth: 2, - }, - grid: { - show: render.grid, - borderWidth: 0, - borderColor: null, - margin: 10, - hoverable: true, - autoHighlight: false, - }, - legend: { - backgroundColor: 'rgb(255,255,255,0)', - position: 'nw', - labelBoxBorderColor: 'rgb(255,255,255,0)', - labelFormatter(label: any, series: any) { - const wrapperSpan = document.createElement('span'); - const labelSpan = document.createElement('span'); - const numberSpan = document.createElement('span'); - - wrapperSpan.setAttribute('class', 'ngLegendValue'); - wrapperSpan.setAttribute('kbn-accessible-click', ''); - wrapperSpan.setAttribute('ng-click', `toggleSeries(${series._id})`); - wrapperSpan.setAttribute('ng-focus', `focusSeries(${series._id})`); - wrapperSpan.setAttribute('ng-mouseover', `highlightSeries(${series._id})`); - - labelSpan.setAttribute('ng-non-bindable', ''); - labelSpan.appendChild(document.createTextNode(label)); - numberSpan.setAttribute('class', 'ngLegendValueNumber'); - - wrapperSpan.appendChild(labelSpan); - wrapperSpan.appendChild(numberSpan); - - return wrapperSpan.outerHTML; - }, - }, - colors: [ - '#01A4A4', - '#C66', - '#D0D102', - '#616161', - '#00A1CB', - '#32742C', - '#F18D05', - '#113F8C', - '#61AE24', - '#D70060', - ], - }; - - const originalColorMap = new Map(); - $scope.chart.forEach((series: any, seriesIndex: any) => { - if (!series.color) { - const colorIndex = seriesIndex % defaultOptions.colors.length; - series.color = defaultOptions.colors[colorIndex]; - } - originalColorMap.set(series, series.color); - }); - - let highlightedSeries: any; - let focusedSeries: any; - function unhighlightSeries() { - if (highlightedSeries === null) { - return; - } - - highlightedSeries = null; - focusedSeries = null; - $scope.chart.forEach((series: any) => { - series.color = originalColorMap.get(series); // reset the colors - }); - drawPlot($scope.chart); - } - $scope.highlightSeries = _.debounce(function (id: any) { - if (highlightedSeries === id) { - return; - } - - highlightedSeries = id; - $scope.chart.forEach((series: any, seriesIndex: any) => { - if (seriesIndex !== id) { - series.color = 'rgba(128,128,128,0.1)'; // mark as grey - } else { - series.color = originalColorMap.get(series); // color it like it was - } - }); - drawPlot($scope.chart); - }, DEBOUNCE_DELAY); - $scope.focusSeries = function (id: any) { - focusedSeries = id; - $scope.highlightSeries(id); - }; - - $scope.toggleSeries = function (id: any) { - const series = $scope.chart[id]; - series._hide = !series._hide; - drawPlot($scope.chart); - }; - - const cancelResize = observeResize($elem, function () { - drawPlot($scope.chart); - }); - - $scope.$on('$destroy', function () { - cancelResize(); - $elem.off('plothover'); - $elem.off('plotselected'); - $elem.off('mouseleave'); - }); - - $elem.on('plothover', function (event: any, pos: any, item: any) { - $rootScope.$broadcast('timelionPlotHover', event, pos, item); - }); - - $elem.on('plotselected', function (event: any, ranges: any) { - timefilter.timefilter.setTime({ - from: moment(ranges.xaxis.from), - to: moment(ranges.xaxis.to), - }); - }); - - $elem.on('mouseleave', function () { - $rootScope.$broadcast('timelionPlotLeave'); - }); - - $scope.$on('timelionPlotHover', function (angularEvent: any, flotEvent: any, pos: any) { - if (!$scope.plot) return; - $scope.plot.setCrosshair(pos); - debouncedSetLegendNumbers(pos); - }); - - $scope.$on('timelionPlotLeave', function () { - if (!$scope.plot) return; - $scope.plot.clearCrosshair(); - clearLegendNumbers(); - }); - - // Shamelessly borrowed from the flotCrosshairs example - function setLegendNumbers(pos: any) { - unhighlightSeries(); - - const plot = $scope.plot; - - const axes = plot.getAxes(); - if (pos.x < axes.xaxis.min || pos.x > axes.xaxis.max) { - return; - } - - let i; - const dataset = plot.getData(); - if (legendCaption) { - legendCaption.text( - moment(pos.x).format( - _.get(dataset, '[0]._global.legend.timeFormat', visTypeTimelion.DEFAULT_TIME_FORMAT) - ) - ); - } - for (i = 0; i < dataset.length; ++i) { - const series = dataset[i]; - const useNearestPoint = series.lines.show && !series.lines.steps; - const precision = _.get(series, '_meta.precision', 2); - - if (series._hide) continue; - - const currentPoint = series.data.find((point: any, index: number) => { - if (index + 1 === series.data.length) { - return true; - } - if (useNearestPoint) { - return pos.x - point[0] < series.data[index + 1][0] - pos.x; - } else { - return pos.x < series.data[index + 1][0]; - } - }); - - const y = currentPoint[1]; - - if (y != null) { - let label = y.toFixed(precision); - if (series.yaxis.tickFormatter) { - label = series.yaxis.tickFormatter(label, series.yaxis); - } - legendValueNumbers.eq(i).text(`(${label})`); - } else { - legendValueNumbers.eq(i).empty(); - } - } - } - - function clearLegendNumbers() { - if (legendCaption) { - legendCaption.html(emptyCaption); - } - _.each(legendValueNumbers, function (num) { - $(num).empty(); - }); - } - - let legendScope = $scope.$new(); - function drawPlot(plotConfig: any) { - if (!$('.chart-canvas', $elem).length) $elem.html(template); - const canvasElem = $('.chart-canvas', $elem); - - // we can't use `$.plot` to draw the chart when the height or width is 0 - // so, we'll need another event to trigger drawPlot to actually draw it - if (canvasElem.height() === 0 || canvasElem.width() === 0) { - return; - } - - const title = _(plotConfig).map('_title').compact().last() as any; - $('.chart-top-title', $elem).text(title == null ? '' : title); - - const options = _.cloneDeep(defaultOptions) as any; - - // Get the X-axis tick format - const time = timefilter.timefilter.getBounds() as any; - const interval = visTypeTimelion.calculateInterval( - time.min.valueOf(), - time.max.valueOf(), - uiSettings.get('timelion:target_buckets') || 200, - $scope.interval, - uiSettings.get('timelion:min_interval') || '1ms' - ); - const format = getxAxisFormatter(interval); - - // Use moment to format ticks so we get timezone correction - options.xaxis.tickFormatter = function (val: any) { - return moment(val).format(format); - }; - - // Calculate how many ticks can fit on the axis - const tickLetterWidth = 7; - const tickPadding = 45; - options.xaxis.ticks = Math.floor( - $elem.width() / (format.length * tickLetterWidth + tickPadding) - ); - - const series = _.map(plotConfig, function (serie: any, index) { - serie = _.cloneDeep( - _.defaults(serie, { - shadowSize: 0, - lines: { - lineWidth: 3, - }, - }) - ); - serie._id = index; - - if (serie.color) { - const span = document.createElement('span'); - span.style.color = serie.color; - serie.color = span.style.color; - } - - if (serie._hide) { - serie.data = []; - serie.stack = false; - // serie.color = "#ddd"; - serie.label = '(hidden) ' + serie.label; - } - - if (serie._global) { - _.mergeWith(options, serie._global, function (objVal, srcVal) { - // This is kind of gross, it means that you can't replace a global value with a null - // best you can do is an empty string. Deal with it. - if (objVal == null) return srcVal; - if (srcVal == null) return objVal; - }); - } - - return serie; - }); - - if (options.yaxes) { - options.yaxes.forEach((yaxis: any) => { - if (yaxis && yaxis.units) { - yaxis.tickFormatter = formatters[yaxis.units.type]; - const byteModes = ['bytes', 'bytes/s']; - if (byteModes.includes(yaxis.units.type)) { - yaxis.tickGenerator = generateTicks; - } - } - }); - } - - // @ts-ignore - $scope.plot = $.plot(canvasElem, _.compact(series), options); - - if ($scope.plot) { - $scope.$emit('timelionChartRendered'); - } - - legendScope.$destroy(); - legendScope = $scope.$new(); - // Used to toggle the series, and for displaying values on hover - legendValueNumbers = canvasElem.find('.ngLegendValueNumber'); - _.each(canvasElem.find('.ngLegendValue'), function (elem) { - $compile(elem)(legendScope); - }); - - if (_.get($scope.plot.getData(), '[0]._global.legend.showTime', true)) { - legendCaption = $(''); - legendCaption.html(emptyCaption); - canvasElem.find('div.legend table').append(legendCaption); - - // legend has been re-created. Apply focus on legend element when previously set - if (focusedSeries || focusedSeries === 0) { - const $legendLabels = canvasElem.find('div.legend table .legendLabel>span'); - $legendLabels.get(focusedSeries).focus(); - } - } - } - $scope.$watch('chart', drawPlot); - }, - }; - }; -} diff --git a/src/plugins/timelion/public/panels/timechart/timechart.ts b/src/plugins/timelion/public/panels/timechart/timechart.ts deleted file mode 100644 index 6af7096bcb282..0000000000000 --- a/src/plugins/timelion/public/panels/timechart/timechart.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { timechartFn } from './schema'; -import { Panel } from '../panel'; -import { TimelionVisualizationDependencies } from '../../application'; - -export function getTimeChart(dependencies: TimelionVisualizationDependencies) { - // Schema is broken out so that it may be extended for use in other plugins - // Its also easier to test. - return new Panel('timechart', timechartFn(dependencies)()); -} diff --git a/src/plugins/timelion/public/partials/load_sheet.html b/src/plugins/timelion/public/partials/load_sheet.html deleted file mode 100644 index 8d8cf7193416c..0000000000000 --- a/src/plugins/timelion/public/partials/load_sheet.html +++ /dev/null @@ -1,12 +0,0 @@ -
-

- - -
diff --git a/src/plugins/timelion/public/partials/save_sheet.html b/src/plugins/timelion/public/partials/save_sheet.html deleted file mode 100644 index 7773a9d25df71..0000000000000 --- a/src/plugins/timelion/public/partials/save_sheet.html +++ /dev/null @@ -1,107 +0,0 @@ -
- - -
-
- - - - - - - -
-
- - - -
-
-
- - {{opts.state.sheet[opts.state.selected]}} -
-
- - -
-
- -
-
-
-
diff --git a/src/plugins/timelion/public/partials/sheet_options.html b/src/plugins/timelion/public/partials/sheet_options.html deleted file mode 100644 index eae5709331659..0000000000000 --- a/src/plugins/timelion/public/partials/sheet_options.html +++ /dev/null @@ -1,36 +0,0 @@ -
-

- -
-
- - -
-
- - -
-
-
diff --git a/src/plugins/timelion/public/plugin.ts b/src/plugins/timelion/public/plugin.ts deleted file mode 100644 index 63ea9a38e2795..0000000000000 --- a/src/plugins/timelion/public/plugin.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { BehaviorSubject } from 'rxjs'; -import { filter, map } from 'rxjs/operators'; -import { - CoreSetup, - Plugin, - PluginInitializerContext, - DEFAULT_APP_CATEGORIES, - AppMountParameters, - AppUpdater, - ScopedHistory, - AppNavLinkStatus, -} from '../../../core/public'; -import { Panel } from './panels/panel'; -import { KibanaLegacyStart } from '../../kibana_legacy/public'; -import { createKbnUrlTracker } from '../../kibana_utils/public'; -import { DataPublicPluginStart, esFilters, DataPublicPluginSetup } from '../../data/public'; -import { NavigationPublicPluginStart } from '../../navigation/public'; -import { VisualizationsStart } from '../../visualizations/public'; -import { SavedObjectsStart } from '../../saved_objects/public'; -import { - VisTypeTimelionPluginStart, - VisTypeTimelionPluginSetup, -} from '../../vis_type_timelion/public'; - -export interface TimelionPluginSetupDependencies { - data: DataPublicPluginSetup; - visTypeTimelion: VisTypeTimelionPluginSetup; -} - -export interface TimelionPluginStartDependencies { - data: DataPublicPluginStart; - navigation: NavigationPublicPluginStart; - visualizations: VisualizationsStart; - visTypeTimelion: VisTypeTimelionPluginStart; - savedObjects: SavedObjectsStart; - kibanaLegacy: KibanaLegacyStart; -} - -/** @internal */ -export class TimelionPlugin - implements Plugin { - initializerContext: PluginInitializerContext; - private appStateUpdater = new BehaviorSubject(() => ({})); - private stopUrlTracking: (() => void) | undefined = undefined; - private currentHistory: ScopedHistory | undefined = undefined; - - constructor(initializerContext: PluginInitializerContext) { - this.initializerContext = initializerContext; - } - - public setup( - core: CoreSetup, - { - data, - visTypeTimelion, - }: { data: DataPublicPluginSetup; visTypeTimelion: VisTypeTimelionPluginSetup } - ) { - const timelionPanels: Map = new Map(); - - const { appMounted, appUnMounted, stop: stopUrlTracker } = createKbnUrlTracker({ - baseUrl: core.http.basePath.prepend('/app/timelion'), - defaultSubUrl: '#/', - storageKey: `lastUrl:${core.http.basePath.get()}:timelion`, - navLinkUpdater$: this.appStateUpdater, - toastNotifications: core.notifications.toasts, - stateParams: [ - { - kbnUrlKey: '_g', - stateUpdate$: data.query.state$.pipe( - filter( - ({ changes }) => !!(changes.globalFilters || changes.time || changes.refreshInterval) - ), - map(({ state }) => ({ - ...state, - filters: state.filters?.filter(esFilters.isFilterPinned), - })) - ), - }, - ], - getHistory: () => this.currentHistory!, - }); - - this.stopUrlTracking = () => { - stopUrlTracker(); - }; - - core.application.register({ - id: 'timelion', - title: 'Timelion', - order: 8000, - defaultPath: '#/', - euiIconType: 'logoKibana', - category: DEFAULT_APP_CATEGORIES.kibana, - navLinkStatus: - visTypeTimelion.isUiEnabled === false ? AppNavLinkStatus.hidden : AppNavLinkStatus.default, - mount: async (params: AppMountParameters) => { - const [coreStart, pluginsStart] = await core.getStartServices(); - await pluginsStart.kibanaLegacy.loadAngularBootstrap(); - this.currentHistory = params.history; - - appMounted(); - - const unlistenParentHistory = params.history.listen(() => { - window.dispatchEvent(new HashChangeEvent('hashchange')); - }); - - const { renderApp } = await import('./application'); - params.element.classList.add('timelionAppContainer'); - const unmount = renderApp({ - mountParams: params, - pluginInitializerContext: this.initializerContext, - timelionPanels, - core: coreStart, - plugins: pluginsStart, - }); - return () => { - unlistenParentHistory(); - unmount(); - appUnMounted(); - }; - }, - }); - } - - public start() {} - - public stop(): void { - if (this.stopUrlTracking) { - this.stopUrlTracking(); - } - } -} diff --git a/src/plugins/timelion/public/services/_saved_sheet.ts b/src/plugins/timelion/public/services/_saved_sheet.ts deleted file mode 100644 index a903c70aad69b..0000000000000 --- a/src/plugins/timelion/public/services/_saved_sheet.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { IUiSettingsClient } from 'kibana/public'; -import { SavedObjectsStart } from '../../../saved_objects/public'; - -// Used only by the savedSheets service, usually no reason to change this -export function createSavedSheetClass(savedObjects: SavedObjectsStart, config: IUiSettingsClient) { - class SavedSheet extends savedObjects.SavedObjectClass { - static type = 'timelion-sheet'; - - // if type:sheet has no mapping, we push this mapping into ES - static mapping = { - title: 'text', - hits: 'integer', - description: 'text', - timelion_sheet: 'text', - timelion_interval: 'keyword', - timelion_other_interval: 'keyword', - timelion_chart_height: 'integer', - timelion_columns: 'integer', - timelion_rows: 'integer', - version: 'integer', - }; - - // Order these fields to the top, the rest are alphabetical - static fieldOrder = ['title', 'description']; - // SavedSheet constructor. Usually you'd interact with an instance of this. - // ID is option, without it one will be generated on save. - constructor(id: string) { - super({ - type: SavedSheet.type, - mapping: SavedSheet.mapping, - - // if this is null/undefined then the SavedObject will be assigned the defaults - id, - - // default values that will get assigned if the doc is new - defaults: { - title: 'New TimeLion Sheet', - hits: 0, - description: '', - timelion_sheet: ['.es(*)'], - timelion_interval: 'auto', - timelion_chart_height: 275, - timelion_columns: config.get('timelion:default_columns') || 2, - timelion_rows: config.get('timelion:default_rows') || 2, - version: 1, - }, - }); - this.showInRecentlyAccessed = true; - this.getFullPath = () => `/app/timelion#/${this.id}`; - } - } - - return SavedSheet as unknown; -} diff --git a/src/plugins/timelion/public/services/saved_sheets.ts b/src/plugins/timelion/public/services/saved_sheets.ts deleted file mode 100644 index 373bb895c9806..0000000000000 --- a/src/plugins/timelion/public/services/saved_sheets.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { SavedObjectLoader } from '../../../saved_objects/public'; -import { createSavedSheetClass } from './_saved_sheet'; -import { RenderDeps } from '../application'; - -export function initSavedSheetService(app: angular.IModule, deps: RenderDeps) { - const savedObjectsClient = deps.core.savedObjects.client; - const SavedSheet = createSavedSheetClass(deps.plugins.savedObjects, deps.core.uiSettings); - - const savedSheetLoader = new SavedObjectLoader(SavedSheet, savedObjectsClient); - savedSheetLoader.urlFor = (id) => `#/${encodeURIComponent(id)}`; - // Customize loader properties since adding an 's' on type doesn't work for type 'timelion-sheet'. - savedSheetLoader.loaderProperties = { - name: 'timelion-sheet', - noun: 'Saved Sheets', - nouns: 'saved sheets', - }; - // This is the only thing that gets injected into controllers - app.service('savedSheets', function () { - return savedSheetLoader; - }); - - return savedSheetLoader; -} diff --git a/src/plugins/timelion/public/timelion_app_state.ts b/src/plugins/timelion/public/timelion_app_state.ts deleted file mode 100644 index 348a97583d37b..0000000000000 --- a/src/plugins/timelion/public/timelion_app_state.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { createStateContainer, syncState, IKbnUrlStateStorage } from '../../kibana_utils/public'; - -import { TimelionAppState, TimelionAppStateTransitions } from './types'; - -const STATE_STORAGE_KEY = '_a'; - -interface Arguments { - kbnUrlStateStorage: IKbnUrlStateStorage; - stateDefaults: TimelionAppState; -} - -export function initTimelionAppState({ stateDefaults, kbnUrlStateStorage }: Arguments) { - const urlState = kbnUrlStateStorage.get(STATE_STORAGE_KEY); - const initialState = { - ...stateDefaults, - ...urlState, - }; - - /* - make sure url ('_a') matches initial state - Initializing appState does two things - first it translates the defaults into AppState, - second it updates appState based on the url (the url trumps the defaults). This means if - we update the state format at all and want to handle BWC, we must not only migrate the - data stored with saved vis, but also any old state in the url. - */ - kbnUrlStateStorage.set(STATE_STORAGE_KEY, initialState, { replace: true }); - - const stateContainer = createStateContainer( - initialState, - { - set: (state) => (prop, value) => ({ ...state, [prop]: value }), - updateState: (state) => (newValues) => ({ ...state, ...newValues }), - } - ); - - const { start: startStateSync, stop: stopStateSync } = syncState({ - storageKey: STATE_STORAGE_KEY, - stateContainer: { - ...stateContainer, - set: (state) => { - if (state) { - // syncState utils requires to handle incoming "null" value - stateContainer.set(state); - } - }, - }, - stateStorage: kbnUrlStateStorage, - }); - - // start syncing the appState with the ('_a') url - startStateSync(); - - return { stateContainer, stopStateSync }; -} diff --git a/src/plugins/timelion/public/types.ts b/src/plugins/timelion/public/types.ts deleted file mode 100644 index bfdbd3878ec23..0000000000000 --- a/src/plugins/timelion/public/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export interface TimelionAppState { - sheet: string[]; - selected: number; - columns: number; - rows: number; - interval: string; -} - -export interface TimelionAppStateTransitions { - set: ( - state: TimelionAppState - ) => (prop: T, value: TimelionAppState[T]) => TimelionAppState; - updateState: ( - state: TimelionAppState - ) => (newValues: Partial) => TimelionAppState; -} diff --git a/src/plugins/timelion/server/config.ts b/src/plugins/timelion/server/config.ts deleted file mode 100644 index d74c4c237b2b7..0000000000000 --- a/src/plugins/timelion/server/config.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { schema, TypeOf } from '@kbn/config-schema'; - -export const configSchema = { - schema: schema.object({ - graphiteUrls: schema.maybe(schema.arrayOf(schema.string())), - enabled: schema.boolean({ defaultValue: true }), - ui: schema.object({ - enabled: schema.boolean({ defaultValue: true }), - }), - }), -}; - -export type TimelionConfigType = TypeOf; diff --git a/src/plugins/timelion/server/deprecations.ts b/src/plugins/timelion/server/deprecations.ts deleted file mode 100644 index 2358dd313b74f..0000000000000 --- a/src/plugins/timelion/server/deprecations.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { - CoreStart, - SavedObjectsClient, - Logger, - GetDeprecationsContext, - DeprecationsDetails, -} from 'src/core/server'; - -export const getTimelionSheetsCount = async ( - savedObjectsClient: Pick -) => { - const { total } = await savedObjectsClient.find({ type: 'timelion-sheet', perPage: 1 }); - return total; -}; - -export const showWarningMessageIfTimelionSheetWasFound = async ( - core: CoreStart, - logger: Logger -) => { - const { savedObjects } = core; - const savedObjectsClient = savedObjects.createInternalRepository(); - const count = await getTimelionSheetsCount(savedObjectsClient); - if (count > 0) { - logger.warn( - 'Deprecated since 7.0, the Timelion app will be removed in 7.16. To continue using your Timelion worksheets, migrate them to a dashboard. See https://www.elastic.co/guide/en/kibana/current/create-panels-with-timelion.html.' - ); - } -}; - -/** - * Deprecated since 7.0, the Timelion app will be removed in 8.0. - * To continue using your Timelion worksheets, migrate them to a dashboard. - * - * @link https://www.elastic.co/guide/en/kibana/master/timelion.html#timelion-deprecation - **/ -export async function getDeprecations({ - savedObjectsClient, -}: GetDeprecationsContext): Promise { - const deprecations: DeprecationsDetails[] = []; - const count = await getTimelionSheetsCount(savedObjectsClient); - - if (count > 0) { - deprecations.push({ - title: 'Found Timelion worksheets', - message: `You have ${count} Timelion worksheets. The Timelion app will be removed in 7.16. To continue using your Timelion worksheets, migrate them to a dashboard.`, - documentationUrl: - 'https://www.elastic.co/guide/en/kibana/current/create-panels-with-timelion.html', - level: 'warning', - correctiveActions: { - manualSteps: [ - 'Navigate to the Kibana Dashboard and click "Create dashboard".', - 'Select Timelion from the "New Visualization" window.', - 'Open a new tab, open the Timelion app, select the chart you want to copy, then copy the chart expression.', - 'Go to Timelion, paste the chart expression in the Timelion expression field, then click Update.', - 'In the toolbar, click Save.', - 'On the Save visualization window, enter the visualization Title, then click Save and return.', - ], - }, - }); - } - - return deprecations; -} diff --git a/src/plugins/timelion/server/index.ts b/src/plugins/timelion/server/index.ts deleted file mode 100644 index fb77df100766a..0000000000000 --- a/src/plugins/timelion/server/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { PluginInitializerContext, PluginConfigDescriptor } from 'src/core/server'; -import { TimelionPlugin } from './plugin'; -import { configSchema, TimelionConfigType } from './config'; - -export const config: PluginConfigDescriptor = { - schema: configSchema.schema, -}; - -export const plugin = (context: PluginInitializerContext) => - new TimelionPlugin(context); diff --git a/src/plugins/timelion/server/plugin.ts b/src/plugins/timelion/server/plugin.ts deleted file mode 100644 index edbba9b565ae4..0000000000000 --- a/src/plugins/timelion/server/plugin.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { CoreSetup, CoreStart, Plugin, PluginInitializerContext, Logger } from 'src/core/server'; -import { i18n } from '@kbn/i18n'; -import { schema } from '@kbn/config-schema'; -import { TimelionConfigType } from './config'; -import { timelionSheetSavedObjectType } from './saved_objects'; -import { getDeprecations, showWarningMessageIfTimelionSheetWasFound } from './deprecations'; - -export class TimelionPlugin implements Plugin { - private logger: Logger; - - constructor(context: PluginInitializerContext) { - this.logger = context.logger.get(); - } - - public setup(core: CoreSetup) { - core.capabilities.registerProvider(() => ({ - timelion: { - save: true, - show: true, - }, - })); - core.savedObjects.registerType(timelionSheetSavedObjectType); - - core.uiSettings.register({ - 'timelion:showTutorial': { - name: i18n.translate('timelion.uiSettings.showTutorialLabel', { - defaultMessage: 'Show tutorial', - }), - value: false, - description: i18n.translate('timelion.uiSettings.showTutorialDescription', { - defaultMessage: 'Should I show the tutorial by default when entering the timelion app?', - }), - category: ['timelion'], - schema: schema.boolean(), - }, - 'timelion:default_columns': { - name: i18n.translate('timelion.uiSettings.defaultColumnsLabel', { - defaultMessage: 'Default columns', - }), - value: 2, - description: i18n.translate('timelion.uiSettings.defaultColumnsDescription', { - defaultMessage: 'Number of columns on a timelion sheet by default', - }), - category: ['timelion'], - schema: schema.number(), - }, - 'timelion:default_rows': { - name: i18n.translate('timelion.uiSettings.defaultRowsLabel', { - defaultMessage: 'Default rows', - }), - value: 2, - description: i18n.translate('timelion.uiSettings.defaultRowsDescription', { - defaultMessage: 'Number of rows on a timelion sheet by default', - }), - category: ['timelion'], - schema: schema.number(), - }, - }); - - core.deprecations.registerDeprecations({ getDeprecations }); - } - start(core: CoreStart) { - showWarningMessageIfTimelionSheetWasFound(core, this.logger); - } - stop() {} -} diff --git a/src/plugins/timelion/server/saved_objects/index.ts b/src/plugins/timelion/server/saved_objects/index.ts deleted file mode 100644 index 0dd070958d09a..0000000000000 --- a/src/plugins/timelion/server/saved_objects/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export { timelionSheetSavedObjectType } from './timelion_sheet'; diff --git a/src/plugins/timelion/server/saved_objects/timelion_sheet.ts b/src/plugins/timelion/server/saved_objects/timelion_sheet.ts deleted file mode 100644 index 231e049280bb1..0000000000000 --- a/src/plugins/timelion/server/saved_objects/timelion_sheet.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import { SavedObjectsType } from 'kibana/server'; - -export const timelionSheetSavedObjectType: SavedObjectsType = { - name: 'timelion-sheet', - hidden: false, - namespaceType: 'single', - management: { - icon: 'visTimelion', - defaultSearchField: 'title', - importableAndExportable: true, - getTitle(obj) { - return obj.attributes.title; - }, - getInAppUrl(obj) { - return { - path: `/app/timelion#/${encodeURIComponent(obj.id)}`, - uiCapabilitiesPath: 'timelion.show', - }; - }, - }, - mappings: { - properties: { - description: { type: 'text' }, - hits: { type: 'integer' }, - kibanaSavedObjectMeta: { - properties: { - searchSourceJSON: { type: 'text' }, - }, - }, - timelion_chart_height: { type: 'integer' }, - timelion_columns: { type: 'integer' }, - timelion_interval: { type: 'keyword' }, - timelion_other_interval: { type: 'keyword' }, - timelion_rows: { type: 'integer' }, - timelion_sheet: { type: 'text' }, - title: { type: 'text' }, - version: { type: 'integer' }, - }, - }, -}; diff --git a/src/plugins/timelion/tsconfig.json b/src/plugins/timelion/tsconfig.json deleted file mode 100644 index 594901c3cc1ed..0000000000000 --- a/src/plugins/timelion/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "compilerOptions": { - "outDir": "./target/types", - "emitDeclarationOnly": true, - "declaration": true, - "declarationMap": true - }, - "include": [ - "public/**/*", - "server/**/*" - ], - "references": [ - { "path": "../../core/tsconfig.json" }, - { "path": "../data/tsconfig.json" }, - { "path": "../visualizations/tsconfig.json" }, - { "path": "../navigation/tsconfig.json" }, - { "path": "../vis_type_timelion/tsconfig.json" }, - { "path": "../saved_objects/tsconfig.json" }, - { "path": "../kibana_legacy/tsconfig.json" }, - ] -} diff --git a/src/plugins/vis_type_timelion/config.ts b/src/plugins/vis_type_timelion/config.ts index aa88d786af51e..cfd3d13c277e9 100644 --- a/src/plugins/vis_type_timelion/config.ts +++ b/src/plugins/vis_type_timelion/config.ts @@ -8,14 +8,9 @@ import { schema, TypeOf } from '@kbn/config-schema'; -export const configSchema = schema.object( - { - enabled: schema.boolean({ defaultValue: true }), - ui: schema.object({ enabled: schema.boolean({ defaultValue: false }) }), - graphiteUrls: schema.maybe(schema.arrayOf(schema.string())), - }, - // This option should be removed as soon as we entirely migrate config from legacy Timelion plugin. - { unknowns: 'allow' } -); +export const configSchema = schema.object({ + graphiteUrls: schema.maybe(schema.arrayOf(schema.string())), + enabled: schema.boolean({ defaultValue: true }), +}); export type ConfigSchema = TypeOf; diff --git a/src/plugins/vis_type_timelion/public/components/timelion_expression_input.tsx b/src/plugins/vis_type_timelion/public/components/timelion_expression_input.tsx index d518d9718d5e7..569ddf03c941b 100644 --- a/src/plugins/vis_type_timelion/public/components/timelion_expression_input.tsx +++ b/src/plugins/vis_type_timelion/public/components/timelion_expression_input.tsx @@ -96,7 +96,7 @@ function TimelionExpressionInput({ value, setValue }: TimelionExpressionInputPro
-
+
getTimelionVisualizationConfig(dependencies)); expressions.registerRenderer(getTimelionVisRenderer(dependencies)); visualizations.createBaseVisualization(getTimelionVisDefinition(dependencies)); - - return { - isUiEnabled: this.initializerContext.config.get().ui.enabled, - }; } public start(core: CoreStart, { data, charts }: TimelionVisStartDependencies) { diff --git a/src/plugins/vis_type_timelion/server/index.ts b/src/plugins/vis_type_timelion/server/index.ts index 35f4182a50a86..5c5cf8b481f94 100644 --- a/src/plugins/vis_type_timelion/server/index.ts +++ b/src/plugins/vis_type_timelion/server/index.ts @@ -10,19 +10,9 @@ import { PluginConfigDescriptor, PluginInitializerContext } from '../../../../sr import { configSchema, ConfigSchema } from '../config'; import { TimelionPlugin } from './plugin'; -export { PluginSetupContract } from './plugin'; - export const config: PluginConfigDescriptor = { schema: configSchema, - exposeToBrowser: { - ui: true, - }, - deprecations: ({ renameFromRoot }) => [ - renameFromRoot('timelion_vis.enabled', 'vis_type_timelion.enabled'), - renameFromRoot('timelion.enabled', 'vis_type_timelion.enabled'), - renameFromRoot('timelion.graphiteUrls', 'vis_type_timelion.graphiteUrls'), - renameFromRoot('timelion.ui.enabled', 'vis_type_timelion.ui.enabled', { silent: true }), - ], }; + export const plugin = (initializerContext: PluginInitializerContext) => new TimelionPlugin(initializerContext); diff --git a/src/plugins/vis_type_timelion/server/plugin.ts b/src/plugins/vis_type_timelion/server/plugin.ts index fc23569b351e6..5bbb5dd1819c4 100644 --- a/src/plugins/vis_type_timelion/server/plugin.ts +++ b/src/plugins/vis_type_timelion/server/plugin.ts @@ -8,8 +8,6 @@ import { i18n } from '@kbn/i18n'; import { TypeOf } from '@kbn/config-schema'; -import { RecursiveReadonly } from '@kbn/utility-types'; -import { deepFreeze } from '@kbn/std'; import type { PluginStart, DataRequestHandlerContext } from '../../../../src/plugins/data/server'; import { CoreSetup, PluginInitializerContext, Plugin } from '../../../../src/core/server'; @@ -21,13 +19,6 @@ import { runRoute } from './routes/run'; import { ConfigManager } from './lib/config_manager'; import { getUiSettings } from './ui_settings'; -/** - * Describes public Timelion plugin contract returned at the `setup` stage. - */ -export interface PluginSetupContract { - uiEnabled: boolean; -} - export interface TimelionPluginStartDeps { data: PluginStart; } @@ -35,11 +26,10 @@ export interface TimelionPluginStartDeps { /** * Represents Timelion Plugin instance that will be managed by the Kibana plugin system. */ -export class TimelionPlugin - implements Plugin, void, TimelionPluginStartDeps> { +export class TimelionPlugin implements Plugin { constructor(private readonly initializerContext: PluginInitializerContext) {} - public setup(core: CoreSetup): RecursiveReadonly { + public setup(core: CoreSetup): void { const config = this.initializerContext.config.get>(); const configManager = new ConfigManager(this.initializerContext.config); @@ -76,8 +66,6 @@ export class TimelionPlugin validateEsRoute(router); core.uiSettings.register(getUiSettings(config)); - - return deepFreeze({ uiEnabled: config.ui.enabled }); } public start() { diff --git a/test/api_integration/fixtures/es_archiver/management/saved_objects/scroll_count/mappings.json b/test/api_integration/fixtures/es_archiver/management/saved_objects/scroll_count/mappings.json index f44bb7463e9eb..619e300016043 100644 --- a/test/api_integration/fixtures/es_archiver/management/saved_objects/scroll_count/mappings.json +++ b/test/api_integration/fixtures/es_archiver/management/saved_objects/scroll_count/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -373,47 +372,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/api_integration/fixtures/es_archiver/management/saved_objects/search/data.json b/test/api_integration/fixtures/es_archiver/management/saved_objects/search/data.json index 6402a255afd37..05116741dbe5c 100644 --- a/test/api_integration/fixtures/es_archiver/management/saved_objects/search/data.json +++ b/test/api_integration/fixtures/es_archiver/management/saved_objects/search/data.json @@ -1,32 +1,3 @@ -{ - "type": "doc", - "value": { - "id": "timelion-sheet:190f3e90-2ec3-11e8-ba48-69fc4e41e1f6", - "index": ".kibana", - "source": { - "coreMigrationVersion": "7.14.0", - "references": [ - ], - "timelion-sheet": { - "description": "", - "hits": 0, - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_interval": "auto", - "timelion_rows": 2, - "timelion_sheet": [ - ".es(*)" - ], - "title": "New TimeLion Sheet", - "version": 1 - }, - "type": "timelion-sheet", - "updated_at": "2018-03-23T17:53:30.872Z" - }, - "type": "_doc" - } -} - { "type": "doc", "value": { diff --git a/test/api_integration/fixtures/es_archiver/management/saved_objects/search/mappings.json b/test/api_integration/fixtures/es_archiver/management/saved_objects/search/mappings.json index 7699a72ff7120..e9ec4e680d74e 100644 --- a/test/api_integration/fixtures/es_archiver/management/saved_objects/search/mappings.json +++ b/test/api_integration/fixtures/es_archiver/management/saved_objects/search/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -377,47 +376,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/api_integration/fixtures/es_archiver/saved_objects/ui_counters/mappings.json b/test/api_integration/fixtures/es_archiver/saved_objects/ui_counters/mappings.json index 99f2f999db988..34b4ba98b3ee8 100644 --- a/test/api_integration/fixtures/es_archiver/saved_objects/ui_counters/mappings.json +++ b/test/api_integration/fixtures/es_archiver/saved_objects/ui_counters/mappings.json @@ -165,47 +165,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "namespace": { "type": "keyword" }, diff --git a/test/api_integration/fixtures/es_archiver/saved_objects/usage_counters/mappings.json b/test/api_integration/fixtures/es_archiver/saved_objects/usage_counters/mappings.json index c2ec5c8881087..e818c2f8cbe20 100644 --- a/test/api_integration/fixtures/es_archiver/saved_objects/usage_counters/mappings.json +++ b/test/api_integration/fixtures/es_archiver/saved_objects/usage_counters/mappings.json @@ -158,47 +158,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "namespace": { "type": "keyword" }, diff --git a/test/api_integration/fixtures/es_archiver/search/count/mappings.json b/test/api_integration/fixtures/es_archiver/search/count/mappings.json index 41d5c07e93239..8a46d3fc66c85 100644 --- a/test/api_integration/fixtures/es_archiver/search/count/mappings.json +++ b/test/api_integration/fixtures/es_archiver/search/count/mappings.json @@ -39,48 +39,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "visualization": { "dynamic": "strict", "properties": { diff --git a/test/api_integration/fixtures/kbn_archiver/management/saved_objects/relationships.json b/test/api_integration/fixtures/kbn_archiver/management/saved_objects/relationships.json index da2241952ca37..5152303854b75 100644 --- a/test/api_integration/fixtures/kbn_archiver/management/saved_objects/relationships.json +++ b/test/api_integration/fixtures/kbn_archiver/management/saved_objects/relationships.json @@ -1,25 +1,3 @@ -{ - "attributes": { - "description": "", - "hits": 0, - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_interval": "auto", - "timelion_rows": 2, - "timelion_sheet": [ - ".es(*)" - ], - "title": "New TimeLion Sheet", - "version": 1 - }, - "coreMigrationVersion": "8.0.0", - "id": "190f3e90-2ec3-11e8-ba48-69fc4e41e1f6", - "references": [], - "type": "timelion-sheet", - "updated_at": "2018-03-23T17:53:30.872Z", - "version": "WzgsMl0=" -} - { "attributes": { "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"id\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", diff --git a/test/functional/apps/timelion/_expression_typeahead.js b/test/functional/apps/timelion/_expression_typeahead.js deleted file mode 100644 index 3b29e9a44a77b..0000000000000 --- a/test/functional/apps/timelion/_expression_typeahead.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import expect from '@kbn/expect'; - -export default function ({ getPageObjects }) { - const PageObjects = getPageObjects(['common', 'timelion', 'settings', 'timePicker']); - - describe('expression typeahead', () => { - before(async () => { - await PageObjects.timelion.initTests(); - await PageObjects.timePicker.setDefaultAbsoluteRange(); - }); - - it('should show argument suggestions when function suggestion is selected', async () => { - await PageObjects.timelion.setExpression('.es'); - await PageObjects.timelion.clickSuggestion(); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).to.eql(9); - expect(suggestions[0].includes('fit=')).to.eql(true); - }); - - it('should show argument value suggestions when argument is selected', async () => { - await PageObjects.timelion.setExpression('.legend'); - await PageObjects.timelion.clickSuggestion(); - const argumentSuggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(argumentSuggestions.length).to.eql(4); - expect(argumentSuggestions[1].includes('position=')).to.eql(true); - await PageObjects.timelion.clickSuggestion(1); - const valueSuggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(valueSuggestions.length).to.eql(5); - expect(valueSuggestions[0].includes('disable legend')).to.eql(true); - expect(valueSuggestions[1].includes('place legend in north east corner')).to.eql(true); - }); - - it('should display function suggestions filtered by function name', async () => { - await PageObjects.timelion.setExpression('.e'); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).to.eql(2); - expect(suggestions[0].includes('.elasticsearch()')).to.eql(true); - expect(suggestions[1].includes('.es()')).to.eql(true); - }); - - describe('dynamic suggestions for argument values', () => { - describe('.es()', () => { - before(async () => { - await PageObjects.timelion.setExpression('.es'); - await PageObjects.timelion.clickSuggestion(); - }); - - it('should show index pattern suggestions for index argument', async () => { - await PageObjects.timelion.updateExpression('index='); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).to.eql(1); - expect(suggestions[0].includes('logstash-*')).to.eql(true); - await PageObjects.timelion.clickSuggestion(); - }); - - it('should show field suggestions for timefield argument when index pattern set', async () => { - await PageObjects.timelion.updateExpression(',timefield='); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).to.eql(4); - expect(suggestions[0].includes('@timestamp')).to.eql(true); - await PageObjects.timelion.clickSuggestion(); - }); - - it('should show field suggestions for split argument when index pattern set', async () => { - await PageObjects.timelion.updateExpression(',split='); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).not.to.eql(0); - expect(suggestions[0].includes('@message.raw')).to.eql(true); - await PageObjects.timelion.clickSuggestion(10); - }); - - it('should show field suggestions for metric argument when index pattern set', async () => { - await PageObjects.timelion.updateExpression(',metric='); - await PageObjects.timelion.updateExpression('avg:'); - await PageObjects.timelion.clickSuggestion(0); - const suggestions = await PageObjects.timelion.getSuggestionItemsText(); - expect(suggestions.length).not.to.eql(0); - expect(suggestions[0].includes('avg:bytes')).to.eql(true); - }); - }); - }); - }); -} diff --git a/test/functional/apps/timelion/index.js b/test/functional/apps/timelion/index.js deleted file mode 100644 index b81a0e70d8a6d..0000000000000 --- a/test/functional/apps/timelion/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -export default function ({ getService, loadTestFile }) { - const browser = getService('browser'); - const log = getService('log'); - const esArchiver = getService('esArchiver'); - const kibanaServer = getService('kibanaServer'); - - describe('timelion app', function () { - this.tags('ciGroup1'); - - before(async function () { - log.debug('Starting timelion before method'); - await browser.setWindowSize(1280, 800); - await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); - await kibanaServer.uiSettings.replace({ defaultIndex: 'logstash-*' }); - }); - - loadTestFile(require.resolve('./_expression_typeahead')); - }); -} diff --git a/test/functional/apps/visualize/_timelion.ts b/test/functional/apps/visualize/_timelion.ts index a3f2c87424244..ea8cb8b13ba49 100644 --- a/test/functional/apps/visualize/_timelion.ts +++ b/test/functional/apps/visualize/_timelion.ts @@ -10,11 +10,13 @@ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { - const { timePicker, visChart, visEditor, visualize } = getPageObjects([ + const { timePicker, visChart, visEditor, visualize, timelion, common } = getPageObjects([ 'timePicker', 'visChart', 'visEditor', 'visualize', + 'timelion', + 'common', ]); const monacoEditor = getService('monacoEditor'); const kibanaServer = getService('kibanaServer'); @@ -230,6 +232,72 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); }); + describe('expression typeahead', () => { + it('should display function suggestions', async () => { + await monacoEditor.setCodeEditorValue(''); + await monacoEditor.typeCodeEditorValue('.e', 'timelionCodeEditor'); + // wait for monaco editor model will be updated with new value + await common.sleep(300); + let value = await monacoEditor.getCodeEditorValue(0); + expect(value).to.eql('.e'); + const suggestions = await timelion.getSuggestionItemsText(); + expect(suggestions.length).to.eql(2); + expect(suggestions[0].includes('es')).to.eql(true); + expect(suggestions[1].includes('elasticsearch')).to.eql(true); + await timelion.clickSuggestion(0); + // wait for monaco editor model will be updated with new value + await common.sleep(300); + value = await monacoEditor.getCodeEditorValue(0); + expect(value).to.eql('.es()'); + }); + + describe('dynamic suggestions for argument values', () => { + describe('.es()', () => { + it('should show index pattern suggestions for index argument', async () => { + await monacoEditor.setCodeEditorValue(''); + await monacoEditor.typeCodeEditorValue('.es(index=', 'timelionCodeEditor'); + // wait for index patterns will be loaded + await common.sleep(500); + const suggestions = await timelion.getSuggestionItemsText(); + expect(suggestions.length).not.to.eql(0); + expect(suggestions[0].includes('log')).to.eql(true); + }); + + it('should show field suggestions for timefield argument when index pattern set', async () => { + await monacoEditor.setCodeEditorValue(''); + await monacoEditor.typeCodeEditorValue( + '.es(index=logstash-*, timefield=', + 'timelionCodeEditor' + ); + const suggestions = await timelion.getSuggestionItemsText(); + expect(suggestions.length).to.eql(4); + expect(suggestions[0].includes('@timestamp')).to.eql(true); + }); + + it('should show field suggestions for split argument when index pattern set', async () => { + await monacoEditor.setCodeEditorValue(''); + await monacoEditor.typeCodeEditorValue( + '.es(index=logstash-*, timefield=@timestamp ,split=', + 'timelionCodeEditor' + ); + const suggestions = await timelion.getSuggestionItemsText(); + expect(suggestions.length).not.to.eql(0); + expect(suggestions[0].includes('@message.raw')).to.eql(true); + }); + + it('should show field suggestions for metric argument when index pattern set', async () => { + await monacoEditor.typeCodeEditorValue( + '.es(index=logstash-*, timefield=@timestamp ,metric=avg:', + 'timelionCodeEditor' + ); + const suggestions = await timelion.getSuggestionItemsText(); + expect(suggestions.length).not.to.eql(0); + expect(suggestions[0].includes('avg:bytes')).to.eql(true); + }); + }); + }); + }); + after( async () => await kibanaServer.uiSettings.update({ diff --git a/test/functional/config.js b/test/functional/config.js index 221c2e6c1f1c1..1c7f63d637d5e 100644 --- a/test/functional/config.js +++ b/test/functional/config.js @@ -24,7 +24,6 @@ export default async function ({ readConfigFile }) { require.resolve('./apps/home'), require.resolve('./apps/management'), require.resolve('./apps/saved_objects_management'), - require.resolve('./apps/timelion'), require.resolve('./apps/visualize'), ], pageObjects, @@ -90,9 +89,6 @@ export default async function ({ readConfigFile }) { settings: { pathname: '/app/management', }, - timelion: { - pathname: '/app/timelion', - }, console: { pathname: '/app/dev_tools', hash: '/console', diff --git a/test/functional/fixtures/es_archiver/dashboard/current/kibana/mappings.json b/test/functional/fixtures/es_archiver/dashboard/current/kibana/mappings.json index b6e225951c545..161d733e868a8 100644 --- a/test/functional/fixtures/es_archiver/dashboard/current/kibana/mappings.json +++ b/test/functional/fixtures/es_archiver/dashboard/current/kibana/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -373,47 +372,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "dynamic": "false", "type": "object" diff --git a/test/functional/fixtures/es_archiver/dashboard/legacy/mappings.json b/test/functional/fixtures/es_archiver/dashboard/legacy/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/dashboard/legacy/mappings.json +++ b/test/functional/fixtures/es_archiver/dashboard/legacy/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/deprecations_service/mappings.json b/test/functional/fixtures/es_archiver/deprecations_service/mappings.json index 5159b946e082f..2d86b863d47dc 100644 --- a/test/functional/fixtures/es_archiver/deprecations_service/mappings.json +++ b/test/functional/fixtures/es_archiver/deprecations_service/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -331,47 +330,6 @@ "dynamic": "false", "type": "object" }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/discover/mappings.json b/test/functional/fixtures/es_archiver/discover/mappings.json index 93d724aa55603..33bc746c84c8c 100644 --- a/test/functional/fixtures/es_archiver/discover/mappings.json +++ b/test/functional/fixtures/es_archiver/discover/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -346,47 +345,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/empty_kibana/mappings.json b/test/functional/fixtures/es_archiver/empty_kibana/mappings.json index 264096beb11ee..7082f43f45e99 100644 --- a/test/functional/fixtures/es_archiver/empty_kibana/mappings.json +++ b/test/functional/fixtures/es_archiver/empty_kibana/mappings.json @@ -146,48 +146,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/invalid_scripted_field/mappings.json b/test/functional/fixtures/es_archiver/invalid_scripted_field/mappings.json index 63cc283f96d32..0d41e0ce86c14 100644 --- a/test/functional/fixtures/es_archiver/invalid_scripted_field/mappings.json +++ b/test/functional/fixtures/es_archiver/invalid_scripted_field/mappings.json @@ -143,47 +143,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern/mappings.json b/test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern/mappings.json index caa1a9d8ddc11..f980596200b25 100644 --- a/test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern/mappings.json +++ b/test/functional/fixtures/es_archiver/kibana_sample_data_flights_index_pattern/mappings.json @@ -19,7 +19,6 @@ "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", "search": "181661168bbadd1eff5902361e2a0d5c", "server": "ec97f1c5da1a19609a60874e5af1100c", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -245,47 +244,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/management/mappings.json b/test/functional/fixtures/es_archiver/management/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/management/mappings.json +++ b/test/functional/fixtures/es_archiver/management/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/mgmt/mappings.json b/test/functional/fixtures/es_archiver/mgmt/mappings.json index aefbd9d0ccc8a..f4962f9c47668 100644 --- a/test/functional/fixtures/es_archiver/mgmt/mappings.json +++ b/test/functional/fixtures/es_archiver/mgmt/mappings.json @@ -172,47 +172,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_imports/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_imports/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_imports/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_imports/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/edit_saved_object/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/edit_saved_object/mappings.json index 05ca4d8e8307e..bb863dc24c585 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/edit_saved_object/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/edit_saved_object/mappings.json @@ -358,47 +358,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion/mappings.json index abec2eeb77492..d0101f16f85d0 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion/mappings.json @@ -387,47 +387,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/export_transform/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/export_transform/mappings.json index b2385a281dd23..9562b381a40f8 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/export_transform/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/export_transform/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -370,47 +369,6 @@ "dynamic": "false", "type": "object" }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/hidden_saved_objects/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/hidden_saved_objects/mappings.json index d59f3b00d4818..780fdda5f7cbe 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/hidden_saved_objects/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/hidden_saved_objects/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -378,47 +377,6 @@ "dynamic": "false", "type": "object" }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/hidden_types/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/hidden_types/mappings.json index 61763f55c1b6a..adcf4164668d6 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/hidden_types/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/hidden_types/mappings.json @@ -389,47 +389,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform/mappings.json index b2385a281dd23..9562b381a40f8 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform/mappings.json @@ -29,7 +29,6 @@ "search": "db2c00e39b36f40930a3b9fc71c823e1", "search-telemetry": "3d1b76c39bfb2cc8296b024d73854724", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -370,47 +369,6 @@ "dynamic": "false", "type": "object" }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/saved_objects_management/show_relationships/mappings.json b/test/functional/fixtures/es_archiver/saved_objects_management/show_relationships/mappings.json index aba581867bb8a..0679717650af9 100644 --- a/test/functional/fixtures/es_archiver/saved_objects_management/show_relationships/mappings.json +++ b/test/functional/fixtures/es_archiver/saved_objects_management/show_relationships/mappings.json @@ -372,47 +372,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/timelion/mappings.json b/test/functional/fixtures/es_archiver/timelion/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/timelion/mappings.json +++ b/test/functional/fixtures/es_archiver/timelion/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/visualize_embedding/mappings.json b/test/functional/fixtures/es_archiver/visualize_embedding/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/visualize_embedding/mappings.json +++ b/test/functional/fixtures/es_archiver/visualize_embedding/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/visualize_source-filters/mappings.json b/test/functional/fixtures/es_archiver/visualize_source-filters/mappings.json index 45b2508d38033..451369d85acd8 100644 --- a/test/functional/fixtures/es_archiver/visualize_source-filters/mappings.json +++ b/test/functional/fixtures/es_archiver/visualize_source-filters/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/fixtures/es_archiver/visualize_source_filters/mappings.json b/test/functional/fixtures/es_archiver/visualize_source_filters/mappings.json index 5ac113e7e4b74..ec6a9ce7f13a1 100644 --- a/test/functional/fixtures/es_archiver/visualize_source_filters/mappings.json +++ b/test/functional/fixtures/es_archiver/visualize_source_filters/mappings.json @@ -155,48 +155,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/test/functional/page_objects/timelion_page.ts b/test/functional/page_objects/timelion_page.ts index 65584d98022be..bdfde3c8145e5 100644 --- a/test/functional/page_objects/timelion_page.ts +++ b/test/functional/page_objects/timelion_page.ts @@ -10,71 +10,21 @@ import { FtrService } from '../ftr_provider_context'; export class TimelionPageObject extends FtrService { private readonly testSubjects = this.ctx.getService('testSubjects'); - private readonly log = this.ctx.getService('log'); - private readonly common = this.ctx.getPageObject('common'); - private readonly esArchiver = this.ctx.getService('esArchiver'); - private readonly kibanaServer = this.ctx.getService('kibanaServer'); - - public async initTests() { - await this.kibanaServer.uiSettings.replace({ - defaultIndex: 'logstash-*', - }); - - this.log.debug('load kibana index'); - await this.esArchiver.load('test/functional/fixtures/es_archiver/timelion'); - - await this.common.navigateToApp('timelion'); - } - - public async setExpression(expression: string) { - const input = await this.testSubjects.find('timelionExpressionTextArea'); - await input.clearValue(); - await input.type(expression); - } - - public async updateExpression(updates: string) { - const input = await this.testSubjects.find('timelionExpressionTextArea'); - await input.type(updates); - await this.common.sleep(1000); - } - - public async getExpression() { - const input = await this.testSubjects.find('timelionExpressionTextArea'); - return input.getVisibleText(); - } public async getSuggestionItemsText() { - const elements = await this.testSubjects.findAll('timelionSuggestionListItem'); - return await Promise.all(elements.map(async (element) => await element.getVisibleText())); + const timelionCodeEditor = await this.testSubjects.find('timelionCodeEditor'); + const lists = await timelionCodeEditor.findAllByClassName('monaco-list-row'); + return await Promise.all(lists.map(async (element) => await element.getVisibleText())); } - public async clickSuggestion(suggestionIndex = 0, waitTime = 1000) { - const elements = await this.testSubjects.findAll('timelionSuggestionListItem'); - if (suggestionIndex > elements.length) { + public async clickSuggestion(suggestionIndex = 0) { + const timelionCodeEditor = await this.testSubjects.find('timelionCodeEditor'); + const lists = await timelionCodeEditor.findAllByCssSelector('.monaco-list-row'); + if (suggestionIndex > lists.length) { throw new Error( - `Unable to select suggestion ${suggestionIndex}, only ${elements.length} suggestions available.` + `Unable to select suggestion ${suggestionIndex}, only ${lists.length} suggestions available.` ); } - await elements[suggestionIndex].click(); - // Wait for timelion expression to be updated after clicking suggestions - await this.common.sleep(waitTime); - } - - public async saveTimelionSheet() { - await this.testSubjects.click('timelionSaveButton'); - await this.testSubjects.click('timelionSaveAsSheetButton'); - await this.testSubjects.click('timelionFinishSaveButton'); - await this.testSubjects.existOrFail('timelionSaveSuccessToast'); - await this.testSubjects.waitForDeleted('timelionSaveSuccessToast'); - } - - public async expectWriteControls() { - await this.testSubjects.existOrFail('timelionSaveButton'); - await this.testSubjects.existOrFail('timelionDeleteButton'); - } - - public async expectMissingWriteControls() { - await this.testSubjects.missingOrFail('timelionSaveButton'); - await this.testSubjects.missingOrFail('timelionDeleteButton'); + await lists[suggestionIndex].click(); } } diff --git a/test/functional/services/monaco_editor.ts b/test/functional/services/monaco_editor.ts index 90674e101fc4e..63a5a7105ddb8 100644 --- a/test/functional/services/monaco_editor.ts +++ b/test/functional/services/monaco_editor.ts @@ -11,6 +11,7 @@ import { FtrService } from '../ftr_provider_context'; export class MonacoEditorService extends FtrService { private readonly retry = this.ctx.getService('retry'); private readonly browser = this.ctx.getService('browser'); + private readonly testSubjects = this.ctx.getService('testSubjects'); public async getCodeEditorValue(nthIndex: number = 0) { let values: string[] = []; @@ -27,6 +28,12 @@ export class MonacoEditorService extends FtrService { return values[nthIndex] as string; } + public async typeCodeEditorValue(value: string, testSubjId: string) { + const editor = await this.testSubjects.find(testSubjId); + const textarea = await editor.findByCssSelector('textarea'); + textarea.type(value); + } + public async setCodeEditorValue(value: string, nthIndex = 0) { await this.retry.try(async () => { await this.browser.execute( diff --git a/test/new_visualize_flow/fixtures/es_archiver/kibana/mappings.json b/test/new_visualize_flow/fixtures/es_archiver/kibana/mappings.json index 9f5edaad0fe76..f010fcea90b3f 100644 --- a/test/new_visualize_flow/fixtures/es_archiver/kibana/mappings.json +++ b/test/new_visualize_flow/fixtures/es_archiver/kibana/mappings.json @@ -23,7 +23,6 @@ "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", "search": "181661168bbadd1eff5902361e2a0d5c", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -366,47 +365,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/plugins/features/kibana.json b/x-pack/plugins/features/kibana.json index 867f9ced7ed88..550b3899061d4 100644 --- a/x-pack/plugins/features/kibana.json +++ b/x-pack/plugins/features/kibana.json @@ -7,7 +7,6 @@ "version": "8.0.0", "kibanaVersion": "kibana", "requiredPlugins": ["licensing"], - "optionalPlugins": ["visTypeTimelion"], "configPath": ["xpack", "features"], "server": true, "ui": true, diff --git a/x-pack/plugins/features/server/__snapshots__/oss_features.test.ts.snap b/x-pack/plugins/features/server/__snapshots__/oss_features.test.ts.snap index 954701f0087f4..85eb1f5b71e71 100644 --- a/x-pack/plugins/features/server/__snapshots__/oss_features.test.ts.snap +++ b/x-pack/plugins/features/server/__snapshots__/oss_features.test.ts.snap @@ -551,7 +551,6 @@ Array [ "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad", "lens", "map", @@ -584,7 +583,6 @@ Array [ "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad", "lens", "map", @@ -857,54 +855,6 @@ Array [ ] `; -exports[`buildOSSFeatures with a basic license returns the timelion feature augmented with appropriate sub feature privileges 1`] = ` -Array [ - Object { - "privilege": Object { - "app": Array [ - "timelion", - "kibana", - ], - "catalogue": Array [ - "timelion", - ], - "savedObject": Object { - "all": Array [ - "timelion-sheet", - ], - "read": Array [ - "index-pattern", - ], - }, - "ui": Array [ - "save", - ], - }, - "privilegeId": "all", - }, - Object { - "privilege": Object { - "app": Array [ - "timelion", - "kibana", - ], - "catalogue": Array [ - "timelion", - ], - "savedObject": Object { - "all": Array [], - "read": Array [ - "index-pattern", - "timelion-sheet", - ], - }, - "ui": Array [], - }, - "privilegeId": "read", - }, -] -`; - exports[`buildOSSFeatures with a basic license returns the visualize feature augmented with appropriate sub feature privileges 1`] = ` Array [ Object { @@ -1081,7 +1031,6 @@ Array [ "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad", "lens", "map", @@ -1114,7 +1063,6 @@ Array [ "index-pattern", "search", "visualization", - "timelion-sheet", "canvas-workpad", "lens", "map", @@ -1387,54 +1335,6 @@ Array [ ] `; -exports[`buildOSSFeatures with a enterprise license returns the timelion feature augmented with appropriate sub feature privileges 1`] = ` -Array [ - Object { - "privilege": Object { - "app": Array [ - "timelion", - "kibana", - ], - "catalogue": Array [ - "timelion", - ], - "savedObject": Object { - "all": Array [ - "timelion-sheet", - ], - "read": Array [ - "index-pattern", - ], - }, - "ui": Array [ - "save", - ], - }, - "privilegeId": "all", - }, - Object { - "privilege": Object { - "app": Array [ - "timelion", - "kibana", - ], - "catalogue": Array [ - "timelion", - ], - "savedObject": Object { - "all": Array [], - "read": Array [ - "index-pattern", - "timelion-sheet", - ], - }, - "ui": Array [], - }, - "privilegeId": "read", - }, -] -`; - exports[`buildOSSFeatures with a enterprise license returns the visualize feature augmented with appropriate sub feature privileges 1`] = ` Array [ Object { diff --git a/x-pack/plugins/features/server/oss_features.test.ts b/x-pack/plugins/features/server/oss_features.test.ts index 39bb12d90ea1c..7a1c5951192ec 100644 --- a/x-pack/plugins/features/server/oss_features.test.ts +++ b/x-pack/plugins/features/server/oss_features.test.ts @@ -11,52 +11,10 @@ import { KibanaFeature } from '.'; import { LicenseType, LICENSE_TYPE } from '../../licensing/server'; describe('buildOSSFeatures', () => { - it('returns features including timelion', () => { - expect( - buildOSSFeatures({ - savedObjectTypes: ['foo', 'bar'], - includeTimelion: true, - includeReporting: false, - }).map((f) => f.id) - ).toMatchInlineSnapshot(` -Array [ - "discover", - "visualize", - "dashboard", - "dev_tools", - "advancedSettings", - "indexPatterns", - "savedObjectsManagement", - "timelion", -] -`); - }); - - it('returns features excluding timelion', () => { - expect( - buildOSSFeatures({ - savedObjectTypes: ['foo', 'bar'], - includeTimelion: false, - includeReporting: false, - }).map((f) => f.id) - ).toMatchInlineSnapshot(` -Array [ - "discover", - "visualize", - "dashboard", - "dev_tools", - "advancedSettings", - "indexPatterns", - "savedObjectsManagement", -] -`); - }); - it('returns features including reporting subfeatures', () => { expect( buildOSSFeatures({ savedObjectTypes: ['foo', 'bar'], - includeTimelion: false, includeReporting: true, }).map(({ id, subFeatures }) => ({ id, subFeatures })) ).toMatchSnapshot(); @@ -66,7 +24,6 @@ Array [ expect( buildOSSFeatures({ savedObjectTypes: ['foo', 'bar'], - includeTimelion: false, includeReporting: false, }).map(({ id, subFeatures }) => ({ id, subFeatures })) ).toMatchSnapshot(); @@ -74,7 +31,6 @@ Array [ const features = buildOSSFeatures({ savedObjectTypes: ['foo', 'bar'], - includeTimelion: true, includeReporting: false, }); features.forEach((featureConfig) => { diff --git a/x-pack/plugins/features/server/oss_features.ts b/x-pack/plugins/features/server/oss_features.ts index 14265948c2dee..7c8432b8d9ec7 100644 --- a/x-pack/plugins/features/server/oss_features.ts +++ b/x-pack/plugins/features/server/oss_features.ts @@ -11,13 +11,11 @@ import type { KibanaFeatureConfig, SubFeatureConfig } from '../common'; export interface BuildOSSFeaturesParams { savedObjectTypes: string[]; - includeTimelion: boolean; includeReporting: boolean; } export const buildOSSFeatures = ({ savedObjectTypes, - includeTimelion, includeReporting, }: BuildOSSFeaturesParams): KibanaFeatureConfig[] => { return [ @@ -203,7 +201,6 @@ export const buildOSSFeatures = ({ 'index-pattern', 'search', 'visualization', - 'timelion-sheet', 'canvas-workpad', 'lens', 'map', @@ -221,7 +218,6 @@ export const buildOSSFeatures = ({ 'index-pattern', 'search', 'visualization', - 'timelion-sheet', 'canvas-workpad', 'lens', 'map', @@ -450,39 +446,9 @@ export const buildOSSFeatures = ({ }, }, }, - ...(includeTimelion ? [timelionFeature] : []), ] as KibanaFeatureConfig[]; }; -const timelionFeature: KibanaFeatureConfig = { - id: 'timelion', - name: 'Timelion', - order: 350, - category: DEFAULT_APP_CATEGORIES.kibana, - app: ['timelion', 'kibana'], - catalogue: ['timelion'], - privileges: { - all: { - app: ['timelion', 'kibana'], - catalogue: ['timelion'], - savedObject: { - all: ['timelion-sheet'], - read: ['index-pattern'], - }, - ui: ['save'], - }, - read: { - app: ['timelion', 'kibana'], - catalogue: ['timelion'], - savedObject: { - all: [], - read: ['index-pattern', 'timelion-sheet'], - }, - ui: [], - }, - }, -}; - const reportingPrivilegeGroupName = i18n.translate( 'xpack.features.ossFeatures.reporting.reportingTitle', { diff --git a/x-pack/plugins/features/server/plugin.test.ts b/x-pack/plugins/features/server/plugin.test.ts index ba809187a549e..e5940bc73ae97 100644 --- a/x-pack/plugins/features/server/plugin.test.ts +++ b/x-pack/plugins/features/server/plugin.test.ts @@ -46,36 +46,7 @@ describe('Features Plugin', () => { it('returns OSS + registered kibana features', async () => { const plugin = new FeaturesPlugin(initContext); - const { registerKibanaFeature } = await plugin.setup(coreSetup, {}); - registerKibanaFeature({ - id: 'baz', - name: 'baz', - app: [], - category: { id: 'foo', label: 'foo' }, - privileges: null, - }); - - const { getKibanaFeatures } = plugin.start(coreStart); - - expect(getKibanaFeatures().map((f) => f.id)).toMatchInlineSnapshot(` - Array [ - "baz", - "discover", - "visualize", - "dashboard", - "dev_tools", - "advancedSettings", - "indexPatterns", - "savedObjectsManagement", - ] - `); - }); - - it('returns OSS + registered kibana features with timelion when available', async () => { - const plugin = new FeaturesPlugin(initContext); - const { registerKibanaFeature: registerFeature } = await plugin.setup(coreSetup, { - visTypeTimelion: { uiEnabled: true }, - }); + const { registerKibanaFeature: registerFeature } = await plugin.setup(coreSetup); registerFeature({ id: 'baz', name: 'baz', @@ -96,7 +67,6 @@ describe('Features Plugin', () => { "advancedSettings", "indexPatterns", "savedObjectsManagement", - "timelion", ] `); }); @@ -105,7 +75,7 @@ describe('Features Plugin', () => { typeRegistry.isHidden.mockReturnValueOnce(true); typeRegistry.isHidden.mockReturnValueOnce(false); const plugin = new FeaturesPlugin(initContext); - await plugin.setup(coreSetup, {}); + await plugin.setup(coreSetup); const { getKibanaFeatures } = plugin.start(coreStart); const soTypes = @@ -120,7 +90,7 @@ describe('Features Plugin', () => { it('returns registered elasticsearch features', async () => { const plugin = new FeaturesPlugin(initContext); - const { registerElasticsearchFeature } = await plugin.setup(coreSetup, {}); + const { registerElasticsearchFeature } = await plugin.setup(coreSetup); registerElasticsearchFeature({ id: 'baz', privileges: [ @@ -142,7 +112,7 @@ describe('Features Plugin', () => { it('registers a capabilities provider', async () => { const plugin = new FeaturesPlugin(initContext); - await plugin.setup(coreSetup, {}); + await plugin.setup(coreSetup); expect(coreSetup.capabilities.registerProvider).toHaveBeenCalledTimes(1); expect(coreSetup.capabilities.registerProvider).toHaveBeenCalledWith(expect.any(Function)); diff --git a/x-pack/plugins/features/server/plugin.ts b/x-pack/plugins/features/server/plugin.ts index b1f540031f6dc..c1fbc4b8a5edb 100644 --- a/x-pack/plugins/features/server/plugin.ts +++ b/x-pack/plugins/features/server/plugin.ts @@ -81,10 +81,6 @@ export interface PluginStartContract { getKibanaFeatures(): KibanaFeature[]; } -interface TimelionSetupContract { - uiEnabled: boolean; -} - /** * Represents Features Plugin instance that will be managed by the Kibana plugin system. */ @@ -93,19 +89,13 @@ export class FeaturesPlugin Plugin, RecursiveReadonly> { private readonly logger: Logger; private readonly featureRegistry: FeatureRegistry = new FeatureRegistry(); - private isTimelionEnabled: boolean = false; private isReportingEnabled: boolean = false; constructor(private readonly initializerContext: PluginInitializerContext) { this.logger = this.initializerContext.logger.get(); } - public setup( - core: CoreSetup, - { visTypeTimelion }: { visTypeTimelion?: TimelionSetupContract } - ): RecursiveReadonly { - this.isTimelionEnabled = visTypeTimelion !== undefined && visTypeTimelion.uiEnabled; - + public setup(core: CoreSetup): RecursiveReadonly { defineRoutes({ router: core.http.createRouter(), featureRegistry: this.featureRegistry, @@ -160,14 +150,8 @@ export class FeaturesPlugin new Set([...savedObjectVisibleTypes, ...savedObjectImportableAndExportableHiddenTypes]) ); - this.logger.debug( - `Registering OSS features with SO types: ${savedObjectTypes.join(', ')}. "includeTimelion": ${ - this.isTimelionEnabled - }.` - ); const features = buildOSSFeatures({ savedObjectTypes, - includeTimelion: this.isTimelionEnabled, includeReporting: this.isReportingEnabled, }); diff --git a/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.test.ts b/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.test.ts index 08997a73d26bb..cd037fa062ed8 100644 --- a/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.test.ts +++ b/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.test.ts @@ -37,7 +37,6 @@ describe('Get Kibana Stats', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -53,7 +52,6 @@ describe('Get Kibana Stats', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, indices: 1, plugins: {}, }, @@ -77,7 +75,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -93,7 +90,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, indices: 1, plugins: {}, }, @@ -116,7 +112,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -132,7 +127,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, indices: 1, plugins: {}, }, @@ -155,7 +149,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', foo: { total: 5 }, xpack: { @@ -179,7 +172,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, indices: 1, plugins: { foo: { total: 5 }, fancy: { available: true, total: 15 } }, }, @@ -203,7 +195,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -220,7 +211,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -237,7 +227,6 @@ describe('Get Kibana Stats', () => { search: { total: 0 }, index_pattern: { total: 0 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-02', }, }, @@ -253,7 +242,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 2 }, - timelion_sheet: { total: 2 }, indices: 2, plugins: {}, }, @@ -276,7 +264,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -293,7 +280,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-01', }, }, @@ -310,7 +296,6 @@ describe('Get Kibana Stats', () => { search: { total: 3 }, index_pattern: { total: 3 }, graph_workspace: { total: 1 }, - timelion_sheet: { total: 1 }, index: '.kibana-test-02', }, }, @@ -326,7 +311,6 @@ describe('Get Kibana Stats', () => { search: { total: 4 }, index_pattern: { total: 4 }, graph_workspace: { total: 2 }, - timelion_sheet: { total: 2 }, indices: 2, plugins: {}, }, @@ -353,7 +337,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 4 }, index: '.kibana-test-01', }, }, @@ -370,7 +353,6 @@ describe('Get Kibana Stats', () => { search: { total: 1 }, index_pattern: { total: 1 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 4 }, index: '.kibana-test-01', }, }, @@ -387,7 +369,6 @@ describe('Get Kibana Stats', () => { search: { total: 3 }, index_pattern: { total: 3 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 4 }, index: '.kibana-test-02', }, }, @@ -404,7 +385,6 @@ describe('Get Kibana Stats', () => { search: { total: 300 }, index_pattern: { total: 300 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 4 }, index: '.kibana-test-03', }, }, @@ -420,7 +400,6 @@ describe('Get Kibana Stats', () => { search: { total: 4 }, index_pattern: { total: 4 }, graph_workspace: { total: 6 }, - timelion_sheet: { total: 8 }, indices: 2, plugins: {}, }, @@ -430,7 +409,6 @@ describe('Get Kibana Stats', () => { search: { total: 300 }, index_pattern: { total: 300 }, graph_workspace: { total: 3 }, - timelion_sheet: { total: 4 }, indices: 1, plugins: {}, }, diff --git a/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.ts b/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.ts index 45ef1fbd00339..8313bcc9f5464 100644 --- a/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.ts +++ b/x-pack/plugins/monitoring/server/telemetry_collection/get_kibana_stats.ts @@ -49,7 +49,6 @@ export interface ClusterUsageStats { search?: { total: number }; index_pattern?: { total: number }; graph_workspace?: { total: number }; - timelion_sheet?: { total: number }; indices: number; plugins?: { xpack?: unknown; @@ -95,7 +94,6 @@ export function getUsageStats(rawStats: estypes.SearchResponse search: rollUpTotals(rolledUpStats, currUsage, 'search'), index_pattern: rollUpTotals(rolledUpStats, currUsage, 'index_pattern'), graph_workspace: rollUpTotals(rolledUpStats, currUsage, 'graph_workspace'), - timelion_sheet: rollUpTotals(rolledUpStats, currUsage, 'timelion_sheet'), indices: rollUpIndices(rolledUpStats), }; @@ -108,7 +106,6 @@ export function getUsageStats(rawStats: estypes.SearchResponse /* eslint-disable @typescript-eslint/naming-convention */ index_pattern, graph_workspace, - timelion_sheet, /* eslint-enable @typescript-eslint/naming-convention */ xpack, ...pluginsTop diff --git a/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts b/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts index b5c0972031a8f..06be065c28a71 100644 --- a/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts +++ b/x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts @@ -138,7 +138,6 @@ export interface UsageData extends UsageStats { graph?: number; uptime?: number; savedObjectsManagement?: number; - timelion?: number; dev_tools?: number; advancedSettings?: number; infrastructure?: number; @@ -269,12 +268,6 @@ export function getSpacesUsageCollector( description: 'The number of spaces which have this feature disabled.', }, }, - timelion: { - type: 'long', - _meta: { - description: 'The number of spaces which have this feature disabled.', - }, - }, dev_tools: { type: 'long', _meta: { diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 642189f716539..5cf39b89376d4 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -6655,12 +6655,6 @@ "description": "The number of spaces which have this feature disabled." } }, - "timelion": { - "type": "long", - "_meta": { - "description": "The number of spaces which have this feature disabled." - } - }, "dev_tools": { "type": "long", "_meta": { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index c71980f14d428..6191afce42b04 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -4575,80 +4575,12 @@ "telemetry.welcomeBanner.enableButtonLabel": "有効にする", "telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText": "プライバシーポリシー", "telemetry.welcomeBanner.title": "Elastic Stack の改善にご協力ください", - "timelion.badge.readOnly.text": "読み取り専用", - "timelion.badge.readOnly.tooltip": "Timelion シートを保存できません", - "timelion.breadcrumbs.create": "作成", - "timelion.breadcrumbs.root": "Timelion", - "timelion.cells.actions.fullscreenAriaLabel": "全画面チャート", - "timelion.cells.actions.fullscreenTooltip": "全画面", - "timelion.cells.actions.removeAriaLabel": "リモートスタート", - "timelion.cells.actions.removeTooltip": "削除", - "timelion.cells.actions.reorderAriaLabel": "ドラッグして並べ替え", - "timelion.cells.actions.reorderTooltip": "ドラッグして並べ替え", - "timelion.chart.seriesList.noSchemaWarning": "次のパネルタイプは存在しません:{renderType}", - "timelion.deprecation.here": "ダッシュボードに移行します。", - "timelion.deprecation.message": "Timelionアプリは7.0以降で非推奨となっています。7.16では削除される予定です。Timelionワークシートを引き続き使用するには、{timeLionDeprecationLink}。", "timelion.emptyExpressionErrorMessage": "Timelion エラー:式が入力されていません", - "timelion.expressionInputAriaLabel": "Timelion 式", - "timelion.expressionInputPlaceholder": "{esQuery} でのクエリを試してみてください。", - "timelion.expressionSuggestions.arg.infoTitle": "情報", - "timelion.expressionSuggestions.arg.listTitle": "引数:", - "timelion.expressionSuggestions.arg.nameTitle": "引数名", - "timelion.expressionSuggestions.arg.typesTitle": "対応タイプ", "timelion.expressionSuggestions.argument.description.acceptsText": "受け入れ", "timelion.expressionSuggestions.func.description.chainableHelpText": "連鎖可能", - "timelion.expressionSuggestions.func.description.chainableText": "{help}(連鎖可能)", "timelion.expressionSuggestions.func.description.dataSourceHelpText": "データソース", - "timelion.expressionSuggestions.func.description.dataSourceText": "{help}(データソース)", "timelion.fitFunctions.carry.downSampleErrorMessage": "ダウンサンプルには「carry」フィットメソドを使用せず、「scale」または「average」を使用してください", - "timelion.fullscreen.exitAriaLabel": "全画面を終了", - "timelion.fullscreen.exitTooltip": "全画面を終了", "timelion.function.help": "Timelion のビジュアライゼーションです。", - "timelion.help.configuration.firstTimeConfigurationLinkText": "初回構成", - "timelion.help.configuration.notValid.advancedSettingsPathText": "管理 / Kibana / 高度な設定", - "timelion.help.configuration.notValid.notValidSettingsErrorMessage": "Elasticsearch の設定を確認できませんでした:{reason}。高度な設定を確認して再試行してください。({count})", - "timelion.help.configuration.notValid.paragraph1": "Logstash を使用している場合、Timelion でのログデータの探索開始に何も構成する必要はありません。他のインデックスを検索するには、{advancedSettingsPath} に移動し、{esDefaultIndex} および {esTimefield} 設定を構成し、インデックスと一致させます。", - "timelion.help.configuration.notValid.paragraph2": "他の Timelion 設定もあります。今のところ他の設定は気にしなくて大丈夫です。後程、必要に応じていつでも設定できることがわかります。", - "timelion.help.configuration.notValid.validateButtonLabel": "構成を検証", - "timelion.help.configuration.notValidTitle": "初回構成", - "timelion.help.configuration.valid.advancedSettingsPathText": "管理/Kibana/高度な設定", - "timelion.help.configuration.valid.intervalIsAutoText": "準備完了です!", - "timelion.help.configuration.valid.intervals.content.intervalIsNotAutoText": "Timelion が適切な間隔を選択できるよう、{auto} に設定します。", - "timelion.help.configuration.valid.intervalsTextPart1": "インプットバーの右にある間隔設定は、サンプリングの頻度をコントロールできます。現在 {interval} に設定されています。", - "timelion.help.configuration.valid.intervalsTextPart2": "Timelion が選択された時間範囲と間隔の組み合わせによりデータポイントが多くなりすぎると判断した場合、エラーが発生します。制限を調整するには、{advancedSettingsPath} で {maxBuckets} を構成します。", - "timelion.help.configuration.valid.intervalsTitle": "間隔", - "timelion.help.configuration.valid.paragraph1Part1": "デフォルトのインデックスと時間フィールドを検証し、すべて問題なさそうです。{statsMin} から {statsMax} へのデータが見つかりました。おそらく準備完了です。何か問題がある場合は、", - "timelion.help.configuration.valid.paragraph1Part2": "で Elasticsearch データソースの構成に関する詳細をご覧ください。", - "timelion.help.configuration.valid.paragraph2": "すでにチャートが 1 つ表示されていますが、興味深いデータを得るにはいくつか調整が必要な可能性があります。", - "timelion.help.configuration.valid.paragraph3": "これで、一定期間のデータポイントの数を示す折れ線グラフが表示されるはずです。", - "timelion.help.configuration.valid.timeRangeText": "時間フィルターを使用して、可視化するデータを含む期間を選択します。上記のすべてまたは一部の時間範囲を含む時間範囲を選択するようにしてください。", - "timelion.help.configuration.valid.timeRangeTitle": "時間範囲", - "timelion.help.configuration.validTitle": "良いお知らせです。Elasticsearch が正しく構成されました!", - "timelion.help.dataTransforming.functionReferenceLinkText": "機能リファレンス", - "timelion.help.dataTransforming.paragraph1": "基本を覚えたところで、Timelion の実力を発揮させましょう。データのサブセットが、一定期間における全体の何パーセントを表しているか見てみましょう。たとえば、Web トラフィックの何パーセントが米国からのものでしょう?", - "timelion.help.dataTransforming.paragraph2": "まず初めに、米国を含むすべてのイベントを見つけます:{esUsQuery}。", - "timelion.help.dataTransforming.paragraph3": "次に、全体に対する米国のイベントの比率を割り出します。{us} をすべてで割るために、{divide} 関数 {divideDataQuery} を使用できます。", - "timelion.help.dataTransforming.paragraph4": "まぁまぁですが、これでは 0 から 1 までの値になってしまいます。パーセンテージに変換するには、100 を掛けます:{multiplyDataQuery}。", - "timelion.help.dataTransforming.paragraph5": "これでトラフィックの何パーセントが米国からのものなのか分かり、一定期間内にどのように変化したのか見ることができます!Timelion には、{sum}、{subtract}、{multiply}、{divide} などのいくつもの演算機能が搭載されています。これらの多くが数列や数字を扱えます。また、{movingaverage}、{abs}、{derivative} といった他の便利な変換機能もあります。", - "timelion.help.dataTransforming.paragraph6Part1": "構文を学んだところで、", - "timelion.help.dataTransforming.paragraph6Part2": "Timelion で利用できるすべての機能の使い方をご覧ください。ツールバーの\\{Docs\\}をクリックしていつでもリファレンスを表示できます。このチュートリアルに戻るには、リファレンスの上にある \\{Tutorial\\} リンクをクリックします。", - "timelion.help.dataTransformingTitle": "データの変換:お楽しみの始まりです!", - "timelion.help.dontShowHelpButtonLabel": "今後表示しない", - "timelion.help.expressions.examples.customStylingDescription": "{descriptionTitle}初めの数列を赤くし、2 つ目の数列に 1 ピクセル幅のバーを使用します。", - "timelion.help.expressions.examples.customStylingDescriptionTitle": "カスタムスタイリング。", - "timelion.help.expressions.examples.groupedExpressionsDescription": "{descriptionTitle} 式のグループを関数に連結させることもできます。ここでは両方の数列が線ではなく点で表示されています。", - "timelion.help.expressions.examples.groupedExpressionsDescriptionTitle": "式のグループ化。", - "timelion.help.expressions.examples.namedArgumentsDescription": "{descriptionTitle}引数の指定順序を覚える必要はありません。名前付き引数を使えば、式の読み書きが楽になります。", - "timelion.help.expressions.examples.namedArgumentsDescriptionTitle": "名前付き引数。", - "timelion.help.expressions.examples.twoExpressionsDescription": "{descriptionTitle}同じチャートに 2 つの式が使えます。", - "timelion.help.expressions.examples.twoExpressionsDescriptionTitle": "2 倍の楽しみ。", - "timelion.help.expressions.functionReferenceLinkText": "機能リファレンス", - "timelion.help.expressions.paragraph1": "それぞれの式はデータソース関数で始まります。ここから、新しい関数をデータソースに追加して変換や強化ができます。", - "timelion.help.expressions.paragraph2": "ところで、ここから先はデータの持ち主が一番よくご存知なのではないでしょうか。サンプルクエリをより有意義なものと自由に置き換えてみてください。", - "timelion.help.expressions.paragraph3": "実験をします。ツールバーの{strongAdd}をクリックして、他のチャートをいくつか追加してみましょう。そして、チャートを選択して次の式の内の 1 つをコピーし、インプットバーに貼り付けて、Enter を押します。リセットして繰り返し、他の式を試してみましょう。", - "timelion.help.expressions.paragraph4": "Timelion は、チャートの見た目をカスタマイズするための他のビュー変換機能も搭載しています。完全なリストは次のリソースをご覧ください", - "timelion.help.expressions.strongAddText": "追加", - "timelion.help.expressionsTitle": "式を使って式を定義", "timelion.help.functions.absHelpText": "数列リストの各値の絶対値を返します", "timelion.help.functions.aggregate.args.functionHelpText": "{functions} の 1 つ", "timelion.help.functions.aggregateHelpText": "数列のすべての点の処理結果に基づく線を作成します。利用可能な関数:{functions}", @@ -4779,64 +4711,9 @@ "timelion.help.functions.yaxis.args.unitsHelpText": "Y 軸のラベルのフォーマットに使用する機能です。次のいずれかです。{formatters}", "timelion.help.functions.yaxis.args.yaxisHelpText": "この数列をプロットする数字の Y 軸です。例:2 本目の Y 軸は .yaxis(2)になります。", "timelion.help.functions.yaxisHelpText": "さまざまな Y 軸のオプションを構成します。おそらく最も重要なのは、N 本目(例:2 本目)の Y 軸を追加する機能です。", - "timelion.help.mainPage.functionReference.detailsTable.acceptedTypesColumnLabel": "対応タイプ", - "timelion.help.mainPage.functionReference.detailsTable.argumentNameColumnLabel": "引数名", - "timelion.help.mainPage.functionReference.detailsTable.informationColumnLabel": "情報", - "timelion.help.mainPage.functionReference.gettingStartedText": "関数をクリックすると詳細が表示されます。初心者の方ですか?", - "timelion.help.mainPage.functionReference.noArgumentsFunctionErrorMessage": "この関数には引数を使用できません。簡単でしょう?", - "timelion.help.mainPage.functionReference.welcomePageLinkText": "チュートリアルをご覧ください", - "timelion.help.mainPage.functionReferenceTitle": "機能リファレンス", - "timelion.help.mainPage.keyboardTips.autoComplete.downArrowDescription": "自動入力メニューに焦点を切り替えます。矢印を使用してさらに用語を選択します", - "timelion.help.mainPage.keyboardTips.autoComplete.downArrowLabel": "下矢印", - "timelion.help.mainPage.keyboardTips.autoComplete.enterTabDescription": "現在の選択項目または自動入力メニューで最も使用されている用語を選択します", - "timelion.help.mainPage.keyboardTips.autoComplete.escDescription": "自動入力メニューを閉じます", - "timelion.help.mainPage.keyboardTips.autoCompleteTitle": "自動入力が有効な場合", - "timelion.help.mainPage.keyboardTips.generalEditing.submitRequestText": "リクエストを送信します", - "timelion.help.mainPage.keyboardTips.generalEditingTitle": "一般編集", - "timelion.help.mainPage.keyboardTipsTitle": "キーボードのヒント", - "timelion.help.mainPageTitle": "ヘルプ", - "timelion.help.nextPageButtonLabel": "次へ", - "timelion.help.previousPageButtonLabel": "前へ", - "timelion.help.querying.countMetricAggregationLinkText": "Elasticsearch メトリック集約", - "timelion.help.querying.countTextPart1": "イベントをカウントするのも良いですが、Elasticsearch のデータソースは単独の値を返す", - "timelion.help.querying.countTextPart2": "もサポートしています。最も便利なものには、{min}、{max}、{avg}、{sum}、{cardinality} があります。{srcIp} フィールドのユニークカウントを求めたいとしましょう。{cardinality} メトリック {esCardinalityQuery} を使用します。{bytes} フィールドの平均を取得するには、{avg} metric:メトリック {esAvgQuery} を使用できます。", - "timelion.help.querying.countTitle": "カウントを超えて", - "timelion.help.querying.esAsteriskQueryDescriptionText": "Elasticsearch、デフォルトインデックスのすべてを計算", - "timelion.help.querying.esIndexQueryDescriptionText": "* を logstash-* インデックスの q(クエリ)として使用します", - "timelion.help.querying.luceneQueryLinkText": "Lucene クエリ文字列", - "timelion.help.querying.paragraph1": "Elasticsearch データソースが利用可能であることを確認済みなので、クエリの送信ができます。手始めに、インプットバーに {esPattern} と入力し Enter を押してみましょう。", - "timelion.help.querying.paragraph2Part1": "これは{esAsteriskQueryDescription}となります。サブセットを把握したい場合は、{htmlQuery} で {html} に一致するイベントをカウントしたり、{bobQuery} で {user} フィールドに {bob} を含み、{bytes} フィールドが 100 より大きな値のイベントを検索したりできます。このクエリはシングルクォートで囲まれています。スペースを含むためです。いずれかの", - "timelion.help.querying.paragraph2Part2": "を {esQuery} 関数の初めの引数として入力することができます。", - "timelion.help.querying.passingArgumentsText": "Timelion には一般的な操作を簡単に行えるよう、いくつものショートカットがあります。スペースや特殊文字を含まないシンプルな引数用のものがその一つで、クォートを使う必要はありません。また、多くの関数にデフォルトがあります。たとえば、{esEmptyQuery} と {esStarQuery} で実行される処理は同じです。引数には名前も付いているため、特定の順序で指定する必要はありません。たとえば、{esLogstashQuery} を入力して、Elasticsearch データソース {esIndexQueryDescription} に命令することができます。", - "timelion.help.querying.passingArgumentsTitle": "引数の受け渡し", - "timelion.help.queryingTitle": "Elasticsearch データソースにクエリを実行中", - "timelion.help.unknownErrorMessage": "不明なエラー", - "timelion.help.welcome.content.emphasizedEverythingText": "すべて", - "timelion.help.welcome.content.functionReferenceLinkText": "関数リファレンスに移動", - "timelion.help.welcome.content.paragraph1": "Timelion は時系列に関する {emphasizedEverything} を司る、全知全能のツールです。データストアから提供された時系列データは、Timelion にお任せください。Timelion は複数データソースのデータセットを、覚えやすい式構文で比較、結合、整理できます。このチュートリアルは Elasticsearch が中心となりますが、ここで学んだことは Timelion がサポートするすべてのデータソースに適用できます。", - "timelion.help.welcome.content.paragraph2": "はじめてみる{strongNext} をクリックします。チュートリアルをスキップしてドキュメントを表示しますか?", - "timelion.help.welcome.content.strongNextText": "次へ", - "timelion.help.welcomeTitle": "{strongTimelionLabel} へようこそ!", - "timelion.intervals.customIntervalAriaLabel": "カスタム間隔", - "timelion.intervals.selectIntervalAriaLabel": "間隔を選択", "timelion.noFunctionErrorMessage": "そのような関数はありません:{name}", - "timelion.panels.noRenderFunctionErrorMessage": "パネルにはレンダリング関数が必要です", "timelion.panels.timechart.unknownIntervalErrorMessage": "不明な間隔", "timelion.requestHandlerErrorTitle": "Timelion リクエストエラー", - "timelion.savedObjectFinder.addNewItemButtonLabel": "新規{item}を追加", - "timelion.savedObjectFinder.manageItemsButtonLabel": "{items}の管理", - "timelion.savedObjectFinder.noMatchesFoundDescription": "一致する{items}が見つかりません。", - "timelion.savedObjectFinder.pageItemsFromHitCountDescription": "{pageFirstItem}-{pageLastItem} of {hitCount}", - "timelion.savedObjectFinder.sortByButtonLabeAscendingScreenReaderOnly": "昇順", - "timelion.savedObjectFinder.sortByButtonLabeDescendingScreenReaderOnly": "降順", - "timelion.savedObjectFinder.sortByButtonLabel": "名前", - "timelion.savedObjectFinder.sortByButtonLabelScreenReaderOnly": "並べ替え基準", - "timelion.savedObjects.howToSaveAsNewDescription": "以前のバージョンの Kibana では、{savedObjectName} の名前を変更すると新しい名前でコピーが作成されました。現在のバージョンで同じように保存するには、[新規 {savedObjectName} として保存]チェックボックスを使用します。", - "timelion.savedObjects.saveAsNewLabel": "新規 {savedObjectName} として保存", - "timelion.saveExpression.successNotificationText": "保存された式「{title}」", - "timelion.saveSheet.successNotificationText": "保存されたシート「{title}」", - "timelion.search.submitAriaLabel": "検索", - "timelion.searchErrorTitle": "Timelion リクエストエラー", "timelion.serverSideErrors.argumentsOverflowErrorMessage": "{functionName} に引き渡された引数が多すぎます", "timelion.serverSideErrors.bucketsOverflowErrorMessage": "最大バケットを超えました:{bucketCount}/{maxBuckets} が許可されています。より広い間隔または短い期間を選択してください", "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "色が指定されていません", @@ -4857,47 +4734,8 @@ "timelion.serverSideErrors.yaxisFunction.notSupportedUnitTypeErrorMessage": "{units} はサポートされているユニットタイプではありません。", "timelion.serverSideErrors.yaxisFunction.notValidCurrencyFormatErrorMessage": "通貨は 3 文字のコードでなければなりません", "timelion.timelionDescription": "グラフに時系列データを表示します。", - "timelion.topNavMenu.addChartButtonAriaLabel": "チャートを追加", - "timelion.topNavMenu.addChartButtonLabel": "追加", - "timelion.topNavMenu.delete.modal.confirmButtonLabel": "削除", - "timelion.topNavMenu.delete.modal.successNotificationText": "「{title}」が削除されました", - "timelion.topNavMenu.delete.modal.warningText": "削除されたシートは復元できません。", - "timelion.topNavMenu.delete.modalTitle": "Timelion シート「{title}」を削除しますか?", - "timelion.topNavMenu.deleteSheetButtonAriaLabel": "現在のシートを削除", - "timelion.topNavMenu.deleteSheetButtonLabel": "削除", - "timelion.topNavMenu.helpButtonAriaLabel": "ヘルプ", - "timelion.topNavMenu.helpButtonLabel": "ヘルプ", - "timelion.topNavMenu.newSheetButtonAriaLabel": "新規シート", - "timelion.topNavMenu.newSheetButtonLabel": "新規", - "timelion.topNavMenu.openSheetButtonAriaLabel": "シートを開く", - "timelion.topNavMenu.openSheetButtonLabel": "開く", - "timelion.topNavMenu.openSheetTitle": "シートを開く", - "timelion.topNavMenu.options.columnsCountLabel": "列(列カウントは 12 できっかりと割れる必要があります)", - "timelion.topNavMenu.options.rowsCountLabel": "行(これは現在のウィンドウの縦の長さに基づく目標値です)。", - "timelion.topNavMenu.optionsButtonAriaLabel": "オプション", - "timelion.topNavMenu.optionsButtonLabel": "オプション", - "timelion.topNavMenu.save.saveAsDashboardPanel.inputPlaceholder": "このパネルに名前を付ける", - "timelion.topNavMenu.save.saveAsDashboardPanel.selectedExpressionLabel": "現在選択されている式", - "timelion.topNavMenu.save.saveAsDashboardPanel.submitButtonLabel": "保存", - "timelion.topNavMenu.save.saveAsDashboardPanelDescription": "Kibana ダッシュボードにチャートの追加が必要ですか?できます!このオプションは、現在選択されている式を、他のオブジェクトの追加と同じように Kibana ダッシュボードに追加可能なパネルとして保存します。他のパネルへのリファレンスが使用されている場合、リファレンスの表現を直接保存する表現にコピーして、リファレンスを削除する必要があります。他の表現式を保存するよう選択するには、チャートをクリックします。", - "timelion.topNavMenu.save.saveAsDashboardPanelLabel": "式に名前を付けて保存", - "timelion.topNavMenu.save.saveAsDashboardPanelTitle": "現在の式を Kibana ダッシュボードのパネルとして保存", - "timelion.topNavMenu.save.saveEntireSheet.inputAriaLabel": "名前", - "timelion.topNavMenu.save.saveEntireSheet.inputPlaceholder": "このシートに名前を付ける...", - "timelion.topNavMenu.save.saveEntireSheet.submitButtonLabel": "保存", - "timelion.topNavMenu.save.saveEntireSheetDescription": "Timelion 式を主に Timelion アプリで使用し、Kibana のダッシュボードに Timelion のチャートを追加する必要がない場合は、このオプションを使用します。他のパネルへのリファレンスを使用する場合もこのオプションを使用します。", - "timelion.topNavMenu.save.saveEntireSheetLabel": "シートに名前を付けて保存", - "timelion.topNavMenu.save.saveEntireSheetTitle": "Timelion シート全体の保存", - "timelion.topNavMenu.saveSheetButtonAriaLabel": "シートを保存", - "timelion.topNavMenu.saveSheetButtonLabel": "保存", - "timelion.topNavMenu.sheetOptionsTitle": "シートオプション", - "timelion.topNavMenu.statsDescription": "クエリ時間 {queryTime}ms / 処理時間 {processingTime}ms", - "timelion.uiSettings.defaultColumnsDescription": "デフォルトの Timelion シートの列数です", - "timelion.uiSettings.defaultColumnsLabel": "デフォルトの列", "timelion.uiSettings.defaultIndexDescription": "{esParam} で検索するデフォルトの Elasticsearch インデックスです", "timelion.uiSettings.defaultIndexLabel": "デフォルトのインデックス", - "timelion.uiSettings.defaultRowsDescription": "デフォルトの Timelion シートの行数です", - "timelion.uiSettings.defaultRowsLabel": "デフォルトの行", "timelion.uiSettings.experimentalLabel": "実験的", "timelion.uiSettings.graphiteURLDescription": "{experimentalLabel} Graphite ホストの URL", "timelion.uiSettings.graphiteURLLabel": "Graphite URL", @@ -4910,8 +4748,6 @@ "timelion.uiSettings.minimumIntervalLabel": "最低間隔", "timelion.uiSettings.quandlKeyDescription": "{experimentalLabel} www.quandl.com からの API キーです", "timelion.uiSettings.quandlKeyLabel": "Quandl キー", - "timelion.uiSettings.showTutorialDescription": "Timelion アプリの起動時にデフォルトでチュートリアルを表示しますか?", - "timelion.uiSettings.showTutorialLabel": "チュートリアルを表示", "timelion.uiSettings.targetBucketsDescription": "自動間隔の使用時に目標となるバケット数です。", "timelion.uiSettings.targetBucketsLabel": "目標バケット数", "timelion.uiSettings.timeFieldDescription": "{esParam} の使用時にタイムスタンプを含むデフォルトのフィールドです", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index ae2793d56ca9b..648e55af52307 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -4620,80 +4620,12 @@ "telemetry.welcomeBanner.enableButtonLabel": "启用", "telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText": "隐私声明", "telemetry.welcomeBanner.title": "帮助我们改进 Elastic Stack", - "timelion.badge.readOnly.text": "只读", - "timelion.badge.readOnly.tooltip": "无法保存 Timelion 工作表", - "timelion.breadcrumbs.create": "创建", - "timelion.breadcrumbs.root": "Timelion", - "timelion.cells.actions.fullscreenAriaLabel": "全屏图表", - "timelion.cells.actions.fullscreenTooltip": "全屏", - "timelion.cells.actions.removeAriaLabel": "删除图表", - "timelion.cells.actions.removeTooltip": "移除", - "timelion.cells.actions.reorderAriaLabel": "拖动以重新排序", - "timelion.cells.actions.reorderTooltip": "拖动以重新排序", - "timelion.chart.seriesList.noSchemaWarning": "没有此类面板类型:{renderType}", - "timelion.deprecation.here": "请将其迁移至仪表板。", - "timelion.deprecation.message": "Timelion 应用自 7.0 版起已过时,将在 7.16 中移除。要继续使用 Timelion 工作表,{timeLionDeprecationLink}。", "timelion.emptyExpressionErrorMessage": "Timelion 错误:未提供表达式", - "timelion.expressionInputAriaLabel": "Timelion 表达式", - "timelion.expressionInputPlaceholder": "请尝试使用 {esQuery} 查询", - "timelion.expressionSuggestions.arg.infoTitle": "信息", - "timelion.expressionSuggestions.arg.listTitle": "参数:", - "timelion.expressionSuggestions.arg.nameTitle": "参数类型", - "timelion.expressionSuggestions.arg.typesTitle": "接受的类型", "timelion.expressionSuggestions.argument.description.acceptsText": "接受", "timelion.expressionSuggestions.func.description.chainableHelpText": "可串接", - "timelion.expressionSuggestions.func.description.chainableText": "{help}(可链接)", "timelion.expressionSuggestions.func.description.dataSourceHelpText": "数据源", - "timelion.expressionSuggestions.func.description.dataSourceText": "{help}(数据源)", "timelion.fitFunctions.carry.downSampleErrorMessage": "请勿使用“carry”拟合方法降低采样率,而是使用“scale”或“average”", - "timelion.fullscreen.exitAriaLabel": "退出全屏", - "timelion.fullscreen.exitTooltip": "退出全屏", "timelion.function.help": "Timelion 可视化", - "timelion.help.configuration.firstTimeConfigurationLinkText": "首次配置", - "timelion.help.configuration.notValid.advancedSettingsPathText": "管理/Kibana/高级设置", - "timelion.help.configuration.notValid.notValidSettingsErrorMessage": "无法验证 Elasticsearch 设置:{reason}。请检查您的高级设置,然后重试。({count})", - "timelion.help.configuration.notValid.paragraph1": "如果正在使用 Logstash,则无需进行任何配置,即可开始使用 Timelion 浏览日志数据。要搜索其他索引,请前往 {advancedSettingsPath} 并配置 {esDefaultIndex} 和 {esTimefield} 设置,以匹配您的索引。", - "timelion.help.configuration.notValid.paragraph2": "您还会看到一些其他 Timelion 设置。您现在无需担心这些设置。稍后就会发现,您可以根据需要即时设置其中大部分的设置。", - "timelion.help.configuration.notValid.validateButtonLabel": "验证配置", - "timelion.help.configuration.notValidTitle": "首次配置", - "timelion.help.configuration.valid.advancedSettingsPathText": "管理/Kibana/高级设置", - "timelion.help.configuration.valid.intervalIsAutoText": "全部准备就绪!", - "timelion.help.configuration.valid.intervals.content.intervalIsNotAutoText": "将其设为 {auto} 以允许 Timelion 选择适当的间隔。", - "timelion.help.configuration.valid.intervalsTextPart1": "输入栏右侧的时间间隔选择器可让您控制采样频率。当前设为 {interval}。", - "timelion.help.configuration.valid.intervalsTextPart2": "如果 Timelion 认为您的时间范围和时间间隔组合生成的数据点过多,将引发错误。可以通过在 {advancedSettingsPath} 中配置 {maxBuckets},来调整该限制。", - "timelion.help.configuration.valid.intervalsTitle": "时间间隔", - "timelion.help.configuration.valid.paragraph1Part1": "我们已验证您的默认索引和时间字段,所有设置都看起来没有什么问题。我们找到 {statsMin} 到 {statsMax} 的数据。您大概已准备就绪。如果有问题,请参阅", - "timelion.help.configuration.valid.paragraph1Part2": ",了解有关配置 Elasticsearch 数据源的信息。", - "timelion.help.configuration.valid.paragraph2": "您应该能看到一个图表,但还需要做一些调整才能看到所有感兴趣的数据:", - "timelion.help.configuration.valid.paragraph3": "现在,您应看到一个数据点计数随时间变化的折线图。", - "timelion.help.configuration.valid.timeRangeText": "使用时间筛选,选择包含要可视化的数据的时间段。请确保选择包含上述所示全部或部分时间范围的时间段。", - "timelion.help.configuration.valid.timeRangeTitle": "时间范围", - "timelion.help.configuration.validTitle": "真棒,Elasticsearch 配置正确!", - "timelion.help.dataTransforming.functionReferenceLinkText": "函数引用", - "timelion.help.dataTransforming.paragraph1": "至此,您已经掌握了基础知识,接下来开始体验 Timelion 的强大功能。让我们来计算随着时间的推移数据的某个子集占整体数据的百分比。例如,Web 流量中来自美国的占多少百分比?", - "timelion.help.dataTransforming.paragraph2": "首先,我们需要查找包含 US 的所有事件:{esUsQuery}。", - "timelion.help.dataTransforming.paragraph3": "接下来,要计算美国事件与全部事件的比率。要将 {us} 除以全部,我们可以使用 {divide} 函数:{divideDataQuery}。", - "timelion.help.dataTransforming.paragraph4": "还不错,但这是一个介于 0 到 1 之间的数字。要将其转换为百分比,只需乘以 100:{multiplyDataQuery}。", - "timelion.help.dataTransforming.paragraph5": "现在,我们知道了来自美国的流量所占的百分比,并且可以看到随时间的推移它的变化情况!Timelion 具有很多内置算术函数,例如 {sum}、{subtract}、{multiply} 和 {divide}。其中很多函数可以取序列或数字。此外,还有其他有用的数据转换函数,例如 {movingaverage}、{abs} 和 {derivative}。", - "timelion.help.dataTransforming.paragraph6Part1": "现在您已熟悉了语法,然后,请参阅", - "timelion.help.dataTransforming.paragraph6Part2": ",了解如何使用所有可用的 Timelion 函数。您可以通过单击工具栏上的\\{Docs\\},随时查看参考资料。要返回此教程,请单击参考资料顶部的\\{Tutorial\\}链接。", - "timelion.help.dataTransformingTitle": "转换您的数据:真正的乐趣所在!", - "timelion.help.dontShowHelpButtonLabel": "不再显示此内容", - "timelion.help.expressions.examples.customStylingDescription": "{descriptionTitle}将第一个序列着色为红色,并为第二个序列使用 1 像素宽的条。", - "timelion.help.expressions.examples.customStylingDescriptionTitle": "定制样式。", - "timelion.help.expressions.examples.groupedExpressionsDescription": "{descriptionTitle}您还可以将表达式组链锁到函数。这里两个序列都显示为点,而不是线。", - "timelion.help.expressions.examples.groupedExpressionsDescriptionTitle": "将表达式分组。", - "timelion.help.expressions.examples.namedArgumentsDescription": "{descriptionTitle}请不要尝试记住指定参数所需的顺序,使用命名参数可使表达式更易于读写。", - "timelion.help.expressions.examples.namedArgumentsDescriptionTitle": "命名参数。", - "timelion.help.expressions.examples.twoExpressionsDescription": "{descriptionTitle}同一个图表上的两个表达式。", - "timelion.help.expressions.examples.twoExpressionsDescriptionTitle": "乐趣倍增。", - "timelion.help.expressions.functionReferenceLinkText": "函数引用", - "timelion.help.expressions.paragraph1": "每个表达式都以数据源函数开头。接着,您可以将新函数新函数到数据源后面,以转换和增加数据源。", - "timelion.help.expressions.paragraph2": "顺便提一下,从现在开始,您可能比我们更了解自己的数据。可以随意将示例查询替换为更有意义的查询!", - "timelion.help.expressions.paragraph3": "我们将实验一下,单击工具栏中的”{strongAdd}” 以再添加一个图表或添加三个图表。然后,选择一个图表,复制下列其中一个表达式并粘贴到输入栏,然后按 Enter 键。清除,再重复上述操作来尝试其他表达式。", - "timelion.help.expressions.paragraph4": "Timelion 还提供了其他视图转换函数,可用于定制图表的外观。有关完整列表,请参阅", - "timelion.help.expressions.strongAddText": "添加", - "timelion.help.expressionsTitle": "使用表达式表达您自己", "timelion.help.functions.absHelpText": "返回序列列表中每个值的绝对值", "timelion.help.functions.aggregate.args.functionHelpText": "以下选项之一:{functions}", "timelion.help.functions.aggregateHelpText": "基于对序列中所有点的处理结果创建静态线。可用函数:{functions}", @@ -4824,64 +4756,9 @@ "timelion.help.functions.yaxis.args.unitsHelpText": "用于设置 Y 轴标签格式的函数。以下之一:{formatters}", "timelion.help.functions.yaxis.args.yaxisHelpText": "用于绘制此序列的带编号的 Y 轴,例如,.yaxis(2) 对应于第 2 个 Y 轴。", "timelion.help.functions.yaxisHelpText": "配置各种 Y 轴选项,其中最重要的选项可能是添加第 N 个(例如第 2 个)Y 轴的功能", - "timelion.help.mainPage.functionReference.detailsTable.acceptedTypesColumnLabel": "接受的类型", - "timelion.help.mainPage.functionReference.detailsTable.argumentNameColumnLabel": "参数类型", - "timelion.help.mainPage.functionReference.detailsTable.informationColumnLabel": "信息", - "timelion.help.mainPage.functionReference.gettingStartedText": "请单击任何函数以了解更多信息。马上开始使用?", - "timelion.help.mainPage.functionReference.noArgumentsFunctionErrorMessage": "此函数不接受任何参数。这很简单,不是吗?", - "timelion.help.mainPage.functionReference.welcomePageLinkText": "查看教程", - "timelion.help.mainPage.functionReferenceTitle": "函数引用", - "timelion.help.mainPage.keyboardTips.autoComplete.downArrowDescription": "将焦点切换到自动完成菜单。使用箭头进一步选择词", - "timelion.help.mainPage.keyboardTips.autoComplete.downArrowLabel": "向下箭头", - "timelion.help.mainPage.keyboardTips.autoComplete.enterTabDescription": "选择自动完成菜单中当前选定的词或最顶部的词", - "timelion.help.mainPage.keyboardTips.autoComplete.escDescription": "关闭自动完成菜单", - "timelion.help.mainPage.keyboardTips.autoCompleteTitle": "当自动完成可见时", - "timelion.help.mainPage.keyboardTips.generalEditing.submitRequestText": "提交请求", - "timelion.help.mainPage.keyboardTips.generalEditingTitle": "常规编辑", - "timelion.help.mainPage.keyboardTipsTitle": "键盘提示", - "timelion.help.mainPageTitle": "帮助", - "timelion.help.nextPageButtonLabel": "下一页", - "timelion.help.previousPageButtonLabel": "上一页", - "timelion.help.querying.countMetricAggregationLinkText": "Elasticsearch 指标聚合", - "timelion.help.querying.countTextPart1": "除了具有卓越的事件计数功能,Elasticsearch 数据源还支持任何", - "timelion.help.querying.countTextPart2": "返回单个值的查询。最有用的包括 {min}、{max}、{avg}、{sum} 和 {cardinality}。假设您需要 {srcIp} 字段的唯一计数。只需使用 {cardinality} 指标:{esCardinalityQuery}。要获取 {bytes} 字段的平均值,可以使用 {avg} 指标:{esAvgQuery}。", - "timelion.help.querying.countTitle": "不只是计数", - "timelion.help.querying.esAsteriskQueryDescriptionText": "嗨 Elasticsearch,请在我的默认索引中查找所有内容", - "timelion.help.querying.esIndexQueryDescriptionText": "使用 * 作为 logstash-* 索引的 q (query)", - "timelion.help.querying.luceneQueryLinkText": "Lucene 查询字符串", - "timelion.help.querying.paragraph1": "至此,我们已验证您的 Elasticsearch 数据源工作正常,因此您可以开始提交查询。如果是初学者,请在输入栏中输入 {esPattern},然后按 Enter 键。", - "timelion.help.querying.paragraph2Part1": "即 {esAsteriskQueryDescription}。如果要查找子集,可以输入 {htmlQuery} 之类的内容以算出与 {html} 匹配的事件个数,或输入 {bobQuery} 来查找在 {user} 字段中包含 {bob} 且 {bytes} 字段大于 100 的事件。注意,需要用单引号引起此查询,因为其包含空格。您可以输入任何内容", - "timelion.help.querying.paragraph2Part2": "作为 {esQuery} 函数的第一个参数。", - "timelion.help.querying.passingArgumentsText": "Timelion 具有很多快捷方式,让您可以轻松完成各种常见操作。对于不包含空格或特殊字符的简单参数,无需使用引号。而且很多函数都具有默认值。例如 {esEmptyQuery} 和 {esStarQuery} 有相同的作用。参数也有名称,您无需以特定顺序指定它们。例如,可以输入 {esLogstashQuery},让 Elasticsearch 数据源知道 {esIndexQueryDescription}。", - "timelion.help.querying.passingArgumentsTitle": "传递参数", - "timelion.help.queryingTitle": "查询 Elasticsearch 数据源", - "timelion.help.unknownErrorMessage": "未知错误", - "timelion.help.welcome.content.emphasizedEverythingText": "所有内容", - "timelion.help.welcome.content.functionReferenceLinkText": "跳到函数引用", - "timelion.help.welcome.content.paragraph1": "Timelion 是抓取精准、适用于{emphasizedEverything}的可插拔时间序列接口。如果您的数据存储可以生成时间序列,就能够随意使用 Timelion 的所有强大功能。借助 Timelion,可使用易于掌握的表达式语法,对跨多个数据源的数据集进行比较、合并和整理。尽管本教程主要介绍 Elasticsearch,但您很快会发现,本文所介绍的内容适用于 Timelion 支持的任何数据源。", - "timelion.help.welcome.content.paragraph2": "准备开始了吗?单击“{strongNext}”。想要跳过教程并查看文档?", - "timelion.help.welcome.content.strongNextText": "下一步", - "timelion.help.welcomeTitle": "欢迎来到 {strongTimelionLabel}!", - "timelion.intervals.customIntervalAriaLabel": "定制时间间隔", - "timelion.intervals.selectIntervalAriaLabel": "选择时间间隔", "timelion.noFunctionErrorMessage": "没有此类函数:{name}", - "timelion.panels.noRenderFunctionErrorMessage": "面板必须具有渲染函数", "timelion.panels.timechart.unknownIntervalErrorMessage": "时间间隔未知", "timelion.requestHandlerErrorTitle": "Timelion 请求错误", - "timelion.savedObjectFinder.addNewItemButtonLabel": "添加新的 {item}", - "timelion.savedObjectFinder.manageItemsButtonLabel": "管理 {items}", - "timelion.savedObjectFinder.noMatchesFoundDescription": "未找到任何匹配的 {items}。", - "timelion.savedObjectFinder.pageItemsFromHitCountDescription": "{pageFirstItem}-{pageLastItem}/{hitCount}", - "timelion.savedObjectFinder.sortByButtonLabeAscendingScreenReaderOnly": "升序", - "timelion.savedObjectFinder.sortByButtonLabeDescendingScreenReaderOnly": "降序", - "timelion.savedObjectFinder.sortByButtonLabel": "名称", - "timelion.savedObjectFinder.sortByButtonLabelScreenReaderOnly": "排序依据", - "timelion.savedObjects.howToSaveAsNewDescription": "在 Kibana 的以前版本中,更改 {savedObjectName} 的名称将创建具有新名称的副本。使用“另存为新 {savedObjectName}”复选框来立即执行此操作。", - "timelion.savedObjects.saveAsNewLabel": "另存为新的 {savedObjectName}", - "timelion.saveExpression.successNotificationText": "已保存表达式“{title}”", - "timelion.saveSheet.successNotificationText": "已保存工作表“{title}”", - "timelion.search.submitAriaLabel": "搜索", - "timelion.searchErrorTitle": "Timelion 请求错误", "timelion.serverSideErrors.argumentsOverflowErrorMessage": "太多参数传递到:{functionName}", "timelion.serverSideErrors.bucketsOverflowErrorMessage": "最大桶数已超过:允许 {bucketCount}/{maxBuckets}选择较大的时间间隔或较短的时间范围", "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "未提供颜色", @@ -4902,47 +4779,8 @@ "timelion.serverSideErrors.yaxisFunction.notSupportedUnitTypeErrorMessage": "{units} 为不受支持的单元类型。", "timelion.serverSideErrors.yaxisFunction.notValidCurrencyFormatErrorMessage": "货币必须使用三个字母的代码", "timelion.timelionDescription": "在图表上显示时间序列数据。", - "timelion.topNavMenu.addChartButtonAriaLabel": "添加图表", - "timelion.topNavMenu.addChartButtonLabel": "添加", - "timelion.topNavMenu.delete.modal.confirmButtonLabel": "删除", - "timelion.topNavMenu.delete.modal.successNotificationText": "已删除“{title}”", - "timelion.topNavMenu.delete.modal.warningText": "您无法恢复已删除的工作表。", - "timelion.topNavMenu.delete.modalTitle": "是否删除 Timelion 工作表 “{title}”?", - "timelion.topNavMenu.deleteSheetButtonAriaLabel": "删除当前工作表", - "timelion.topNavMenu.deleteSheetButtonLabel": "删除", - "timelion.topNavMenu.helpButtonAriaLabel": "帮助", - "timelion.topNavMenu.helpButtonLabel": "帮助", - "timelion.topNavMenu.newSheetButtonAriaLabel": "新建工作表", - "timelion.topNavMenu.newSheetButtonLabel": "新建", - "timelion.topNavMenu.openSheetButtonAriaLabel": "打开工作表", - "timelion.topNavMenu.openSheetButtonLabel": "打开", - "timelion.topNavMenu.openSheetTitle": "打开工作表", - "timelion.topNavMenu.options.columnsCountLabel": "列(列数必须均分为 12)", - "timelion.topNavMenu.options.rowsCountLabel": "行(这是基于当前窗口高度的目标)", - "timelion.topNavMenu.optionsButtonAriaLabel": "选项", - "timelion.topNavMenu.optionsButtonLabel": "选项", - "timelion.topNavMenu.save.saveAsDashboardPanel.inputPlaceholder": "命名此面板", - "timelion.topNavMenu.save.saveAsDashboardPanel.selectedExpressionLabel": "当前选择的表达式", - "timelion.topNavMenu.save.saveAsDashboardPanel.submitButtonLabel": "保存", - "timelion.topNavMenu.save.saveAsDashboardPanelDescription": "是否需要将图表添加到 Kibana 仪表板?我们可以做到这一点!此选项会将当前选择的表达式另存为面板,该面板可像任何其他内容一样添加到 Kibana 仪表板。注意,如果使用对其他面板的引用,则需要删除该引用,方法是:将引用的表达式直接复制到要保存的表达式中。单击图表可选择要保存的其他表达式。", - "timelion.topNavMenu.save.saveAsDashboardPanelLabel": "将表达式另存为", - "timelion.topNavMenu.save.saveAsDashboardPanelTitle": "将当前表达式另存为 Kibana 仪表板面板", - "timelion.topNavMenu.save.saveEntireSheet.inputAriaLabel": "名称", - "timelion.topNavMenu.save.saveEntireSheet.inputPlaceholder": "命名此工作表......", - "timelion.topNavMenu.save.saveEntireSheet.submitButtonLabel": "保存", - "timelion.topNavMenu.save.saveEntireSheetDescription": "如果您主要在 Timelion 应用中使用 Timelion 表达式,且不需要将 Timelion 图表添加到 Kibana 仪表板,则需要使用此选项。如果您使用对其他面板的引用,可能也需要此选项。", - "timelion.topNavMenu.save.saveEntireSheetLabel": "将工作表另存为", - "timelion.topNavMenu.save.saveEntireSheetTitle": "保存整个 Timelion 工作表", - "timelion.topNavMenu.saveSheetButtonAriaLabel": "保存工作表", - "timelion.topNavMenu.saveSheetButtonLabel": "保存", - "timelion.topNavMenu.sheetOptionsTitle": "工作表选项", - "timelion.topNavMenu.statsDescription": "查询时间 {queryTime}ms /处理时间 {processingTime}ms", - "timelion.uiSettings.defaultColumnsDescription": "默认情况下 Timelion 工作表上的列数目", - "timelion.uiSettings.defaultColumnsLabel": "默认列", "timelion.uiSettings.defaultIndexDescription": "要使用 {esParam} 搜索的默认 Elasticsearch 索引", "timelion.uiSettings.defaultIndexLabel": "默认索引", - "timelion.uiSettings.defaultRowsDescription": "默认情况下 Timelion 工作表上的行数目", - "timelion.uiSettings.defaultRowsLabel": "默认行数", "timelion.uiSettings.experimentalLabel": "实验性", "timelion.uiSettings.graphiteURLDescription": "{experimentalLabel} Graphite 主机的 URL", "timelion.uiSettings.graphiteURLLabel": "Graphite URL", @@ -4955,8 +4793,6 @@ "timelion.uiSettings.minimumIntervalLabel": "最小时间间隔", "timelion.uiSettings.quandlKeyDescription": "{experimentalLabel} 来自 www.quandl.com 的 API 密钥", "timelion.uiSettings.quandlKeyLabel": "Quandl 密钥", - "timelion.uiSettings.showTutorialDescription": "进入 Timelion 应用时我是否应该默认显示教程?", - "timelion.uiSettings.showTutorialLabel": "显示教程", "timelion.uiSettings.targetBucketsDescription": "使用自动时间间隔时想要的存储桶数目", "timelion.uiSettings.targetBucketsLabel": "目标存储桶", "timelion.uiSettings.timeFieldDescription": "使用 {esParam} 时包含时间戳的默认字段", diff --git a/x-pack/test/api_integration/apis/features/features/features.ts b/x-pack/test/api_integration/apis/features/features/features.ts index 6a6a0e13a1e1e..c157c8ae354ac 100644 --- a/x-pack/test/api_integration/apis/features/features/features.ts +++ b/x-pack/test/api_integration/apis/features/features/features.ts @@ -102,7 +102,6 @@ export default function ({ getService }: FtrProviderContext) { 'enterpriseSearch', 'advancedSettings', 'indexPatterns', - 'timelion', 'graph', 'monitoring', 'savedObjectsManagement', diff --git a/x-pack/test/api_integration/apis/security/privileges.ts b/x-pack/test/api_integration/apis/security/privileges.ts index d39d9e599bcc8..42666e10341f1 100644 --- a/x-pack/test/api_integration/apis/security/privileges.ts +++ b/x-pack/test/api_integration/apis/security/privileges.ts @@ -59,7 +59,6 @@ export default function ({ getService }: FtrProviderContext) { advancedSettings: ['all', 'read'], indexPatterns: ['all', 'read'], savedObjectsManagement: ['all', 'read'], - timelion: ['all', 'read'], osquery: [ 'all', 'read', diff --git a/x-pack/test/api_integration/apis/security/privileges_basic.ts b/x-pack/test/api_integration/apis/security/privileges_basic.ts index dc00be028412b..368d5361b7e1c 100644 --- a/x-pack/test/api_integration/apis/security/privileges_basic.ts +++ b/x-pack/test/api_integration/apis/security/privileges_basic.ts @@ -28,7 +28,6 @@ export default function ({ getService }: FtrProviderContext) { indexPatterns: ['all', 'read'], savedObjectsManagement: ['all', 'read'], savedObjectsTagging: ['all', 'read'], - timelion: ['all', 'read'], graph: ['all', 'read'], maps: ['all', 'read'], canvas: ['all', 'read'], diff --git a/x-pack/test/api_integration/apis/spaces/get_active_space.ts b/x-pack/test/api_integration/apis/spaces/get_active_space.ts index e1edfdf5a7092..627b0847aee35 100644 --- a/x-pack/test/api_integration/apis/spaces/get_active_space.ts +++ b/x-pack/test/api_integration/apis/spaces/get_active_space.ts @@ -17,7 +17,7 @@ export default function ({ getService }: FtrProviderContext) { await spacesService.create({ id: 'foo-space', name: 'Foo Space', - disabledFeatures: ['timelion'], + disabledFeatures: [], color: '#AABBCC', }); }); @@ -63,7 +63,7 @@ export default function ({ getService }: FtrProviderContext) { .expect(200, { id: 'foo-space', name: 'Foo Space', - disabledFeatures: ['timelion'], + disabledFeatures: [], color: '#AABBCC', }); }); diff --git a/x-pack/test/api_integration/apis/telemetry/fixtures/basiccluster.json b/x-pack/test/api_integration/apis/telemetry/fixtures/basiccluster.json index 74d91a6215c79..1da39cf296537 100644 --- a/x-pack/test/api_integration/apis/telemetry/fixtures/basiccluster.json +++ b/x-pack/test/api_integration/apis/telemetry/fixtures/basiccluster.json @@ -195,9 +195,6 @@ "search": { "total": 0 }, - "timelion_sheet": { - "total": 0 - }, "versions": [ { "count": 1, diff --git a/x-pack/test/api_integration/apis/telemetry/fixtures/multicluster.json b/x-pack/test/api_integration/apis/telemetry/fixtures/multicluster.json index f1cc32f33dd2c..ad1ff9e82bb45 100644 --- a/x-pack/test/api_integration/apis/telemetry/fixtures/multicluster.json +++ b/x-pack/test/api_integration/apis/telemetry/fixtures/multicluster.json @@ -972,9 +972,6 @@ "graph_workspace": { "total": 0 }, - "timelion_sheet": { - "total": 0 - }, "indices": 1, "plugins": {} }, diff --git a/x-pack/test/api_integration/apis/telemetry/telemetry_local.ts b/x-pack/test/api_integration/apis/telemetry/telemetry_local.ts index 2412b91e6ee68..508a6584e9246 100644 --- a/x-pack/test/api_integration/apis/telemetry/telemetry_local.ts +++ b/x-pack/test/api_integration/apis/telemetry/telemetry_local.ts @@ -77,7 +77,6 @@ export default function ({ getService }: FtrProviderContext) { expect(stats.stack_stats.kibana.graph_workspace.total).to.be.a('number'); expect(stats.stack_stats.kibana.index_pattern.total).to.be.a('number'); expect(stats.stack_stats.kibana.search.total).to.be.a('number'); - expect(stats.stack_stats.kibana.timelion_sheet.total).to.be.a('number'); expect(stats.stack_stats.kibana.visualization.total).to.be.a('number'); expect(stats.stack_stats.kibana.plugins.apm.services_per_agent).to.be.an('object'); @@ -157,7 +156,6 @@ export default function ({ getService }: FtrProviderContext) { 'stack_stats.kibana.os', 'stack_stats.kibana.plugins', 'stack_stats.kibana.search', - 'stack_stats.kibana.timelion_sheet', 'stack_stats.kibana.versions', 'stack_stats.kibana.visualization', 'stack_stats.xpack.ccr', diff --git a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects/mappings.json b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects/mappings.json index 422e2fa74af00..a083c8f7e3bcf 100644 --- a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects/mappings.json +++ b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects/mappings.json @@ -44,7 +44,6 @@ "search": "181661168bbadd1eff5902361e2a0d5c", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "todo": "082a2cc96a590268344d5cd74c159ac4", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", @@ -2163,47 +2162,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "todo": { "properties": { "icon": { diff --git a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects_different_key/mappings.json b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects_different_key/mappings.json index 6de44ddece61d..22b79eb9bbd8e 100644 --- a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects_different_key/mappings.json +++ b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/encrypted_saved_objects_different_key/mappings.json @@ -44,7 +44,6 @@ "search": "181661168bbadd1eff5902361e2a0d5c", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "todo": "082a2cc96a590268344d5cd74c159ac4", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", @@ -2190,47 +2189,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "todo": { "properties": { "icon": { diff --git a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/key_rotation/mappings.json b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/key_rotation/mappings.json index 26364c89dba3d..74083cbfa949a 100644 --- a/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/key_rotation/mappings.json +++ b/x-pack/test/encrypted_saved_objects_api_integration/fixtures/es_archiver/key_rotation/mappings.json @@ -81,7 +81,6 @@ "maps-telemetry": "5ef305b18111b77789afefbd36b66171", "namespace": "2f4316de49999235636386fe51dc06c1", "cases-user-actions": "32277330ec6b721abe3b846cfd939a71", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "config": "c63748b75f39d0c54de12d12c1ccbc20", "ingest-agent-policies": "8b0733cce189659593659dad8db426f0", @@ -2170,47 +2169,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/apps/saved_objects_management/exports/_7.13_import_saved_objects.ndjson b/x-pack/test/functional/apps/saved_objects_management/exports/_7.13_import_saved_objects.ndjson index 5c80b7f0624fe..21be31349af0f 100644 --- a/x-pack/test/functional/apps/saved_objects_management/exports/_7.13_import_saved_objects.ndjson +++ b/x-pack/test/functional/apps/saved_objects_management/exports/_7.13_import_saved_objects.ndjson @@ -70,7 +70,6 @@ {"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"type\":\"search\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"type\":\"search\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.3.0\",\"type\":\"search\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_6\"}]","timeRestore":false,"title":"shakespeare_dashboard","version":1},"coreMigrationVersion":"7.13.2","id":"73398a90-619e-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.13.1"},"references":[{"id":"185283c0-619e-11eb-aebf-c306684b328d","name":"1:panel_1","type":"visualization"},{"id":"33736660-619e-11eb-aebf-c306684b328d","name":"2:panel_2","type":"visualization"},{"id":"622ac7f0-619e-11eb-aebf-c306684b328d","name":"3:panel_3","type":"visualization"},{"id":"712ebbe0-619d-11eb-aebf-c306684b328d","name":"4:panel_4","type":"search"},{"id":"ddacc820-619d-11eb-aebf-c306684b328d","name":"5:panel_5","type":"search"},{"id":"f852d570-619d-11eb-aebf-c306684b328d","name":"6:panel_6","type":"search"}],"sort":[1623693556928,649],"type":"dashboard","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDEsNF0="} {"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"geo.srcdest\",\"value\":\"IN:US\",\"params\":{\"query\":\"IN:US\",\"type\":\"phrase\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match\":{\"geo.srcdest\":{\"query\":\"IN:US\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"7\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"8\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"10\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"10\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"11\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"11\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"12\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"12\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"13\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"13\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_13\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"14\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"14\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_14\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"15\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"15\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_15\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"16\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"16\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_16\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"17\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_17\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"18\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_18\"},{\"version\":\"7.3.0\",\"type\":\"visualization\",\"gridData\":{\"h\":15,\"i\":\"19\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"19\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_19\"},{\"version\":\"7.3.0\",\"type\":\"search\",\"gridData\":{\"h\":15,\"i\":\"20\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"20\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_20\"}]","timeRestore":false,"title":"logstash_dashboardwithfilters","version":1},"coreMigrationVersion":"7.13.2","id":"79794f20-6249-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.13.1"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"},{"id":"36b91810-6239-11eb-aebf-c306684b328d","name":"1:panel_1","type":"visualization"},{"id":"0a274320-61cc-11eb-aebf-c306684b328d","name":"2:panel_2","type":"visualization"},{"id":"e4aef350-623d-11eb-aebf-c306684b328d","name":"3:panel_3","type":"visualization"},{"id":"f92e5630-623e-11eb-aebf-c306684b328d","name":"4:panel_4","type":"visualization"},{"id":"9853d4d0-623d-11eb-aebf-c306684b328d","name":"5:panel_5","type":"visualization"},{"id":"6ecb33b0-623d-11eb-aebf-c306684b328d","name":"6:panel_6","type":"visualization"},{"id":"b8e35c80-623c-11eb-aebf-c306684b328d","name":"7:panel_7","type":"visualization"},{"id":"f1bc75d0-6239-11eb-aebf-c306684b328d","name":"8:panel_8","type":"visualization"},{"id":"0d8a8860-623a-11eb-aebf-c306684b328d","name":"9:panel_9","type":"visualization"},{"id":"d79fe3d0-6239-11eb-aebf-c306684b328d","name":"10:panel_10","type":"visualization"},{"id":"318375a0-6240-11eb-aebf-c306684b328d","name":"11:panel_11","type":"visualization"},{"id":"e461eb20-6245-11eb-aebf-c306684b328d","name":"12:panel_12","type":"visualization"},{"id":"25bdc750-6242-11eb-aebf-c306684b328d","name":"13:panel_13","type":"visualization"},{"id":"71dd7bc0-6248-11eb-aebf-c306684b328d","name":"14:panel_14","type":"visualization"},{"id":"6aea48a0-6240-11eb-aebf-c306684b328d","name":"15:panel_15","type":"visualization"},{"id":"32b681f0-6241-11eb-aebf-c306684b328d","name":"16:panel_16","type":"visualization"},{"id":"ccca99e0-6244-11eb-aebf-c306684b328d","name":"17:panel_17","type":"visualization"},{"id":"a4d7be80-6245-11eb-aebf-c306684b328d","name":"18:panel_18","type":"visualization"},{"id":"c94d8440-6248-11eb-aebf-c306684b328d","name":"19:panel_19","type":"visualization"},{"id":"db6226f0-61c0-11eb-aebf-c306684b328d","name":"20:panel_20","type":"search"}],"sort":[1623693556928,671],"type":"dashboard","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDIsNF0="} {"attributes":{"description":"","state":{"datasourceStates":{"indexpattern":{"layers":{"037b7937-790b-4d2d-94a5-7f5837a6ef05":{"columnOrder":["b3d46616-75e0-419e-97ea-91148961ef94","025a0fb3-dc44-4f5c-b517-2d71d3f26f14","c476db14-0cc1-40ec-863e-d2779256a407"],"columns":{"025a0fb3-dc44-4f5c-b517-2d71d3f26f14":{"dataType":"date","isBucketed":true,"label":"@timestamp","operationType":"date_histogram","params":{"interval":"auto"},"scale":"interval","sourceField":"@timestamp"},"b3d46616-75e0-419e-97ea-91148961ef94":{"dataType":"string","isBucketed":true,"label":"Top values of geo.srcdest","operationType":"terms","params":{"missingBucket":false,"orderBy":{"columnId":"c476db14-0cc1-40ec-863e-d2779256a407","type":"column"},"orderDirection":"desc","otherBucket":true,"size":3},"scale":"ordinal","sourceField":"geo.srcdest"},"c476db14-0cc1-40ec-863e-d2779256a407":{"dataType":"number","isBucketed":false,"label":"Count of records","operationType":"count","scale":"ratio","sourceField":"Records"}},"incompleteColumns":{}}}}},"filters":[],"query":{"language":"lucene","query":""},"visualization":{"axisTitlesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"fittingFunction":"None","gridlinesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"layers":[{"accessors":["c476db14-0cc1-40ec-863e-d2779256a407"],"layerId":"037b7937-790b-4d2d-94a5-7f5837a6ef05","position":"top","seriesType":"bar_stacked","showGridlines":false,"splitAccessor":"b3d46616-75e0-419e-97ea-91148961ef94","xAccessor":"025a0fb3-dc44-4f5c-b517-2d71d3f26f14"}],"legend":{"isVisible":true,"position":"right"},"preferredSeriesType":"bar_stacked","tickLabelsVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"valueLabels":"hide"}},"title":"lens_verticalstacked","visualizationType":"lnsXY"},"coreMigrationVersion":"7.13.2","id":"8dc19b50-be32-11eb-9520-1b4c3ca6a781","migrationVersion":{"lens":"7.13.1"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"indexpattern-datasource-layer-037b7937-790b-4d2d-94a5-7f5837a6ef05","type":"index-pattern"},{"id":"e6994960-bd9e-11eb-9520-1b4c3ca6a781","name":"tag-ref-e6994960-bd9e-11eb-9520-1b4c3ca6a781","type":"tag"}],"sort":[1623693556928,675],"type":"lens","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDMsNF0="} -{"attributes":{"description":"","hits":0,"timelion_chart_height":275,"timelion_columns":2,"timelion_interval":"auto","timelion_rows":2,"timelion_sheet":[".es(index=logstash-*, \"sum:bytes\")"],"title":"logstash_timelionsheet","version":1},"coreMigrationVersion":"7.13.2","id":"a8961990-be5c-11eb-9520-1b4c3ca6a781","references":[],"sort":[1623693556928,676],"type":"timelion-sheet","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDQsNF0="} {"attributes":{"columns":[],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"alias\":null,\"negate\":false,\"disabled\":false,\"type\":\"phrase\",\"key\":\"geo.dest\",\"params\":{\"query\":\"US\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"geo.dest\":\"US\"}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["@timestamp","desc"]],"title":"drilldown_logstash","version":1},"coreMigrationVersion":"7.13.2","id":"b3288100-ca2c-11eb-bf5e-3de94e83d4f0","migrationVersion":{"search":"7.9.3"},"references":[{"id":"43fcac20-ca27-11eb-bf5e-3de94e83d4f0","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"},{"id":"43fcac20-ca27-11eb-bf5e-3de94e83d4f0","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"}],"sort":[1623415891791,216],"type":"search","updated_at":"2021-06-11T12:51:31.791Z","version":"WzE0NjMsNF0="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"logstash_timelion_panel","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_timelion_panel\",\"type\":\"timelion\",\"aggs\":[],\"params\":{\"expression\":\".es(index=logstash-*, \\\"sum:bytes\\\")\",\"interval\":\"auto\"}}"},"coreMigrationVersion":"7.13.2","id":"b3a44cd0-be5c-11eb-9520-1b4c3ca6a781","migrationVersion":{"visualization":"7.13.1"},"references":[],"sort":[1623693556928,677],"type":"visualization","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDUsNF0="} {"attributes":{"color":"#9170B8","description":"","name":"alltogether"},"coreMigrationVersion":"7.13.2","id":"be808cb0-be32-11eb-9520-1b4c3ca6a781","references":[],"sort":[1623693556928,678],"type":"tag","updated_at":"2021-06-14T17:59:16.928Z","version":"WzE3MDYsNF0="} diff --git a/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts b/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts index 427e42b7b7a65..790909164b33d 100644 --- a/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts +++ b/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts @@ -48,14 +48,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.savedObjects.clickImportDone(); const importedSavedObjects = await testSubjects.getVisibleText('exportAllObjects'); // verifying the count of saved objects after importing .ndjson - await expect(importedSavedObjects).to.be('Export 88 objects'); + await expect(importedSavedObjects).to.be('Export 87 objects'); }); it('should be able to import alerts and actions saved objects from 7.14 into 8.0.0', async function () { await retry.tryForTime(10000, async () => { const existingSavedObjects = await testSubjects.getVisibleText('exportAllObjects'); // Kibana always has 1 advanced setting as a saved object - await expect(existingSavedObjects).to.be('Export 88 objects'); + await expect(existingSavedObjects).to.be('Export 87 objects'); }); await PageObjects.savedObjects.importFile( path.join(__dirname, 'exports', '_7.14_import_alerts_actions.ndjson') @@ -64,7 +64,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.savedObjects.clickImportDone(); const importedSavedObjects = await testSubjects.getVisibleText('exportAllObjects'); // verifying the count of saved objects after importing .ndjson - await expect(importedSavedObjects).to.be('Export 111 objects'); + await expect(importedSavedObjects).to.be('Export 110 objects'); }); }); } diff --git a/x-pack/test/functional/apps/timelion/feature_controls/timelion_security.ts b/x-pack/test/functional/apps/timelion/feature_controls/timelion_security.ts deleted file mode 100644 index 8a1021abb4330..0000000000000 --- a/x-pack/test/functional/apps/timelion/feature_controls/timelion_security.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import { FtrProviderContext } from '../../../ftr_provider_context'; - -export default function ({ getPageObjects, getService }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const security = getService('security'); - const kibanaServer = getService('kibanaServer'); - const PageObjects = getPageObjects([ - 'common', - 'error', - 'header', - 'security', - 'spaceSelector', - 'timelion', - ]); - const appsMenu = getService('appsMenu'); - const globalNav = getService('globalNav'); - - describe('feature controls security', () => { - before(async () => { - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); - }); - - after(async () => { - await kibanaServer.importExport.unload( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - await esArchiver.unload('x-pack/test/functional/es_archives/logstash_functional'); - }); - - // FLAKY: https://github.com/elastic/kibana/issues/110396 - describe.skip('global timelion all privileges', () => { - before(async () => { - await security.role.create('global_timelion_all_role', { - elasticsearch: { - indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], - }, - kibana: [ - { - feature: { - timelion: ['all'], - }, - spaces: ['*'], - }, - ], - }); - - await security.user.create('global_timelion_all_user', { - password: 'global_timelion_all_user-password', - roles: ['global_timelion_all_role'], - full_name: 'test user', - }); - - await PageObjects.security.forceLogout(); - - await PageObjects.security.login( - 'global_timelion_all_user', - 'global_timelion_all_user-password', - { - expectSpaceSelector: false, - } - ); - }); - - after(async () => { - await PageObjects.security.forceLogout(); - await security.role.delete('global_timelion_all_role'); - await security.user.delete('global_timelion_all_user'); - }); - - it('shows timelion navlink', async () => { - const navLinks = (await appsMenu.readLinks()).map((link) => link.text); - expect(navLinks).to.eql(['Overview', 'Timelion']); - }); - - it(`allows a timelion sheet to be created`, async () => { - await PageObjects.common.navigateToApp('timelion'); - await PageObjects.timelion.saveTimelionSheet(); - }); - - it(`doesn't show read-only badge`, async () => { - await globalNav.badgeMissingOrFail(); - }); - }); - - describe('global timelion read-only privileges', () => { - before(async () => { - await security.role.create('global_timelion_read_role', { - elasticsearch: { - indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], - }, - kibana: [ - { - feature: { - timelion: ['read'], - }, - spaces: ['*'], - }, - ], - }); - - await security.user.create('global_timelion_read_user', { - password: 'global_timelion_read_user-password', - roles: ['global_timelion_read_role'], - full_name: 'test user', - }); - - await PageObjects.security.login( - 'global_timelion_read_user', - 'global_timelion_read_user-password', - { - expectSpaceSelector: false, - } - ); - }); - - after(async () => { - await PageObjects.security.forceLogout(); - await security.role.delete('global_timelion_read_role'); - await security.user.delete('global_timelion_read_user'); - }); - - it('shows timelion navlink', async () => { - const navLinks = (await appsMenu.readLinks()).map((link) => link.text); - expect(navLinks).to.eql(['Overview', 'Timelion']); - }); - - it(`does not allow a timelion sheet to be created`, async () => { - await PageObjects.common.navigateToApp('timelion'); - await PageObjects.timelion.expectMissingWriteControls(); - }); - - it(`shows read-only badge`, async () => { - await globalNav.badgeExistsOrFail('Read only'); - }); - }); - - describe('no timelion privileges', () => { - before(async () => { - await security.role.create('no_timelion_privileges_role', { - elasticsearch: { - indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], - }, - kibana: [ - { - feature: { - discover: ['all'], - }, - spaces: ['*'], - }, - ], - }); - - await security.user.create('no_timelion_privileges_user', { - password: 'no_timelion_privileges_user-password', - roles: ['no_timelion_privileges_role'], - full_name: 'test user', - }); - - await PageObjects.security.forceLogout(); - - await PageObjects.security.login( - 'no_timelion_privileges_user', - 'no_timelion_privileges_user-password', - { - expectSpaceSelector: false, - } - ); - }); - - after(async () => { - await PageObjects.security.forceLogout(); - await security.role.delete('no_timelion_privileges_role'); - await security.user.delete('no_timelion_privileges_user'); - }); - - it(`returns a 403`, async () => { - await PageObjects.common.navigateToActualUrl('timelion', '', { - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - }); - PageObjects.error.expectForbidden(); - }); - }); - }); -} diff --git a/x-pack/test/functional/apps/timelion/feature_controls/timelion_spaces.ts b/x-pack/test/functional/apps/timelion/feature_controls/timelion_spaces.ts deleted file mode 100644 index a1dea695fce86..0000000000000 --- a/x-pack/test/functional/apps/timelion/feature_controls/timelion_spaces.ts +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import { FtrProviderContext } from '../../../ftr_provider_context'; - -export default function ({ getPageObjects, getService }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const spacesService = getService('spaces'); - const PageObjects = getPageObjects(['common', 'timelion', 'security', 'spaceSelector']); - const appsMenu = getService('appsMenu'); - const kibanaServer = getService('kibanaServer'); - - describe('timelion', () => { - before(async () => { - await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional'); - }); - - describe('space with no features disabled', () => { - before(async () => { - // we need to load the following in every situation as deleting - // a space deletes all of the associated saved objects - // await esArchiver.load('x-pack/test/functional/es_archives/timelion/feature_controls'); - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - - await spacesService.create({ - id: 'custom_space', - name: 'custom_space', - disabledFeatures: [], - }); - - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/timelion_custom_space.json', - { space: 'custom_space' } - ); - }); - - after(async () => { - await spacesService.delete('custom_space'); - await kibanaServer.importExport.unload( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - }); - - it('shows timelion navlink', async () => { - await PageObjects.common.navigateToApp('home', { - basePath: '/s/custom_space', - }); - - const navLinks = (await appsMenu.readLinks()).map((link) => link.text); - expect(navLinks).to.contain('Timelion'); - }); - - it(`allows a timelion sheet to be created`, async () => { - await PageObjects.common.navigateToApp('timelion', { - basePath: '/s/custom_space', - }); - - await PageObjects.timelion.saveTimelionSheet(); - }); - }); - - describe('space with Timelion disabled', () => { - before(async () => { - // we need to load the following in every situation as deleting - // a space deletes all of the associated saved objects - // await esArchiver.load('x-pack/test/functional/es_archives/timelion/feature_controls'); - - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - - await spacesService.create({ - id: 'custom_space', - name: 'custom_space', - disabledFeatures: ['timelion'], - }); - - await kibanaServer.importExport.load( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/timelion_custom_space.json', - { space: 'custom_space' } - ); - }); - - after(async () => { - await spacesService.delete('custom_space'); - await kibanaServer.importExport.unload( - 'x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json' - ); - }); - - it(`doesn't show timelion navlink`, async () => { - await PageObjects.common.navigateToApp('home', { - basePath: '/s/custom_space', - }); - const navLinks = (await appsMenu.readLinks()).map((link) => link.text); - expect(navLinks).not.to.contain('Timelion'); - }); - - it(`create new timelion returns a 404`, async () => { - await PageObjects.common.navigateToActualUrl('timelion', 'i-exist', { - basePath: '/s/custom_space', - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - }); - - const messageText = await PageObjects.common.getJsonBodyText(); - expect(messageText).to.eql( - JSON.stringify({ - statusCode: 404, - error: 'Not Found', - message: 'Not Found', - }) - ); - }); - - it(`edit timelion sheet which doesn't exist returns a 404`, async () => { - await PageObjects.common.navigateToActualUrl('timelion', 'i-dont-exist', { - basePath: '/s/custom_space', - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - }); - - const messageText = await PageObjects.common.getJsonBodyText(); - expect(messageText).to.eql( - JSON.stringify({ - statusCode: 404, - error: 'Not Found', - message: 'Not Found', - }) - ); - }); - - it(`edit timelion sheet which exists returns a 404`, async () => { - await PageObjects.common.navigateToActualUrl('timelion', 'i-exist', { - basePath: '/s/custom_space', - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - }); - - const messageText = await PageObjects.common.getJsonBodyText(); - expect(messageText).to.eql( - JSON.stringify({ - statusCode: 404, - error: 'Not Found', - message: 'Not Found', - }) - ); - }); - }); - }); -} diff --git a/x-pack/test/functional/apps/timelion/index.ts b/x-pack/test/functional/apps/timelion/index.ts deleted file mode 100644 index 009f080adddec..0000000000000 --- a/x-pack/test/functional/apps/timelion/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { FtrProviderContext } from '../../ftr_provider_context'; - -export default function timelion({ loadTestFile }: FtrProviderContext) { - describe('Timelion', function visualizeTestSuite() { - this.tags(['ciGroup4', 'skipFirefox']); - - loadTestFile(require.resolve('./feature_controls/timelion_security')); - loadTestFile(require.resolve('./feature_controls/timelion_spaces')); - }); -} diff --git a/x-pack/test/functional/config.js b/x-pack/test/functional/config.js index 87a21f815bfd4..f8e8ce76bace1 100644 --- a/x-pack/test/functional/config.js +++ b/x-pack/test/functional/config.js @@ -40,7 +40,6 @@ export default async function ({ readConfigFile }) { resolve(__dirname, './apps/rollup_job'), resolve(__dirname, './apps/maps'), resolve(__dirname, './apps/status_page'), - resolve(__dirname, './apps/timelion'), resolve(__dirname, './apps/upgrade_assistant'), resolve(__dirname, './apps/visualize'), resolve(__dirname, './apps/uptime'), @@ -87,7 +86,6 @@ export default async function ({ readConfigFile }) { '--xpack.security.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"', // server restarts should not invalidate active sessions '--xpack.encryptedSavedObjects.encryptionKey="DkdXazszSCYexXqz4YktBGHCRkV6hyNK"', '--xpack.discoverEnhanced.actions.exploreDataInContextMenu.enabled=true', - '--timelion.ui.enabled=true', '--savedObjects.maxImportPayloadBytes=10485760', // for OSS test management/_import_objects '--xpack.observability.unsafe.cases.enabled=true', '--xpack.observability.unsafe.alertingExperience.enabled=true', // NOTE: Can be removed once enabled by default diff --git a/x-pack/test/functional/es_archives/action_task_params/mappings.json b/x-pack/test/functional/es_archives/action_task_params/mappings.json index d0eb35fa3b157..2bb6be179d890 100644 --- a/x-pack/test/functional/es_archives/action_task_params/mappings.json +++ b/x-pack/test/functional/es_archives/action_task_params/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2312,47 +2311,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/actions/mappings.json b/x-pack/test/functional/es_archives/actions/mappings.json index 8289174ffd57d..eeb9d09d3b0a2 100644 --- a/x-pack/test/functional/es_archives/actions/mappings.json +++ b/x-pack/test/functional/es_archives/actions/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2311,47 +2310,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/alerts/mappings.json b/x-pack/test/functional/es_archives/alerts/mappings.json index 287d9a79a68cf..ecaf138a0cdc4 100644 --- a/x-pack/test/functional/es_archives/alerts/mappings.json +++ b/x-pack/test/functional/es_archives/alerts/mappings.json @@ -45,7 +45,6 @@ "search": "181661168bbadd1eff5902361e2a0d5c", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "todo": "082a2cc96a590268344d5cd74c159ac4", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", diff --git a/x-pack/test/functional/es_archives/alerts_legacy/mappings.json b/x-pack/test/functional/es_archives/alerts_legacy/mappings.json index 8c33155636a8b..69edf30c1ffd0 100644 --- a/x-pack/test/functional/es_archives/alerts_legacy/mappings.json +++ b/x-pack/test/functional/es_archives/alerts_legacy/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2312,47 +2311,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/banners/multispace/mappings.json b/x-pack/test/functional/es_archives/banners/multispace/mappings.json index 9f3201d73abc1..f813fca64c328 100644 --- a/x-pack/test/functional/es_archives/banners/multispace/mappings.json +++ b/x-pack/test/functional/es_archives/banners/multispace/mappings.json @@ -180,48 +180,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/canvas/default/mappings.json b/x-pack/test/functional/es_archives/canvas/default/mappings.json index 3bde3969e5ded..61481a0f949fa 100644 --- a/x-pack/test/functional/es_archives/canvas/default/mappings.json +++ b/x-pack/test/functional/es_archives/canvas/default/mappings.json @@ -245,47 +245,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/canvas/reports/mappings.json b/x-pack/test/functional/es_archives/canvas/reports/mappings.json index 66f40d746b794..047a52aaa1f98 100644 --- a/x-pack/test/functional/es_archives/canvas/reports/mappings.json +++ b/x-pack/test/functional/es_archives/canvas/reports/mappings.json @@ -70,7 +70,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2175,47 +2174,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/cases/migrations/7.10.0/mappings.json b/x-pack/test/functional/es_archives/cases/migrations/7.10.0/mappings.json index 7101af08400a2..c7e1a180e6c54 100644 --- a/x-pack/test/functional/es_archives/cases/migrations/7.10.0/mappings.json +++ b/x-pack/test/functional/es_archives/cases/migrations/7.10.0/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2305,47 +2304,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/cases/migrations/7.11.1/mappings.json b/x-pack/test/functional/es_archives/cases/migrations/7.11.1/mappings.json index 5140a81b3ed46..bc719ab40aebd 100644 --- a/x-pack/test/functional/es_archives/cases/migrations/7.11.1/mappings.json +++ b/x-pack/test/functional/es_archives/cases/migrations/7.11.1/mappings.json @@ -78,7 +78,6 @@ "spaces-usage-stats": "3d1b76c39bfb2cc8296b024d73854724", "tag": "83d55da58f6530f7055415717ec06474", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2502,47 +2501,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/cases/migrations/7.13.2/mappings.json b/x-pack/test/functional/es_archives/cases/migrations/7.13.2/mappings.json index e79ebf2b8fc10..88f3e5d78cb16 100644 --- a/x-pack/test/functional/es_archives/cases/migrations/7.13.2/mappings.json +++ b/x-pack/test/functional/es_archives/cases/migrations/7.13.2/mappings.json @@ -84,7 +84,6 @@ "spaces-usage-stats": "3d1b76c39bfb2cc8296b024d73854724", "tag": "83d55da58f6530f7055415717ec06474", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2643,47 +2642,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/dashboard/async_search/mappings.json b/x-pack/test/functional/es_archives/dashboard/async_search/mappings.json index 5001bb053e01b..1766723cc436f 100644 --- a/x-pack/test/functional/es_archives/dashboard/async_search/mappings.json +++ b/x-pack/test/functional/es_archives/dashboard/async_search/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/dashboard/drilldowns/mappings.json b/x-pack/test/functional/es_archives/dashboard/drilldowns/mappings.json index a842c20b6965e..8382a490ac230 100644 --- a/x-pack/test/functional/es_archives/dashboard/drilldowns/mappings.json +++ b/x-pack/test/functional/es_archives/dashboard/drilldowns/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/dashboard/feature_controls/security/mappings.json b/x-pack/test/functional/es_archives/dashboard/feature_controls/security/mappings.json index 29c56a751c038..a4392cd88b356 100644 --- a/x-pack/test/functional/es_archives/dashboard/feature_controls/security/mappings.json +++ b/x-pack/test/functional/es_archives/dashboard/feature_controls/security/mappings.json @@ -386,47 +386,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/dashboard/feature_controls/spaces/mappings.json b/x-pack/test/functional/es_archives/dashboard/feature_controls/spaces/mappings.json index 0cd1a29f92241..51dfbb6d066fc 100644 --- a/x-pack/test/functional/es_archives/dashboard/feature_controls/spaces/mappings.json +++ b/x-pack/test/functional/es_archives/dashboard/feature_controls/spaces/mappings.json @@ -358,47 +358,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/dashboard/session_in_space/mappings.json b/x-pack/test/functional/es_archives/dashboard/session_in_space/mappings.json index a842c20b6965e..8382a490ac230 100644 --- a/x-pack/test/functional/es_archives/dashboard/session_in_space/mappings.json +++ b/x-pack/test/functional/es_archives/dashboard/session_in_space/mappings.json @@ -137,48 +137,6 @@ } } }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/data/search_sessions/mappings.json b/x-pack/test/functional/es_archives/data/search_sessions/mappings.json index 9c27bc1458c7f..a3eab7787c3eb 100644 --- a/x-pack/test/functional/es_archives/data/search_sessions/mappings.json +++ b/x-pack/test/functional/es_archives/data/search_sessions/mappings.json @@ -2356,47 +2356,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/empty_kibana/mappings.json b/x-pack/test/functional/es_archives/empty_kibana/mappings.json index 499c994780285..07dc66dd8ce94 100644 --- a/x-pack/test/functional/es_archives/empty_kibana/mappings.json +++ b/x-pack/test/functional/es_archives/empty_kibana/mappings.json @@ -177,48 +177,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/agent_only/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/agent_only/mappings.json index 9d7da7b5bbd87..4dcb8f905b197 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/agent_only/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/agent_only/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2336,47 +2335,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_different_states/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_different_states/mappings.json index 7aadc43a3ad94..d6d91281151aa 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_different_states/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_different_states/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2341,47 +2340,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_installed/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_installed/mappings.json index 7aadc43a3ad94..d6d91281151aa 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_installed/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_installed/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2341,47 +2340,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_uninstalled/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_uninstalled/mappings.json index 7aadc43a3ad94..d6d91281151aa 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_uninstalled/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/cloned_endpoint_uninstalled/mappings.json @@ -67,7 +67,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2341,47 +2340,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_disabled/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_disabled/mappings.json index 9d7da7b5bbd87..4dcb8f905b197 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_disabled/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_disabled/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2336,47 +2335,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_enabled/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_enabled/mappings.json index 9d7da7b5bbd87..4dcb8f905b197 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_enabled/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_malware_enabled/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2336,47 +2335,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_uninstalled/mappings.json b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_uninstalled/mappings.json index 9d7da7b5bbd87..4dcb8f905b197 100644 --- a/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_uninstalled/mappings.json +++ b/x-pack/test/functional/es_archives/endpoint/telemetry/endpoint_uninstalled/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2336,47 +2335,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/event_log_multiple_indicies/mappings.json b/x-pack/test/functional/es_archives/event_log_multiple_indicies/mappings.json index 15382fb2524fe..b28c558612770 100644 --- a/x-pack/test/functional/es_archives/event_log_multiple_indicies/mappings.json +++ b/x-pack/test/functional/es_archives/event_log_multiple_indicies/mappings.json @@ -71,7 +71,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", diff --git a/x-pack/test/functional/es_archives/fleet/agents/mappings.json b/x-pack/test/functional/es_archives/fleet/agents/mappings.json index e9a3a965c0523..8e4c7a912b75a 100644 --- a/x-pack/test/functional/es_archives/fleet/agents/mappings.json +++ b/x-pack/test/functional/es_archives/fleet/agents/mappings.json @@ -65,7 +65,6 @@ "maps-telemetry": "bfd39d88aadadb4be597ea984d433dbe", "namespace": "2f4316de49999235636386fe51dc06c1", "cases-user-actions": "32277330ec6b721abe3b846cfd939a71", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "config": "ae24d22d5986d04124cc6568f771066f", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215" @@ -2846,47 +2845,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/hybrid/kibana/mappings.json b/x-pack/test/functional/es_archives/hybrid/kibana/mappings.json index a352155899e79..af4ee5ed1e46f 100644 --- a/x-pack/test/functional/es_archives/hybrid/kibana/mappings.json +++ b/x-pack/test/functional/es_archives/hybrid/kibana/mappings.json @@ -35,7 +35,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "25de8c2deec044392922989cfcf24c54", "telemetry": "e1c8bc94e443aefd9458932cc0697a4d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -890,47 +889,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/invalid_scripted_field/mappings.json b/x-pack/test/functional/es_archives/invalid_scripted_field/mappings.json index 63cc283f96d32..0d41e0ce86c14 100644 --- a/x-pack/test/functional/es_archives/invalid_scripted_field/mappings.json +++ b/x-pack/test/functional/es_archives/invalid_scripted_field/mappings.json @@ -143,47 +143,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/kibana_scripted_fields_on_logstash/mappings.json b/x-pack/test/functional/es_archives/kibana_scripted_fields_on_logstash/mappings.json index c0ce939234a9d..7479c525f6a07 100644 --- a/x-pack/test/functional/es_archives/kibana_scripted_fields_on_logstash/mappings.json +++ b/x-pack/test/functional/es_archives/kibana_scripted_fields_on_logstash/mappings.json @@ -50,7 +50,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2522,47 +2521,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/lens/basic/mappings.json b/x-pack/test/functional/es_archives/lens/basic/mappings.json index 50230a5eff0c2..5ff0a0e4661c3 100644 --- a/x-pack/test/functional/es_archives/lens/basic/mappings.json +++ b/x-pack/test/functional/es_archives/lens/basic/mappings.json @@ -36,7 +36,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "e1c8bc94e443aefd9458932cc0697a4d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -1113,47 +1112,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/lens/reporting/mappings.json b/x-pack/test/functional/es_archives/lens/reporting/mappings.json index a71efbd3e59ec..907c5ee4fe70a 100644 --- a/x-pack/test/functional/es_archives/lens/reporting/mappings.json +++ b/x-pack/test/functional/es_archives/lens/reporting/mappings.json @@ -36,7 +36,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "e1c8bc94e443aefd9458932cc0697a4d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -1122,47 +1121,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/lens/rollup/config/mappings.json b/x-pack/test/functional/es_archives/lens/rollup/config/mappings.json index 50230a5eff0c2..5ff0a0e4661c3 100644 --- a/x-pack/test/functional/es_archives/lens/rollup/config/mappings.json +++ b/x-pack/test/functional/es_archives/lens/rollup/config/mappings.json @@ -36,7 +36,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "e1c8bc94e443aefd9458932cc0697a4d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -1113,47 +1112,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/lists/mappings.json b/x-pack/test/functional/es_archives/lists/mappings.json index 2c6e948cedf6c..134ed28bac2e7 100644 --- a/x-pack/test/functional/es_archives/lists/mappings.json +++ b/x-pack/test/functional/es_archives/lists/mappings.json @@ -71,7 +71,6 @@ "namespace": "2f4316de49999235636386fe51dc06c1", "cases-user-actions": "32277330ec6b721abe3b846cfd939a71", "ingest-package-policies": "48e8bd97e488008e21c0b5a2367b83ad", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "config": "c63748b75f39d0c54de12d12c1ccbc20", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", @@ -2265,47 +2264,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/logstash/empty/mappings.json b/x-pack/test/functional/es_archives/logstash/empty/mappings.json index 98fb761389a24..6a3f685752258 100644 --- a/x-pack/test/functional/es_archives/logstash/empty/mappings.json +++ b/x-pack/test/functional/es_archives/logstash/empty/mappings.json @@ -209,48 +209,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/logstash/example_pipelines/mappings.json b/x-pack/test/functional/es_archives/logstash/example_pipelines/mappings.json index 56a2e144ff89c..b221ce613d72d 100644 --- a/x-pack/test/functional/es_archives/logstash/example_pipelines/mappings.json +++ b/x-pack/test/functional/es_archives/logstash/example_pipelines/mappings.json @@ -206,48 +206,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/monitoring/basic_6.3.x/data.json.gz b/x-pack/test/functional/es_archives/monitoring/basic_6.3.x/data.json.gz index e1e8437948dea..9c15082c70f02 100644 Binary files a/x-pack/test/functional/es_archives/monitoring/basic_6.3.x/data.json.gz and b/x-pack/test/functional/es_archives/monitoring/basic_6.3.x/data.json.gz differ diff --git a/x-pack/test/functional/es_archives/packaging/mappings.json b/x-pack/test/functional/es_archives/packaging/mappings.json index 182d281c9a3de..0ec1e12567460 100644 --- a/x-pack/test/functional/es_archives/packaging/mappings.json +++ b/x-pack/test/functional/es_archives/packaging/mappings.json @@ -74,7 +74,6 @@ "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "tag": "83d55da58f6530f7055415717ec06474", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2283,47 +2282,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/reporting/canvas_disallowed_url/mappings.json b/x-pack/test/functional/es_archives/reporting/canvas_disallowed_url/mappings.json index aa097f9bb214e..5bffb9540e983 100644 --- a/x-pack/test/functional/es_archives/reporting/canvas_disallowed_url/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/canvas_disallowed_url/mappings.json @@ -61,7 +61,6 @@ "siem-ui-timeline-note": "8874706eedc49059d4cf0f5094559084", "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -1971,47 +1970,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/reporting/ecommerce_kibana_spaces/mappings.json b/x-pack/test/functional/es_archives/reporting/ecommerce_kibana_spaces/mappings.json index 9d6c0ecf9898d..254184cbef584 100644 --- a/x-pack/test/functional/es_archives/reporting/ecommerce_kibana_spaces/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/ecommerce_kibana_spaces/mappings.json @@ -66,7 +66,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2388,47 +2387,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/reporting/hugedata/mappings.json b/x-pack/test/functional/es_archives/reporting/hugedata/mappings.json index 8580f216a06f6..1fdde9d9d208b 100644 --- a/x-pack/test/functional/es_archives/reporting/hugedata/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/hugedata/mappings.json @@ -2307,47 +2307,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/reporting/logs/mappings.json b/x-pack/test/functional/es_archives/reporting/logs/mappings.json index ffb8c85e8fd8b..2e1873e43ffcc 100644 --- a/x-pack/test/functional/es_archives/reporting/logs/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/logs/mappings.json @@ -195,48 +195,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/reporting/multi_index_kibana/mappings.json b/x-pack/test/functional/es_archives/reporting/multi_index_kibana/mappings.json index 97b9599bc86cc..f950877aea332 100644 --- a/x-pack/test/functional/es_archives/reporting/multi_index_kibana/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/multi_index_kibana/mappings.json @@ -41,7 +41,6 @@ "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", "search": "181661168bbadd1eff5902361e2a0d5c", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -1836,47 +1835,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/functional/es_archives/reporting/nanos/mappings.json b/x-pack/test/functional/es_archives/reporting/nanos/mappings.json index 86451ee4303af..216b89e4bfbcf 100644 --- a/x-pack/test/functional/es_archives/reporting/nanos/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/nanos/mappings.json @@ -34,7 +34,6 @@ "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "space": "25de8c2deec044392922989cfcf24c54", "telemetry": "e1c8bc94e443aefd9458932cc0697a4d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", @@ -881,47 +880,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/reporting/sales/mappings.json b/x-pack/test/functional/es_archives/reporting/sales/mappings.json index dbb8d396eb496..317b185046ce1 100644 --- a/x-pack/test/functional/es_archives/reporting/sales/mappings.json +++ b/x-pack/test/functional/es_archives/reporting/sales/mappings.json @@ -195,48 +195,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/saved_objects_management/feature_controls/security/mappings.json b/x-pack/test/functional/es_archives/saved_objects_management/feature_controls/security/mappings.json index 05ca4d8e8307e..bb863dc24c585 100644 --- a/x-pack/test/functional/es_archives/saved_objects_management/feature_controls/security/mappings.json +++ b/x-pack/test/functional/es_archives/saved_objects_management/feature_controls/security/mappings.json @@ -358,47 +358,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/spaces/copy_saved_objects/mappings.json b/x-pack/test/functional/es_archives/spaces/copy_saved_objects/mappings.json index d860c19ceb64c..092f8a326d9df 100644 --- a/x-pack/test/functional/es_archives/spaces/copy_saved_objects/mappings.json +++ b/x-pack/test/functional/es_archives/spaces/copy_saved_objects/mappings.json @@ -178,47 +178,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/spaces/disabled_features/mappings.json b/x-pack/test/functional/es_archives/spaces/disabled_features/mappings.json index 23a63e372a855..5bda0101c653a 100644 --- a/x-pack/test/functional/es_archives/spaces/disabled_features/mappings.json +++ b/x-pack/test/functional/es_archives/spaces/disabled_features/mappings.json @@ -358,47 +358,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/spaces/enter_space/mappings.json b/x-pack/test/functional/es_archives/spaces/enter_space/mappings.json index 9f3201d73abc1..f813fca64c328 100644 --- a/x-pack/test/functional/es_archives/spaces/enter_space/mappings.json +++ b/x-pack/test/functional/es_archives/spaces/enter_space/mappings.json @@ -180,48 +180,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/spaces/multi_space/mappings.json b/x-pack/test/functional/es_archives/spaces/multi_space/mappings.json index 499c994780285..07dc66dd8ce94 100644 --- a/x-pack/test/functional/es_archives/spaces/multi_space/mappings.json +++ b/x-pack/test/functional/es_archives/spaces/multi_space/mappings.json @@ -177,48 +177,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/spaces/selector/mappings.json b/x-pack/test/functional/es_archives/spaces/selector/mappings.json index 499c994780285..07dc66dd8ce94 100644 --- a/x-pack/test/functional/es_archives/spaces/selector/mappings.json +++ b/x-pack/test/functional/es_archives/spaces/selector/mappings.json @@ -177,48 +177,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/task_manager_removed_types/mappings.json b/x-pack/test/functional/es_archives/task_manager_removed_types/mappings.json index 6ec81326d1ca4..f35681efb089d 100644 --- a/x-pack/test/functional/es_archives/task_manager_removed_types/mappings.json +++ b/x-pack/test/functional/es_archives/task_manager_removed_types/mappings.json @@ -75,7 +75,6 @@ "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", "tag": "83d55da58f6530f7055415717ec06474", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", diff --git a/x-pack/test/functional/es_archives/timelion/feature_controls/data.json b/x-pack/test/functional/es_archives/timelion/feature_controls/data.json index 03fc0d57e9278..59da22294aa5a 100644 --- a/x-pack/test/functional/es_archives/timelion/feature_controls/data.json +++ b/x-pack/test/functional/es_archives/timelion/feature_controls/data.json @@ -29,53 +29,4 @@ } } } -} - -{ - "type": "doc", - "value": { - "index": ".kibana", - "id": "timelion-sheet:i-exist", - "source": { - "timelion-sheet": { - "title": "i-exist", - "hits": 0, - "description": "", - "timelion_sheet": [ - ".es(*)" - ], - "timelion_interval": "auto", - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_rows": 2, - "version": 1 - }, - "type": "timelion-sheet" - } - } -} - -{ - "type": "doc", - "value": { - "index": ".kibana", - "id": "custom_space:timelion-sheet:i-exist", - "source": { - "namespace": "custom_space", - "timelion-sheet": { - "title": "i-exist", - "hits": 0, - "description": "", - "timelion_sheet": [ - ".es(*).label('custom space sheet')" - ], - "timelion_interval": "auto", - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_rows": 2, - "version": 1 - }, - "type": "timelion-sheet" - } - } } \ No newline at end of file diff --git a/x-pack/test/functional/es_archives/timelion/feature_controls/mappings.json b/x-pack/test/functional/es_archives/timelion/feature_controls/mappings.json index 23a63e372a855..5bda0101c653a 100644 --- a/x-pack/test/functional/es_archives/timelion/feature_controls/mappings.json +++ b/x-pack/test/functional/es_archives/timelion/feature_controls/mappings.json @@ -358,47 +358,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/es_archives/visualize/default/mappings.json b/x-pack/test/functional/es_archives/visualize/default/mappings.json index be3b287032911..00dddbcafdd1c 100644 --- a/x-pack/test/functional/es_archives/visualize/default/mappings.json +++ b/x-pack/test/functional/es_archives/visualize/default/mappings.json @@ -79,7 +79,6 @@ "spaces-usage-stats": "3d1b76c39bfb2cc8296b024d73854724", "tag": "83d55da58f6530f7055415717ec06474", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "type": "2f4316de49999235636386fe51dc06c1", "ui-counter": "0d409297dc5ebe1e3a1da691c6ee32e3", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -2423,47 +2422,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json b/x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json deleted file mode 100644 index 323dbb67d54b8..0000000000000 --- a/x-pack/test/functional/fixtures/kbn_archiver/timelion/feature_controls.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "attributes": { - "buildNum": 9007199254740991, - "defaultIndex": "logstash-*" - }, - "coreMigrationVersion": "7.14.0", - "id": "7.0.0", - "migrationVersion": { - "config": "7.13.0" - }, - "references": [], - "type": "config", - "updated_at": "2019-01-22T19:32:02.235Z", - "version": "WzQsMl0=" -} - -{ - "attributes": { - "description": "", - "hits": 0, - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_interval": "auto", - "timelion_rows": 2, - "timelion_sheet": [ - ".es(*)" - ], - "title": "i-exist", - "version": 1 - }, - "coreMigrationVersion": "7.14.0", - "id": "i-exist", - "references": [], - "type": "timelion-sheet", - "version": "WzYsMl0=" -} - -{ - "attributes": { - "fields": "[{\"name\":\"@message\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@message.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@tags\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"@tags.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"@timestamp\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"agent\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"agent.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"bytes\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clientip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"extension\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"extension.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.coordinates\",\"type\":\"geo_point\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.dest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.src\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.srcdest\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"headings\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"headings.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"host.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"id\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"index.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ip\",\"type\":\"ip\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"links\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"links.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.os\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"machine.os.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"machine.ram\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"memory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.char\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"meta.related\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.firstname\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"meta.user.lastname\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"phpmemory\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"referer\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:modified_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:published_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:section\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:section.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.article:tag\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.article:tag.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:height\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:height.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:image:width\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:image:width.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:site_name\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:site_name.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:type.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.og:url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.og:url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:card\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:card.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:description\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:description.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:image\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:image.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:site\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:site.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.twitter:title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.twitter:title.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"relatedContent.url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"relatedContent.url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"request\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"request.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"response\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"response.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"spaces\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"spaces.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"url.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"utc_time\",\"type\":\"date\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"xss\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"xss.raw\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kilobytes\",\"type\":\"number\",\"count\":0,\"scripted\":true,\"script\":\"doc['bytes'].value / 1000\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"machine os raw\",\"type\":\"string\",\"count\":0,\"scripted\":true,\"script\":\"doc['machine.os.raw'].value\",\"lang\":\"painless\",\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false}]", - "timeFieldName": "@timestamp", - "title": "logstash-*" - }, - "coreMigrationVersion": "7.14.0", - "id": "logstash-*", - "migrationVersion": { - "index-pattern": "7.11.0" - }, - "references": [], - "type": "index-pattern", - "version": "WzUsMl0=" -} \ No newline at end of file diff --git a/x-pack/test/functional/fixtures/kbn_archiver/timelion/timelion_custom_space.json b/x-pack/test/functional/fixtures/kbn_archiver/timelion/timelion_custom_space.json deleted file mode 100644 index f27149f9d7eb6..0000000000000 --- a/x-pack/test/functional/fixtures/kbn_archiver/timelion/timelion_custom_space.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "attributes": { - "description": "", - "hits": 0, - "timelion_chart_height": 275, - "timelion_columns": 2, - "timelion_interval": "auto", - "timelion_rows": 2, - "timelion_sheet": [ - ".es(*).label('custom space sheet')" - ], - "title": "i-exist", - "version": 1 - }, - "coreMigrationVersion": "7.14.0", - "id": "i-exist", - "references": [], - "type": "timelion-sheet", - "version": "WzcsMl0=" -} \ No newline at end of file diff --git a/x-pack/test/plugin_functional/es_archives/global_search/basic/mappings.json b/x-pack/test/plugin_functional/es_archives/global_search/basic/mappings.json index 29c56a751c038..a4392cd88b356 100644 --- a/x-pack/test/plugin_functional/es_archives/global_search/basic/mappings.json +++ b/x-pack/test/plugin_functional/es_archives/global_search/basic/mappings.json @@ -386,47 +386,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/x-pack/test/saved_object_tagging/common/fixtures/es_archiver/dashboard/mappings.json b/x-pack/test/saved_object_tagging/common/fixtures/es_archiver/dashboard/mappings.json index 47f23dc57e361..6caac5e31e1f6 100644 --- a/x-pack/test/saved_object_tagging/common/fixtures/es_archiver/dashboard/mappings.json +++ b/x-pack/test/saved_object_tagging/common/fixtures/es_archiver/dashboard/mappings.json @@ -22,7 +22,6 @@ "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", "search": "181661168bbadd1eff5902361e2a0d5c", "telemetry": "36a616f7026dfa617d6655df850fe16d", - "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215", "type": "2f4316de49999235636386fe51dc06c1", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", @@ -406,47 +405,6 @@ } } }, - "timelion-sheet": { - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "tsvb-validation-telemetry": { "properties": { "failedRequests": { diff --git a/x-pack/test/security_solution_cypress/es_archives/empty_kibana/mappings.json b/x-pack/test/security_solution_cypress/es_archives/empty_kibana/mappings.json index 499c994780285..07dc66dd8ce94 100644 --- a/x-pack/test/security_solution_cypress/es_archives/empty_kibana/mappings.json +++ b/x-pack/test/security_solution_cypress/es_archives/empty_kibana/mappings.json @@ -177,48 +177,6 @@ "spaceId": { "type": "keyword" }, - "timelion-sheet": { - "dynamic": "strict", - "properties": { - "description": { - "type": "text" - }, - "hits": { - "type": "integer" - }, - "kibanaSavedObjectMeta": { - "properties": { - "searchSourceJSON": { - "type": "text" - } - } - }, - "timelion_chart_height": { - "type": "integer" - }, - "timelion_columns": { - "type": "integer" - }, - "timelion_interval": { - "type": "keyword" - }, - "timelion_other_interval": { - "type": "keyword" - }, - "timelion_rows": { - "type": "integer" - }, - "timelion_sheet": { - "type": "text" - }, - "title": { - "type": "text" - }, - "version": { - "type": "integer" - } - } - }, "type": { "type": "keyword" }, diff --git a/yarn.lock b/yarn.lock index 368ffa0a712ac..74118bdf06ce7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6990,11 +6990,6 @@ angular-sanitize@^1.8.0: resolved "https://registry.yarnpkg.com/angular-sanitize/-/angular-sanitize-1.8.0.tgz#9f80782d3afeec3bcc0bb92b3ca6f1f421cfbca6" integrity sha512-j5GiOPCvfcDWK5svEOVoPb11X3UDVy/mdHPRWuy14Iyw86xaq+Bb+x/em2sAOa5MQQeY5ciLXbF3RRp8iCKcNg== -angular-sortable-view@^0.0.17: - version "0.0.17" - resolved "https://registry.yarnpkg.com/angular-sortable-view/-/angular-sortable-view-0.0.17.tgz#99e2679951a86b6ee6ff27b099022943c683fb4f" - integrity sha512-2WkhM0Lt/wyMyrX/+7ve9ejSegBd7A4eRBNHEIJz8XMBIOjt+3oM1WpcAm+qNThkmNmmQaDeaYv0TQZw/WDMBw== - angular@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/angular/-/angular-1.8.0.tgz#b1ec179887869215cab6dfd0df2e42caa65b1b51"