diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a6a4ed6d9b210..80515067f7294 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -431,7 +431,7 @@ src/plugins/kibana_overview @elastic/appex-sharedux
src/plugins/kibana_react @elastic/appex-sharedux
src/plugins/kibana_usage_collection @elastic/kibana-core
src/plugins/kibana_utils @elastic/kibana-app-services
-x-pack/plugins/kubernetes_security @elastic/awp-viz
+x-pack/plugins/kubernetes_security @elastic/sec-cloudnative-integrations
packages/kbn-language-documentation-popover @elastic/kibana-visualizations
x-pack/plugins/lens @elastic/kibana-visualizations
x-pack/plugins/license_api_guard @elastic/platform-deployment-management
@@ -547,6 +547,7 @@ packages/security-solution/side_nav @elastic/security-threat-hunting-explore
packages/security-solution/storybook/config @elastic/security-threat-hunting-explore
x-pack/test/security_functional/plugins/test_endpoints @elastic/kibana-security
packages/kbn-securitysolution-autocomplete @elastic/security-solution-platform
+x-pack/packages/kbn-securitysolution-data-table @elastic/security-threat-hunting-investigations
packages/kbn-securitysolution-ecs @elastic/security-threat-hunting-explore
packages/kbn-securitysolution-es-utils @elastic/security-solution-platform
packages/kbn-securitysolution-exception-list-components @elastic/security-solution-platform
@@ -566,7 +567,7 @@ packages/kbn-securitysolution-utils @elastic/security-solution-platform
packages/kbn-server-http-tools @elastic/kibana-core
packages/kbn-server-route-repository @elastic/apm-ui
test/plugin_functional/plugins/session_notifications @elastic/kibana-core
-x-pack/plugins/session_view @elastic/awp-viz
+x-pack/plugins/session_view @elastic/sec-cloudnative-integrations
packages/kbn-set-map @elastic/kibana-operations
examples/share_examples @elastic/kibana-app-services
src/plugins/share @elastic/appex-sharedux
@@ -1175,8 +1176,8 @@ x-pack/plugins/security_solution/cypress/README.md @elastic/security-engineering
x-pack/test/security_solution_cypress @elastic/security-engineering-productivity
## Security Solution sub teams - adaptive-workload-protection
-x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/awp-viz
-x-pack/plugins/security_solution/public/kubernetes @elastic/awp-viz
+x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/sec-cloudnative-integrations
+x-pack/plugins/security_solution/public/kubernetes @elastic/sec-cloudnative-integrations
## Security Solution sub teams - Protections Experience
x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience
diff --git a/.i18nrc.json b/.i18nrc.json
index a9a4985f68e5d..d64d2989dc44c 100644
--- a/.i18nrc.json
+++ b/.i18nrc.json
@@ -80,6 +80,7 @@
"savedObjects": "src/plugins/saved_objects",
"savedObjectsFinder": "src/plugins/saved_objects_finder",
"savedObjectsManagement": "src/plugins/saved_objects_management",
+ "securitySolutionDataTable": "packages/kbn-securitysolution-data-table",
"server": "src/legacy/server",
"share": "src/plugins/share",
"sharedUXPackages": "packages/shared-ux",
diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json
index 0cdbf07af71d5..01b2670ee2eac 100644
--- a/api_docs/actions.devdocs.json
+++ b/api_docs/actions.devdocs.json
@@ -1391,13 +1391,13 @@
"label": "validate",
"description": [],
"signature": [
- "{ params?: ",
+ "{ params: ",
"ValidatorType",
- " | undefined; config?: ",
+ "; config: ",
"ValidatorType",
- " | undefined; secrets?: ",
+ "; secrets: ",
"ValidatorType",
- " | undefined; connector?: ((config: Config, secrets: Secrets) => string | null) | undefined; } | undefined"
+ "; connector?: ((config: Config, secrets: Secrets) => string | null) | undefined; }"
],
"path": "x-pack/plugins/actions/server/types.ts",
"deprecated": false,
diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx
index ea47206c4407d..0811555cbf3dc 100644
--- a/api_docs/actions.mdx
+++ b/api_docs/actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions
title: "actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the actions plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions']
---
import actionsObj from './actions.devdocs.json';
diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx
index edac0119cf5c9..04cd347c6770b 100644
--- a/api_docs/advanced_settings.mdx
+++ b/api_docs/advanced_settings.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings
title: "advancedSettings"
image: https://source.unsplash.com/400x175/?github
description: API docs for the advancedSettings plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings']
---
import advancedSettingsObj from './advanced_settings.devdocs.json';
diff --git a/api_docs/aiops.devdocs.json b/api_docs/aiops.devdocs.json
index ce17371ced270..1d4576e8b91bb 100644
--- a/api_docs/aiops.devdocs.json
+++ b/api_docs/aiops.devdocs.json
@@ -10,11 +10,17 @@
"tags": [],
"label": "ChangePointDetection",
"description": [
- "\nLazy-wrapped LogCategorizationAppStateProps React component"
+ "\nLazy-wrapped ChangePointDetectionAppStateProps React component"
],
"signature": [
"(props: React.PropsWithChildren<",
- "LogCategorizationAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.ChangePointDetectionAppStateProps",
+ "text": "ChangePointDetectionAppStateProps"
+ },
">) => JSX.Element"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -32,7 +38,13 @@
],
"signature": [
"React.PropsWithChildren<",
- "LogCategorizationAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.ChangePointDetectionAppStateProps",
+ "text": "ChangePointDetectionAppStateProps"
+ },
">"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -55,7 +67,13 @@
],
"signature": [
"(props: React.PropsWithChildren<",
- "ExplainLogRateSpikesAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.ExplainLogRateSpikesAppStateProps",
+ "text": "ExplainLogRateSpikesAppStateProps"
+ },
">) => JSX.Element"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -73,7 +91,13 @@
],
"signature": [
"React.PropsWithChildren<",
- "ExplainLogRateSpikesAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.ExplainLogRateSpikesAppStateProps",
+ "text": "ExplainLogRateSpikesAppStateProps"
+ },
">"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -96,7 +120,13 @@
],
"signature": [
"(props: React.PropsWithChildren<",
- "LogCategorizationAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.LogCategorizationAppStateProps",
+ "text": "LogCategorizationAppStateProps"
+ },
">) => JSX.Element"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -114,7 +144,13 @@
],
"signature": [
"React.PropsWithChildren<",
- "LogCategorizationAppStateProps",
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.LogCategorizationAppStateProps",
+ "text": "LogCategorizationAppStateProps"
+ },
">"
],
"path": "x-pack/plugins/aiops/public/shared_lazy_components.tsx",
@@ -127,7 +163,527 @@
"initialIsOpen": false
}
],
- "interfaces": [],
+ "interfaces": [
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies",
+ "type": "Interface",
+ "tags": [],
+ "label": "AiopsAppDependencies",
+ "description": [],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.application",
+ "type": "Object",
+ "tags": [],
+ "label": "application",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/core-application-browser",
+ "scope": "common",
+ "docId": "kibKbnCoreApplicationBrowserPluginApi",
+ "section": "def-common.ApplicationStart",
+ "text": "ApplicationStart"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.data",
+ "type": "Object",
+ "tags": [],
+ "label": "data",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "data",
+ "scope": "public",
+ "docId": "kibDataPluginApi",
+ "section": "def-public.DataPublicPluginStart",
+ "text": "DataPublicPluginStart"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.charts",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "charts",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "charts",
+ "scope": "public",
+ "docId": "kibChartsPluginApi",
+ "section": "def-public.ChartsPluginSetup",
+ "text": "ChartsPluginSetup"
+ },
+ " & { activeCursor: ",
+ "ActiveCursor",
+ "; }"
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.fieldFormats",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "fieldFormats",
+ "description": [],
+ "signature": [
+ "Omit<",
+ {
+ "pluginId": "fieldFormats",
+ "scope": "common",
+ "docId": "kibFieldFormatsPluginApi",
+ "section": "def-common.FieldFormatsRegistry",
+ "text": "FieldFormatsRegistry"
+ },
+ ", \"init\" | \"register\"> & { deserialize: ",
+ {
+ "pluginId": "fieldFormats",
+ "scope": "common",
+ "docId": "kibFieldFormatsPluginApi",
+ "section": "def-common.FormatFactory",
+ "text": "FormatFactory"
+ },
+ "; }"
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.http",
+ "type": "Object",
+ "tags": [],
+ "label": "http",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/core-http-browser",
+ "scope": "common",
+ "docId": "kibKbnCoreHttpBrowserPluginApi",
+ "section": "def-common.HttpSetup",
+ "text": "HttpSetup"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.notifications",
+ "type": "Object",
+ "tags": [],
+ "label": "notifications",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/core-notifications-browser",
+ "scope": "common",
+ "docId": "kibKbnCoreNotificationsBrowserPluginApi",
+ "section": "def-common.NotificationsSetup",
+ "text": "NotificationsSetup"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.storage",
+ "type": "Object",
+ "tags": [],
+ "label": "storage",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "kibanaUtils",
+ "scope": "public",
+ "docId": "kibKibanaUtilsPluginApi",
+ "section": "def-public.IStorageWrapper",
+ "text": "IStorageWrapper"
+ },
+ ""
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.theme",
+ "type": "Object",
+ "tags": [],
+ "label": "theme",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/core-theme-browser",
+ "scope": "common",
+ "docId": "kibKbnCoreThemeBrowserPluginApi",
+ "section": "def-common.ThemeServiceStart",
+ "text": "ThemeServiceStart"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.uiSettings",
+ "type": "Object",
+ "tags": [],
+ "label": "uiSettings",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/core-ui-settings-browser",
+ "scope": "common",
+ "docId": "kibKbnCoreUiSettingsBrowserPluginApi",
+ "section": "def-common.IUiSettingsClient",
+ "text": "IUiSettingsClient"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.unifiedSearch",
+ "type": "Object",
+ "tags": [],
+ "label": "unifiedSearch",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "unifiedSearch",
+ "scope": "public",
+ "docId": "kibUnifiedSearchPluginApi",
+ "section": "def-public.UnifiedSearchPublicPluginStart",
+ "text": "UnifiedSearchPublicPluginStart"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.share",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "share",
+ "description": [],
+ "signature": [
+ "{ toggleShareContextMenu: (options: ",
+ {
+ "pluginId": "share",
+ "scope": "public",
+ "docId": "kibSharePluginApi",
+ "section": "def-public.ShowShareMenuOptions",
+ "text": "ShowShareMenuOptions"
+ },
+ ") => void; } & { url: ",
+ {
+ "pluginId": "share",
+ "scope": "public",
+ "docId": "kibSharePluginApi",
+ "section": "def-public.BrowserUrlService",
+ "text": "BrowserUrlService"
+ },
+ "; navigate(options: ",
+ "RedirectOptions",
+ "<",
+ {
+ "pluginId": "@kbn/utility-types",
+ "scope": "common",
+ "docId": "kibKbnUtilityTypesPluginApi",
+ "section": "def-common.SerializableRecord",
+ "text": "SerializableRecord"
+ },
+ ">): void; }"
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.AiopsAppDependencies.lens",
+ "type": "Object",
+ "tags": [],
+ "label": "lens",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "lens",
+ "scope": "public",
+ "docId": "kibLensPluginApi",
+ "section": "def-public.LensPublicStart",
+ "text": "LensPublicStart"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/hooks/use_aiops_app_context.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ChangePointDetectionAppStateProps",
+ "type": "Interface",
+ "tags": [],
+ "label": "ChangePointDetectionAppStateProps",
+ "description": [],
+ "path": "x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ChangePointDetectionAppStateProps.dataView",
+ "type": "Object",
+ "tags": [],
+ "label": "dataView",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "dataViews",
+ "scope": "common",
+ "docId": "kibDataViewsPluginApi",
+ "section": "def-common.DataView",
+ "text": "DataView"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ChangePointDetectionAppStateProps.savedSearch",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "savedSearch",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "savedSearch",
+ "scope": "public",
+ "docId": "kibSavedSearchPluginApi",
+ "section": "def-public.SavedSearch",
+ "text": "SavedSearch"
+ },
+ " | null"
+ ],
+ "path": "x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ChangePointDetectionAppStateProps.appDependencies",
+ "type": "Object",
+ "tags": [],
+ "label": "appDependencies",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.AiopsAppDependencies",
+ "text": "AiopsAppDependencies"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ExplainLogRateSpikesAppStateProps",
+ "type": "Interface",
+ "tags": [],
+ "label": "ExplainLogRateSpikesAppStateProps",
+ "description": [],
+ "path": "x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ExplainLogRateSpikesAppStateProps.dataView",
+ "type": "Object",
+ "tags": [],
+ "label": "dataView",
+ "description": [
+ "The data view to analyze."
+ ],
+ "signature": [
+ {
+ "pluginId": "dataViews",
+ "scope": "common",
+ "docId": "kibDataViewsPluginApi",
+ "section": "def-common.DataView",
+ "text": "DataView"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ExplainLogRateSpikesAppStateProps.savedSearch",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "savedSearch",
+ "description": [
+ "The saved search to analyze."
+ ],
+ "signature": [
+ {
+ "pluginId": "savedSearch",
+ "scope": "public",
+ "docId": "kibSavedSearchPluginApi",
+ "section": "def-public.SavedSearch",
+ "text": "SavedSearch"
+ },
+ " | null"
+ ],
+ "path": "x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.ExplainLogRateSpikesAppStateProps.appDependencies",
+ "type": "Object",
+ "tags": [],
+ "label": "appDependencies",
+ "description": [
+ "App dependencies"
+ ],
+ "signature": [
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.AiopsAppDependencies",
+ "text": "AiopsAppDependencies"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.LogCategorizationAppStateProps",
+ "type": "Interface",
+ "tags": [],
+ "label": "LogCategorizationAppStateProps",
+ "description": [],
+ "path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.LogCategorizationAppStateProps.dataView",
+ "type": "Object",
+ "tags": [],
+ "label": "dataView",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "dataViews",
+ "scope": "common",
+ "docId": "kibDataViewsPluginApi",
+ "section": "def-common.DataView",
+ "text": "DataView"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.LogCategorizationAppStateProps.savedSearch",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "savedSearch",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "savedSearch",
+ "scope": "public",
+ "docId": "kibSavedSearchPluginApi",
+ "section": "def-public.SavedSearch",
+ "text": "SavedSearch"
+ },
+ " | null"
+ ],
+ "path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "aiops",
+ "id": "def-public.LogCategorizationAppStateProps.appDependencies",
+ "type": "Object",
+ "tags": [],
+ "label": "appDependencies",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "aiops",
+ "scope": "public",
+ "docId": "kibAiopsPluginApi",
+ "section": "def-public.AiopsAppDependencies",
+ "text": "AiopsAppDependencies"
+ }
+ ],
+ "path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ }
+ ],
"enums": [],
"misc": [],
"objects": []
@@ -201,7 +757,9 @@
"type": "boolean",
"tags": [],
"label": "CHANGE_POINT_DETECTION_ENABLED",
- "description": [],
+ "description": [
+ "\nThis is an internal hard coded feature flag so we can easily turn on/off the\n\"Change Point Detection UI\" during development until the first release."
+ ],
"signature": [
"true"
],
diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx
index bdbc20668fe46..ea3fcfd19787f 100644
--- a/api_docs/aiops.mdx
+++ b/api_docs/aiops.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops
title: "aiops"
image: https://source.unsplash.com/400x175/?github
description: API docs for the aiops plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops']
---
import aiopsObj from './aiops.devdocs.json';
@@ -21,13 +21,16 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 12 | 0 | 1 | 2 |
+| 37 | 0 | 22 | 0 |
## Client
### Functions
+### Interfaces
+
+
## Server
### Setup
diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx
index 5750e5be98c98..644fb8c1b3f4f 100644
--- a/api_docs/alerting.mdx
+++ b/api_docs/alerting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting
title: "alerting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the alerting plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting']
---
import alertingObj from './alerting.devdocs.json';
diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx
index 785f3c039d9e6..3f389b67d3199 100644
--- a/api_docs/apm.mdx
+++ b/api_docs/apm.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm
title: "apm"
image: https://source.unsplash.com/400x175/?github
description: API docs for the apm plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm']
---
import apmObj from './apm.devdocs.json';
diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx
index 056326ac515d2..5c7743d5b59f4 100644
--- a/api_docs/asset_manager.mdx
+++ b/api_docs/asset_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager
title: "assetManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the assetManager plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager']
---
import assetManagerObj from './asset_manager.devdocs.json';
diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx
index e2e9fedd6df26..47119b7dbf18e 100644
--- a/api_docs/banners.mdx
+++ b/api_docs/banners.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners
title: "banners"
image: https://source.unsplash.com/400x175/?github
description: API docs for the banners plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners']
---
import bannersObj from './banners.devdocs.json';
diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx
index ebf0b6b725770..8113d67e3d175 100644
--- a/api_docs/bfetch.mdx
+++ b/api_docs/bfetch.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch
title: "bfetch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the bfetch plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch']
---
import bfetchObj from './bfetch.devdocs.json';
diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx
index cf1a3f6c73855..69e7e654ce7f1 100644
--- a/api_docs/canvas.mdx
+++ b/api_docs/canvas.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas
title: "canvas"
image: https://source.unsplash.com/400x175/?github
description: API docs for the canvas plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas']
---
import canvasObj from './canvas.devdocs.json';
diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx
index 8120e0fff64fa..ec6e6659e6d9e 100644
--- a/api_docs/cases.mdx
+++ b/api_docs/cases.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases
title: "cases"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cases plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases']
---
import casesObj from './cases.devdocs.json';
diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx
index 02d0e47166648..4fef26eee2b88 100644
--- a/api_docs/charts.mdx
+++ b/api_docs/charts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts
title: "charts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the charts plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts']
---
import chartsObj from './charts.devdocs.json';
diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx
index 2c02a794b2a55..599523319184f 100644
--- a/api_docs/cloud.mdx
+++ b/api_docs/cloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud
title: "cloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloud plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud']
---
import cloudObj from './cloud.devdocs.json';
diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx
index d30e9e788d84f..9ef4e7334aee7 100644
--- a/api_docs/cloud_chat.mdx
+++ b/api_docs/cloud_chat.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat
title: "cloudChat"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudChat plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat']
---
import cloudChatObj from './cloud_chat.devdocs.json';
diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx
index 2b32e48523759..04c2ffb06b560 100644
--- a/api_docs/cloud_data_migration.mdx
+++ b/api_docs/cloud_data_migration.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration
title: "cloudDataMigration"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDataMigration plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration']
---
import cloudDataMigrationObj from './cloud_data_migration.devdocs.json';
diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx
index 553c4af57f792..5a4286d8b7f58 100644
--- a/api_docs/cloud_defend.mdx
+++ b/api_docs/cloud_defend.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend
title: "cloudDefend"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudDefend plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend']
---
import cloudDefendObj from './cloud_defend.devdocs.json';
diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx
index 4b0b11202cfbe..30e04d9f7e252 100644
--- a/api_docs/cloud_experiments.mdx
+++ b/api_docs/cloud_experiments.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments
title: "cloudExperiments"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudExperiments plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments']
---
import cloudExperimentsObj from './cloud_experiments.devdocs.json';
diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx
index 80d6082a5a1db..7841b498ed166 100644
--- a/api_docs/cloud_security_posture.mdx
+++ b/api_docs/cloud_security_posture.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture
title: "cloudSecurityPosture"
image: https://source.unsplash.com/400x175/?github
description: API docs for the cloudSecurityPosture plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture']
---
import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json';
diff --git a/api_docs/console.mdx b/api_docs/console.mdx
index eb912f23874fb..9ae830f51efd2 100644
--- a/api_docs/console.mdx
+++ b/api_docs/console.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console
title: "console"
image: https://source.unsplash.com/400x175/?github
description: API docs for the console plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console']
---
import consoleObj from './console.devdocs.json';
diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx
index 540bd69652b96..12bf411f06b8f 100644
--- a/api_docs/content_management.mdx
+++ b/api_docs/content_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement
title: "contentManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the contentManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement']
---
import contentManagementObj from './content_management.devdocs.json';
diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx
index e12924e2a3b3d..b6800d6e4309f 100644
--- a/api_docs/controls.mdx
+++ b/api_docs/controls.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls
title: "controls"
image: https://source.unsplash.com/400x175/?github
description: API docs for the controls plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls']
---
import controlsObj from './controls.devdocs.json';
diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx
index c79b893ae53f6..15fc539467e67 100644
--- a/api_docs/custom_integrations.mdx
+++ b/api_docs/custom_integrations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations
title: "customIntegrations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the customIntegrations plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations']
---
import customIntegrationsObj from './custom_integrations.devdocs.json';
diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json
index f2323237ed7b0..a4f01007d7d75 100644
--- a/api_docs/dashboard.devdocs.json
+++ b/api_docs/dashboard.devdocs.json
@@ -1515,6 +1515,41 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "dashboard",
+ "id": "def-public.DashboardListingTable",
+ "type": "Function",
+ "tags": [],
+ "label": "DashboardListingTable",
+ "description": [],
+ "signature": [
+ "(props: ",
+ "DashboardListingProps",
+ ") => JSX.Element"
+ ],
+ "path": "src/plugins/dashboard/public/dashboard_listing/index.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "dashboard",
+ "id": "def-public.DashboardListingTable.$1",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ "DashboardListingProps"
+ ],
+ "path": "src/plugins/dashboard/public/dashboard_listing/index.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "dashboard",
"id": "def-public.LazyDashboardContainerRenderer",
diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx
index 206037bc616f2..29addf383b79c 100644
--- a/api_docs/dashboard.mdx
+++ b/api_docs/dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard
title: "dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboard plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard']
---
import dashboardObj from './dashboard.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 188 | 0 | 179 | 13 |
+| 190 | 0 | 181 | 14 |
## Client
diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx
index a80a0e7948a06..5ebd9bcf8f56f 100644
--- a/api_docs/dashboard_enhanced.mdx
+++ b/api_docs/dashboard_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced
title: "dashboardEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dashboardEnhanced plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced']
---
import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json';
diff --git a/api_docs/data.devdocs.json b/api_docs/data.devdocs.json
index a5fc6da9e9a3d..c51c052cb9caa 100644
--- a/api_docs/data.devdocs.json
+++ b/api_docs/data.devdocs.json
@@ -13035,7 +13035,7 @@
"section": "def-common.FieldFormatsRegistry",
"text": "FieldFormatsRegistry"
},
- ", \"register\" | \"init\"> & { deserialize: ",
+ ", \"init\" | \"register\"> & { deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -13737,18 +13737,6 @@
"plugin": "unifiedSearch",
"path": "src/plugins/unified_search/public/dataview_picker/change_dataview.tsx"
},
- {
- "plugin": "dataViews",
- "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
- },
- {
- "plugin": "dataViews",
- "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
- },
- {
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
- },
{
"plugin": "controls",
"path": "src/plugins/controls/public/services/options_list/options_list_service.ts"
@@ -13781,6 +13769,18 @@
"plugin": "lens",
"path": "x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx"
},
+ {
+ "plugin": "dataViews",
+ "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
+ },
+ {
+ "plugin": "dataViews",
+ "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
+ },
+ {
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
+ },
{
"plugin": "aiops",
"path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx"
@@ -21367,18 +21367,6 @@
"plugin": "unifiedSearch",
"path": "src/plugins/unified_search/public/dataview_picker/change_dataview.tsx"
},
- {
- "plugin": "dataViews",
- "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
- },
- {
- "plugin": "dataViews",
- "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
- },
- {
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
- },
{
"plugin": "controls",
"path": "src/plugins/controls/public/services/options_list/options_list_service.ts"
@@ -21411,6 +21399,18 @@
"plugin": "lens",
"path": "x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx"
},
+ {
+ "plugin": "dataViews",
+ "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
+ },
+ {
+ "plugin": "dataViews",
+ "path": "src/plugins/data_views/server/rest_api_routes/update_data_view.ts"
+ },
+ {
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
+ },
{
"plugin": "aiops",
"path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx"
diff --git a/api_docs/data.mdx b/api_docs/data.mdx
index 9042c5275bcea..db8730d065cbe 100644
--- a/api_docs/data.mdx
+++ b/api_docs/data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data
title: "data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data']
---
import dataObj from './data.devdocs.json';
diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx
index 7ade673b311ed..601219b420239 100644
--- a/api_docs/data_query.mdx
+++ b/api_docs/data_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query
title: "data.query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.query plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query']
---
import dataQueryObj from './data_query.devdocs.json';
diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json
index df1f2ff24441a..3f27dab1ede57 100644
--- a/api_docs/data_search.devdocs.json
+++ b/api_docs/data_search.devdocs.json
@@ -24992,7 +24992,7 @@
"label": "fieldFormats",
"description": [],
"signature": [
- "{ has: (id: string) => boolean; deserialize: ",
+ "{ deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -25232,7 +25232,7 @@
"section": "def-common.FieldFormatConfig",
"text": "FieldFormatConfig"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/data/common/search/aggs/aggs_service.ts",
"deprecated": false,
diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx
index 71be7fd7cc229..d1df7dcccc874 100644
--- a/api_docs/data_search.mdx
+++ b/api_docs/data_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search
title: "data.search"
image: https://source.unsplash.com/400x175/?github
description: API docs for the data.search plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search']
---
import dataSearchObj from './data_search.devdocs.json';
diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx
index 6e96fbbe898a5..5cae668f7fdfa 100644
--- a/api_docs/data_view_editor.mdx
+++ b/api_docs/data_view_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor
title: "dataViewEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewEditor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor']
---
import dataViewEditorObj from './data_view_editor.devdocs.json';
diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx
index 876fb54d470cb..157b97bbfe74b 100644
--- a/api_docs/data_view_field_editor.mdx
+++ b/api_docs/data_view_field_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor
title: "dataViewFieldEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewFieldEditor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor']
---
import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json';
diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx
index 0bc83a60c5ded..58241023b4a1d 100644
--- a/api_docs/data_view_management.mdx
+++ b/api_docs/data_view_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement
title: "dataViewManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViewManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement']
---
import dataViewManagementObj from './data_view_management.devdocs.json';
diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json
index 2007675704479..c4b78d31c56ca 100644
--- a/api_docs/data_views.devdocs.json
+++ b/api_docs/data_views.devdocs.json
@@ -303,10 +303,6 @@
"plugin": "unifiedSearch",
"path": "src/plugins/unified_search/public/dataview_picker/change_dataview.tsx"
},
- {
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
- },
{
"plugin": "controls",
"path": "src/plugins/controls/public/services/options_list/options_list_service.ts"
@@ -339,6 +335,10 @@
"plugin": "lens",
"path": "x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx"
},
+ {
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
+ },
{
"plugin": "aiops",
"path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx"
@@ -6593,7 +6593,7 @@
"\nField formats"
],
"signature": [
- "{ has: (id: string) => boolean; register: (fieldFormats: ",
+ "{ register: (fieldFormats: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -6601,7 +6601,7 @@
"section": "def-common.FieldFormatInstanceType",
"text": "FieldFormatInstanceType"
},
- "[]) => void; }"
+ "[]) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/data_views/public/types.ts",
"deprecated": false,
@@ -6641,7 +6641,7 @@
"section": "def-common.FieldFormatsRegistry",
"text": "FieldFormatsRegistry"
},
- ", \"register\" | \"init\"> & { deserialize: ",
+ ", \"init\" | \"register\"> & { deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -8560,10 +8560,6 @@
"plugin": "unifiedSearch",
"path": "src/plugins/unified_search/public/dataview_picker/change_dataview.tsx"
},
- {
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
- },
{
"plugin": "controls",
"path": "src/plugins/controls/public/services/options_list/options_list_service.ts"
@@ -8596,6 +8592,10 @@
"plugin": "lens",
"path": "x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx"
},
+ {
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
+ },
{
"plugin": "aiops",
"path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx"
@@ -15874,10 +15874,6 @@
"plugin": "unifiedSearch",
"path": "src/plugins/unified_search/public/dataview_picker/change_dataview.tsx"
},
- {
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
- },
{
"plugin": "controls",
"path": "src/plugins/controls/public/services/options_list/options_list_service.ts"
@@ -15910,6 +15906,10 @@
"plugin": "lens",
"path": "x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx"
},
+ {
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/common/lib/data_apis.ts"
+ },
{
"plugin": "aiops",
"path": "x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx"
@@ -21364,7 +21364,7 @@
"\nField formats service"
],
"signature": [
- "{ has: (id: string) => boolean; deserialize: ",
+ "{ deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -21604,7 +21604,7 @@
"section": "def-common.FieldFormatConfig",
"text": "FieldFormatConfig"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/data_views/common/data_views/data_views.ts",
"deprecated": false,
diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx
index ffbf85e983ace..c49c1f554773f 100644
--- a/api_docs/data_views.mdx
+++ b/api_docs/data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews
title: "dataViews"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataViews plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews']
---
import dataViewsObj from './data_views.devdocs.json';
diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx
index b6b572497d698..0d531ef7a344a 100644
--- a/api_docs/data_visualizer.mdx
+++ b/api_docs/data_visualizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer
title: "dataVisualizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the dataVisualizer plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer']
---
import dataVisualizerObj from './data_visualizer.devdocs.json';
diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx
index 9b5a68e499faa..fb0d3e1744199 100644
--- a/api_docs/deprecations_by_api.mdx
+++ b/api_docs/deprecations_by_api.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api
title: Deprecated API usage by API
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -17,9 +17,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Deprecated API | Referencing plugin(s) | Remove By |
| ---------------|-----------|-----------|
| | ml, stackAlerts | - |
-| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, savedObjectsManagement, unifiedSearch, triggersActionsUi, controls, unifiedFieldList, lens, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover, data | - |
-| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, savedObjectsManagement, unifiedSearch, triggersActionsUi, controls, unifiedFieldList, lens, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover, data | - |
-| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, data, savedObjectsManagement, unifiedSearch, triggersActionsUi, controls, unifiedFieldList, lens, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover | - |
+| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, savedObjectsManagement, unifiedSearch, controls, unifiedFieldList, lens, triggersActionsUi, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover, data | - |
+| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, dataViews, savedObjectsManagement, unifiedSearch, controls, unifiedFieldList, lens, triggersActionsUi, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover, data | - |
+| | @kbn/es-query, securitySolution, timelines, lists, threatIntelligence, data, savedObjectsManagement, unifiedSearch, controls, unifiedFieldList, lens, triggersActionsUi, aiops, ml, infra, visTypeTimeseries, apm, observability, exploratoryView, dataVisualizer, fleet, canvas, graph, stackAlerts, synthetics, transform, upgradeAssistant, ux, maps, dataViewManagement, inputControlVis, visDefaultEditor, presentationUtil, visTypeTimelion, visTypeVega, discover | - |
| | home, data, esUiShared, spaces, savedObjectsManagement, observability, exploratoryView, fleet, ml, apm, enterpriseSearch, indexLifecycleManagement, synthetics, upgradeAssistant, ux, kibanaOverview | - |
| | encryptedSavedObjects, actions, data, ml, logstash, securitySolution, cloudChat | - |
| | actions, ml, savedObjectsTagging, enterpriseSearch | - |
@@ -88,7 +88,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | @kbn/core | - |
| | @kbn/core, lens, savedObjects, visualizations | - |
| | @kbn/core | - |
-| | @kbn/core, advancedSettings, triggersActionsUi, visualizations | - |
+| | @kbn/core, advancedSettings, visualizations, triggersActionsUi | - |
| | home, canvas, osquery | - |
| | dataViews, maps | - |
| | dataViewManagement, dataViews | - |
diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx
index fd8df07b0e608..e7a872a0aeb7c 100644
--- a/api_docs/deprecations_by_plugin.mdx
+++ b/api_docs/deprecations_by_plugin.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin
slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin
title: Deprecated API usage by plugin
description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by.
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -464,12 +464,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [dashboard_saved_object_service.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object_service.ts#:~:text=savedObjects), [index.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/index.ts#:~:text=savedObjects) | - |
| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=SavedObjectsClientContract)+ 4 more | - |
| | [save_dashboard_state_to_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/save_dashboard_state_to_saved_object.ts#:~:text=create), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=create) | - |
-| | [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=delete) | - |
+| | [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx#:~:text=delete) | - |
| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=find), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=find), [check_for_duplicate_dashboard_title.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/check_for_duplicate_dashboard_title.ts#:~:text=find), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=find) | - |
| | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=get) | - |
| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=bulkGet) | - |
| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=resolve) | - |
-| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx#:~:text=SimpleSavedObject) | - |
+| | [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [find_dashboard_saved_objects.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/find_dashboard_saved_objects.ts#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx#:~:text=SimpleSavedObject), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx#:~:text=SimpleSavedObject) | - |
| | [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=ResolvedSimpleSavedObject), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=ResolvedSimpleSavedObject) | - |
| | [migrate_extract_panel_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts#:~:text=SavedObjectAttributes), [migrate_extract_panel_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/migrations/migrate_extract_panel_references.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry_collection_task.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry_collection_task.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry.ts#:~:text=SavedObjectAttributes), [dashboard_telemetry.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/dashboard_telemetry.ts#:~:text=SavedObjectAttributes), [find_by_value_embeddables.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/find_by_value_embeddables.ts#:~:text=SavedObjectAttributes), [find_by_value_embeddables.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/usage/find_by_value_embeddables.ts#:~:text=SavedObjectAttributes), [load_dashboard_state_from_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/services/dashboard_saved_object/lib/load_dashboard_state_from_saved_object.ts#:~:text=SavedObjectAttributes)+ 20 more | - |
| | [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart), [clone_panel_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/clone_panel_action.tsx#:~:text=SavedObjectsStart) | - |
diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx
index 6a2d92be3cd3d..8a54dff579e5f 100644
--- a/api_docs/deprecations_by_team.mdx
+++ b/api_docs/deprecations_by_team.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam
slug: /kibana-dev-docs/api-meta/deprecations-due-by-team
title: Deprecated APIs due to be removed, by team
description: Lists the teams that are referencing deprecated APIs with a remove by date.
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx
index 0743acd567ca5..c74b6557d7426 100644
--- a/api_docs/dev_tools.mdx
+++ b/api_docs/dev_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools
title: "devTools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the devTools plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools']
---
import devToolsObj from './dev_tools.devdocs.json';
diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx
index 3e8566a3f31d8..8148d36e69bd3 100644
--- a/api_docs/discover.mdx
+++ b/api_docs/discover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover
title: "discover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discover plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover']
---
import discoverObj from './discover.devdocs.json';
diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx
index a7ea97cd63716..6506ac759fa7a 100644
--- a/api_docs/discover_enhanced.mdx
+++ b/api_docs/discover_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced
title: "discoverEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the discoverEnhanced plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced']
---
import discoverEnhancedObj from './discover_enhanced.devdocs.json';
diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx
index 487ed85f15834..83f166dcad9b5 100644
--- a/api_docs/ecs_data_quality_dashboard.mdx
+++ b/api_docs/ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard
title: "ecsDataQualityDashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ecsDataQualityDashboard plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard']
---
import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx
index 0b12ab9a9606f..94a4960c02079 100644
--- a/api_docs/embeddable.mdx
+++ b/api_docs/embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable
title: "embeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddable plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable']
---
import embeddableObj from './embeddable.devdocs.json';
diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx
index 187ba02f37f47..8e86c1bdf95dc 100644
--- a/api_docs/embeddable_enhanced.mdx
+++ b/api_docs/embeddable_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced
title: "embeddableEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the embeddableEnhanced plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced']
---
import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json';
diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx
index 5345784bcc2f7..971596d4509a9 100644
--- a/api_docs/encrypted_saved_objects.mdx
+++ b/api_docs/encrypted_saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects
title: "encryptedSavedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the encryptedSavedObjects plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects']
---
import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json';
diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx
index 35f38da60b34e..76aeb4cff30d7 100644
--- a/api_docs/enterprise_search.mdx
+++ b/api_docs/enterprise_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch
title: "enterpriseSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the enterpriseSearch plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch']
---
import enterpriseSearchObj from './enterprise_search.devdocs.json';
diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx
index d42e423c9bdab..9291c86e82e60 100644
--- a/api_docs/es_ui_shared.mdx
+++ b/api_docs/es_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared
title: "esUiShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the esUiShared plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared']
---
import esUiSharedObj from './es_ui_shared.devdocs.json';
diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx
index 13d82edfc47eb..e9eb2b400ee05 100644
--- a/api_docs/event_annotation.mdx
+++ b/api_docs/event_annotation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation
title: "eventAnnotation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventAnnotation plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation']
---
import eventAnnotationObj from './event_annotation.devdocs.json';
diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx
index 7028a6b5e0747..87cb559074c9a 100644
--- a/api_docs/event_log.mdx
+++ b/api_docs/event_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog
title: "eventLog"
image: https://source.unsplash.com/400x175/?github
description: API docs for the eventLog plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog']
---
import eventLogObj from './event_log.devdocs.json';
diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx
index b3f318e94e52a..a59314c8667fd 100644
--- a/api_docs/exploratory_view.mdx
+++ b/api_docs/exploratory_view.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView
title: "exploratoryView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the exploratoryView plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView']
---
import exploratoryViewObj from './exploratory_view.devdocs.json';
diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx
index e2e1a409edadc..058907c640274 100644
--- a/api_docs/expression_error.mdx
+++ b/api_docs/expression_error.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError
title: "expressionError"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionError plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError']
---
import expressionErrorObj from './expression_error.devdocs.json';
diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx
index 1660514e30710..d005bd65c76ee 100644
--- a/api_docs/expression_gauge.mdx
+++ b/api_docs/expression_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge
title: "expressionGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionGauge plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge']
---
import expressionGaugeObj from './expression_gauge.devdocs.json';
diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx
index 5b4bfd2c7fef2..631985dfa297a 100644
--- a/api_docs/expression_heatmap.mdx
+++ b/api_docs/expression_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap
title: "expressionHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionHeatmap plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap']
---
import expressionHeatmapObj from './expression_heatmap.devdocs.json';
diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx
index 14a5c95ab5b09..58e8ab5d87739 100644
--- a/api_docs/expression_image.mdx
+++ b/api_docs/expression_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage
title: "expressionImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionImage plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage']
---
import expressionImageObj from './expression_image.devdocs.json';
diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx
index 48fb3db24fbf9..4cf6d1dd4a9de 100644
--- a/api_docs/expression_legacy_metric_vis.mdx
+++ b/api_docs/expression_legacy_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis
title: "expressionLegacyMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionLegacyMetricVis plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis']
---
import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json';
diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx
index de64ed48c26ca..3d65bc107e617 100644
--- a/api_docs/expression_metric.mdx
+++ b/api_docs/expression_metric.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric
title: "expressionMetric"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetric plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric']
---
import expressionMetricObj from './expression_metric.devdocs.json';
diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx
index 27d476ad498f5..75517415267e0 100644
--- a/api_docs/expression_metric_vis.mdx
+++ b/api_docs/expression_metric_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis
title: "expressionMetricVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionMetricVis plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis']
---
import expressionMetricVisObj from './expression_metric_vis.devdocs.json';
diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx
index 6f87ccb0f8dc7..42a25678e777d 100644
--- a/api_docs/expression_partition_vis.mdx
+++ b/api_docs/expression_partition_vis.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis
title: "expressionPartitionVis"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionPartitionVis plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis']
---
import expressionPartitionVisObj from './expression_partition_vis.devdocs.json';
diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx
index 51f43f56d417f..9bafa35f80794 100644
--- a/api_docs/expression_repeat_image.mdx
+++ b/api_docs/expression_repeat_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage
title: "expressionRepeatImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRepeatImage plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage']
---
import expressionRepeatImageObj from './expression_repeat_image.devdocs.json';
diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx
index 511b3ba14be1b..e0cdc69d636d9 100644
--- a/api_docs/expression_reveal_image.mdx
+++ b/api_docs/expression_reveal_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage
title: "expressionRevealImage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionRevealImage plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage']
---
import expressionRevealImageObj from './expression_reveal_image.devdocs.json';
diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx
index 27c25e798ad9d..62aa475f1156c 100644
--- a/api_docs/expression_shape.mdx
+++ b/api_docs/expression_shape.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape
title: "expressionShape"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionShape plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape']
---
import expressionShapeObj from './expression_shape.devdocs.json';
diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx
index 438836d6f6796..cd5d90a3e6cf3 100644
--- a/api_docs/expression_tagcloud.mdx
+++ b/api_docs/expression_tagcloud.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud
title: "expressionTagcloud"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionTagcloud plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud']
---
import expressionTagcloudObj from './expression_tagcloud.devdocs.json';
diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx
index 2aa69f3af47b6..e338d57e6f0f1 100644
--- a/api_docs/expression_x_y.mdx
+++ b/api_docs/expression_x_y.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY
title: "expressionXY"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressionXY plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY']
---
import expressionXYObj from './expression_x_y.devdocs.json';
diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx
index 396020e799a5d..c187ed5a0c268 100644
--- a/api_docs/expressions.mdx
+++ b/api_docs/expressions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions
title: "expressions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the expressions plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions']
---
import expressionsObj from './expressions.devdocs.json';
diff --git a/api_docs/features.mdx b/api_docs/features.mdx
index 9a6f7e6ba0efa..268a930b7c64d 100644
--- a/api_docs/features.mdx
+++ b/api_docs/features.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features
title: "features"
image: https://source.unsplash.com/400x175/?github
description: API docs for the features plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features']
---
import featuresObj from './features.devdocs.json';
diff --git a/api_docs/field_formats.devdocs.json b/api_docs/field_formats.devdocs.json
index 309316f1deb28..d4f8c33a70b9e 100644
--- a/api_docs/field_formats.devdocs.json
+++ b/api_docs/field_formats.devdocs.json
@@ -352,7 +352,7 @@
"label": "FieldFormatsSetup",
"description": [],
"signature": [
- "{ has: (id: string) => boolean; register: (fieldFormats: ",
+ "{ register: (fieldFormats: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -360,7 +360,7 @@
"section": "def-common.FieldFormatInstanceType",
"text": "FieldFormatInstanceType"
},
- "[]) => void; }"
+ "[]) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/field_formats/public/plugin.ts",
"deprecated": false,
@@ -384,7 +384,7 @@
"section": "def-common.FieldFormatsRegistry",
"text": "FieldFormatsRegistry"
},
- ", \"register\" | \"init\"> & { deserialize: ",
+ ", \"init\" | \"register\"> & { deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -5748,7 +5748,7 @@
"label": "FieldFormatsStartCommon",
"description": [],
"signature": [
- "{ has: (id: string) => boolean; deserialize: ",
+ "{ deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -5988,7 +5988,7 @@
"section": "def-common.FieldFormatConfig",
"text": "FieldFormatConfig"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/field_formats/common/types.ts",
"deprecated": false,
@@ -6172,15 +6172,7 @@
"label": "IFieldFormatsRegistry",
"description": [],
"signature": [
- "{ has: (id: string) => boolean; register: (fieldFormats: ",
- {
- "pluginId": "fieldFormats",
- "scope": "common",
- "docId": "kibFieldFormatsPluginApi",
- "section": "def-common.FieldFormatInstanceType",
- "text": "FieldFormatInstanceType"
- },
- "[]) => void; init: (getConfig: ",
+ "{ init: (getConfig: ",
{
"pluginId": "fieldFormats",
"scope": "common",
@@ -6212,6 +6204,14 @@
"section": "def-common.FieldFormatInstanceType",
"text": "FieldFormatInstanceType"
},
+ "[]) => void; register: (fieldFormats: ",
+ {
+ "pluginId": "fieldFormats",
+ "scope": "common",
+ "docId": "kibFieldFormatsPluginApi",
+ "section": "def-common.FieldFormatInstanceType",
+ "text": "FieldFormatInstanceType"
+ },
"[]) => void; deserialize: ",
{
"pluginId": "fieldFormats",
@@ -6452,7 +6452,7 @@
"section": "def-common.FieldFormatConfig",
"text": "FieldFormatConfig"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "src/plugins/field_formats/common/index.ts",
"deprecated": false,
diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx
index d761000d37cdb..c2955918d2cbb 100644
--- a/api_docs/field_formats.mdx
+++ b/api_docs/field_formats.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats
title: "fieldFormats"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fieldFormats plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats']
---
import fieldFormatsObj from './field_formats.devdocs.json';
diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx
index 2e5be5f9059e1..951a040359fc0 100644
--- a/api_docs/file_upload.mdx
+++ b/api_docs/file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload
title: "fileUpload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fileUpload plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload']
---
import fileUploadObj from './file_upload.devdocs.json';
diff --git a/api_docs/files.mdx b/api_docs/files.mdx
index c8c764e81602d..5b9d6f3da2059 100644
--- a/api_docs/files.mdx
+++ b/api_docs/files.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files
title: "files"
image: https://source.unsplash.com/400x175/?github
description: API docs for the files plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files']
---
import filesObj from './files.devdocs.json';
diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx
index 3f26568471bf2..46c3e88281155 100644
--- a/api_docs/files_management.mdx
+++ b/api_docs/files_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement
title: "filesManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the filesManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement']
---
import filesManagementObj from './files_management.devdocs.json';
diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx
index 3c545e00c622d..624c2d71bce89 100644
--- a/api_docs/fleet.mdx
+++ b/api_docs/fleet.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet
title: "fleet"
image: https://source.unsplash.com/400x175/?github
description: API docs for the fleet plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet']
---
import fleetObj from './fleet.devdocs.json';
diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx
index 9fb694a069464..2aef1eb1e7d44 100644
--- a/api_docs/global_search.mdx
+++ b/api_docs/global_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch
title: "globalSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the globalSearch plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch']
---
import globalSearchObj from './global_search.devdocs.json';
diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx
index 9e6ba650c2da7..600524142c9e8 100644
--- a/api_docs/guided_onboarding.mdx
+++ b/api_docs/guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding
title: "guidedOnboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the guidedOnboarding plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding']
---
import guidedOnboardingObj from './guided_onboarding.devdocs.json';
diff --git a/api_docs/home.mdx b/api_docs/home.mdx
index dbd6f08f8716c..18bc7c3f5e0f6 100644
--- a/api_docs/home.mdx
+++ b/api_docs/home.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home
title: "home"
image: https://source.unsplash.com/400x175/?github
description: API docs for the home plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home']
---
import homeObj from './home.devdocs.json';
diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx
index 5e451c5cd72ef..77912afc2126a 100644
--- a/api_docs/image_embeddable.mdx
+++ b/api_docs/image_embeddable.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable
title: "imageEmbeddable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the imageEmbeddable plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable']
---
import imageEmbeddableObj from './image_embeddable.devdocs.json';
diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx
index 7676955b9bf14..577a0ee22da7a 100644
--- a/api_docs/index_lifecycle_management.mdx
+++ b/api_docs/index_lifecycle_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement
title: "indexLifecycleManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexLifecycleManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement']
---
import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json';
diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx
index e78c18f56cb5f..22fa699bdcd19 100644
--- a/api_docs/index_management.mdx
+++ b/api_docs/index_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement
title: "indexManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the indexManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement']
---
import indexManagementObj from './index_management.devdocs.json';
diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx
index 16a212aff29d3..a9c227d21af98 100644
--- a/api_docs/infra.mdx
+++ b/api_docs/infra.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra
title: "infra"
image: https://source.unsplash.com/400x175/?github
description: API docs for the infra plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra']
---
import infraObj from './infra.devdocs.json';
diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx
index 93a77f0829ee9..6ae66934a55d1 100644
--- a/api_docs/inspector.mdx
+++ b/api_docs/inspector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector
title: "inspector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the inspector plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector']
---
import inspectorObj from './inspector.devdocs.json';
diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx
index 02c9326eea040..2ab5d39b10e30 100644
--- a/api_docs/interactive_setup.mdx
+++ b/api_docs/interactive_setup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup
title: "interactiveSetup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the interactiveSetup plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup']
---
import interactiveSetupObj from './interactive_setup.devdocs.json';
diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx
index 56549b7b0fd4e..67ee43007fdc9 100644
--- a/api_docs/kbn_ace.mdx
+++ b/api_docs/kbn_ace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace
title: "@kbn/ace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ace plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace']
---
import kbnAceObj from './kbn_ace.devdocs.json';
diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx
index 6f6e422407e04..3803893785185 100644
--- a/api_docs/kbn_aiops_components.mdx
+++ b/api_docs/kbn_aiops_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components
title: "@kbn/aiops-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-components plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components']
---
import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json';
diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx
index c03288779db17..c71c2df062db1 100644
--- a/api_docs/kbn_aiops_utils.mdx
+++ b/api_docs/kbn_aiops_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils
title: "@kbn/aiops-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/aiops-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils']
---
import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json';
diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx
index 13f7e7045653d..dc2bd696405a8 100644
--- a/api_docs/kbn_alerting_state_types.mdx
+++ b/api_docs/kbn_alerting_state_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types
title: "@kbn/alerting-state-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerting-state-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types']
---
import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json';
diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx
index 2f2b3283d1d34..5610770bef960 100644
--- a/api_docs/kbn_alerts.mdx
+++ b/api_docs/kbn_alerts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts
title: "@kbn/alerts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts']
---
import kbnAlertsObj from './kbn_alerts.devdocs.json';
diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx
index 1e81906ce9fc8..dbc0fccbc39ff 100644
--- a/api_docs/kbn_alerts_as_data_utils.mdx
+++ b/api_docs/kbn_alerts_as_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils
title: "@kbn/alerts-as-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-as-data-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils']
---
import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json';
diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx
index d0e006ff3e866..1f152e91c60e2 100644
--- a/api_docs/kbn_alerts_ui_shared.mdx
+++ b/api_docs/kbn_alerts_ui_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared
title: "@kbn/alerts-ui-shared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/alerts-ui-shared plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared']
---
import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json';
diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx
index 7157be3ae4dc6..a5b9c7ed5ca56 100644
--- a/api_docs/kbn_analytics.mdx
+++ b/api_docs/kbn_analytics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics
title: "@kbn/analytics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics']
---
import kbnAnalyticsObj from './kbn_analytics.devdocs.json';
diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx
index cb3135d0183a8..26bc13c4db5fc 100644
--- a/api_docs/kbn_analytics_client.mdx
+++ b/api_docs/kbn_analytics_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client
title: "@kbn/analytics-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-client plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client']
---
import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
index a4613191b0259..242a6221a751d 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser
title: "@kbn/analytics-shippers-elastic-v3-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser']
---
import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
index e1e6a136955f9..74799d1f0d30f 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common
title: "@kbn/analytics-shippers-elastic-v3-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common']
---
import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
index 0b4edfefa7c4d..fa20d286793fb 100644
--- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
+++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server
title: "@kbn/analytics-shippers-elastic-v3-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server']
---
import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx
index b5a027419cbfa..c46bd2626a0d7 100644
--- a/api_docs/kbn_analytics_shippers_fullstory.mdx
+++ b/api_docs/kbn_analytics_shippers_fullstory.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory
title: "@kbn/analytics-shippers-fullstory"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-fullstory plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory']
---
import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json';
diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx
index 9b82c3f75622f..2f789d03d3064 100644
--- a/api_docs/kbn_analytics_shippers_gainsight.mdx
+++ b/api_docs/kbn_analytics_shippers_gainsight.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight
title: "@kbn/analytics-shippers-gainsight"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/analytics-shippers-gainsight plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight']
---
import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json';
diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx
index ace30980aa096..646095277ae18 100644
--- a/api_docs/kbn_apm_config_loader.mdx
+++ b/api_docs/kbn_apm_config_loader.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader
title: "@kbn/apm-config-loader"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-config-loader plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader']
---
import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx
index 91e57f8c794a6..440bc59095fb9 100644
--- a/api_docs/kbn_apm_synthtrace.mdx
+++ b/api_docs/kbn_apm_synthtrace.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace
title: "@kbn/apm-synthtrace"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace']
---
import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json';
diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx
index 726dd481c8896..fb4fc2d58e1d7 100644
--- a/api_docs/kbn_apm_synthtrace_client.mdx
+++ b/api_docs/kbn_apm_synthtrace_client.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client
title: "@kbn/apm-synthtrace-client"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-synthtrace-client plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client']
---
import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json';
diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx
index 66bd86dda8f90..1a24a499081d6 100644
--- a/api_docs/kbn_apm_utils.mdx
+++ b/api_docs/kbn_apm_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils
title: "@kbn/apm-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/apm-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils']
---
import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json';
diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx
index 5c333500ffd42..cfc894c0aed33 100644
--- a/api_docs/kbn_axe_config.mdx
+++ b/api_docs/kbn_axe_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config
title: "@kbn/axe-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/axe-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config']
---
import kbnAxeConfigObj from './kbn_axe_config.devdocs.json';
diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx
index f6c1bb8c1fdd2..20950b0b5504b 100644
--- a/api_docs/kbn_cases_components.mdx
+++ b/api_docs/kbn_cases_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components
title: "@kbn/cases-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cases-components plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components']
---
import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json';
diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx
index b51e865e91efb..39e5c1f3876ed 100644
--- a/api_docs/kbn_cell_actions.mdx
+++ b/api_docs/kbn_cell_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions
title: "@kbn/cell-actions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cell-actions plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions']
---
import kbnCellActionsObj from './kbn_cell_actions.devdocs.json';
diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx
index 675e932b51da8..4b9682a493355 100644
--- a/api_docs/kbn_chart_expressions_common.mdx
+++ b/api_docs/kbn_chart_expressions_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common
title: "@kbn/chart-expressions-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-expressions-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common']
---
import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json';
diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx
index b44bc8d08398e..6ee7741aac660 100644
--- a/api_docs/kbn_chart_icons.mdx
+++ b/api_docs/kbn_chart_icons.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons
title: "@kbn/chart-icons"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/chart-icons plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons']
---
import kbnChartIconsObj from './kbn_chart_icons.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx
index fcc1c1000d1aa..7535c8f6802bb 100644
--- a/api_docs/kbn_ci_stats_core.mdx
+++ b/api_docs/kbn_ci_stats_core.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core
title: "@kbn/ci-stats-core"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-core plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core']
---
import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx
index b1a660d40aed7..e38354234f2a1 100644
--- a/api_docs/kbn_ci_stats_performance_metrics.mdx
+++ b/api_docs/kbn_ci_stats_performance_metrics.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics
title: "@kbn/ci-stats-performance-metrics"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-performance-metrics plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics']
---
import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json';
diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx
index 713d09c35b297..436a35b857d97 100644
--- a/api_docs/kbn_ci_stats_reporter.mdx
+++ b/api_docs/kbn_ci_stats_reporter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter
title: "@kbn/ci-stats-reporter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ci-stats-reporter plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter']
---
import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json';
diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx
index 8fc45e01f5276..72b4147358ebf 100644
--- a/api_docs/kbn_cli_dev_mode.mdx
+++ b/api_docs/kbn_cli_dev_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode
title: "@kbn/cli-dev-mode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cli-dev-mode plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode']
---
import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json';
diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx
index 6e387bc634e31..a438c3ac72212 100644
--- a/api_docs/kbn_code_editor.mdx
+++ b/api_docs/kbn_code_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor
title: "@kbn/code-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor']
---
import kbnCodeEditorObj from './kbn_code_editor.devdocs.json';
diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx
index eb297f16ae3b5..6faa2e668df36 100644
--- a/api_docs/kbn_code_editor_mocks.mdx
+++ b/api_docs/kbn_code_editor_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks
title: "@kbn/code-editor-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/code-editor-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks']
---
import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json';
diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx
index 68b302a974a04..d0f93bffc6bcd 100644
--- a/api_docs/kbn_coloring.mdx
+++ b/api_docs/kbn_coloring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring
title: "@kbn/coloring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/coloring plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring']
---
import kbnColoringObj from './kbn_coloring.devdocs.json';
diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx
index dd6338465c03e..0c1bc4ec3037a 100644
--- a/api_docs/kbn_config.mdx
+++ b/api_docs/kbn_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config
title: "@kbn/config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config']
---
import kbnConfigObj from './kbn_config.devdocs.json';
diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx
index b4f8c91a27b78..654be1f4dc6f6 100644
--- a/api_docs/kbn_config_mocks.mdx
+++ b/api_docs/kbn_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks
title: "@kbn/config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks']
---
import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx
index e33a74eb68baa..e33c9b85eb791 100644
--- a/api_docs/kbn_config_schema.mdx
+++ b/api_docs/kbn_config_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema
title: "@kbn/config-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/config-schema plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema']
---
import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json';
diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx
index 902d8058f97ba..8080fd41a6217 100644
--- a/api_docs/kbn_content_management_content_editor.mdx
+++ b/api_docs/kbn_content_management_content_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor
title: "@kbn/content-management-content-editor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-content-editor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor']
---
import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json';
diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx
index 352bf38fdc892..8eb1ca361def0 100644
--- a/api_docs/kbn_content_management_table_list.mdx
+++ b/api_docs/kbn_content_management_table_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list
title: "@kbn/content-management-table-list"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/content-management-table-list plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list']
---
import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx
index e4539cda8a262..7e6d452bd3dc8 100644
--- a/api_docs/kbn_core_analytics_browser.mdx
+++ b/api_docs/kbn_core_analytics_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser
title: "@kbn/core-analytics-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser']
---
import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx
index 73d91698923fb..f88d22357c501 100644
--- a/api_docs/kbn_core_analytics_browser_internal.mdx
+++ b/api_docs/kbn_core_analytics_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal
title: "@kbn/core-analytics-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal']
---
import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx
index 960ae88c34d9c..9ed87daf3b53d 100644
--- a/api_docs/kbn_core_analytics_browser_mocks.mdx
+++ b/api_docs/kbn_core_analytics_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks
title: "@kbn/core-analytics-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks']
---
import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx
index af90434afd14f..3ee3bc858e18f 100644
--- a/api_docs/kbn_core_analytics_server.mdx
+++ b/api_docs/kbn_core_analytics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server
title: "@kbn/core-analytics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server']
---
import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx
index fdc150048b546..944c7c7e5e095 100644
--- a/api_docs/kbn_core_analytics_server_internal.mdx
+++ b/api_docs/kbn_core_analytics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal
title: "@kbn/core-analytics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal']
---
import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx
index 2bdd7491f44d6..e8b3ed64abd21 100644
--- a/api_docs/kbn_core_analytics_server_mocks.mdx
+++ b/api_docs/kbn_core_analytics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks
title: "@kbn/core-analytics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-analytics-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks']
---
import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx
index 1ef2887cc17b1..73a96764f0a20 100644
--- a/api_docs/kbn_core_application_browser.mdx
+++ b/api_docs/kbn_core_application_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser
title: "@kbn/core-application-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser']
---
import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx
index 9fab0c7fe7abb..65e5281d02558 100644
--- a/api_docs/kbn_core_application_browser_internal.mdx
+++ b/api_docs/kbn_core_application_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal
title: "@kbn/core-application-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal']
---
import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx
index 8b54a6f3d6c1d..e0544bfb741b8 100644
--- a/api_docs/kbn_core_application_browser_mocks.mdx
+++ b/api_docs/kbn_core_application_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks
title: "@kbn/core-application-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks']
---
import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx
index 5e7a72c0bd96e..abdcdcab8b3da 100644
--- a/api_docs/kbn_core_application_common.mdx
+++ b/api_docs/kbn_core_application_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common
title: "@kbn/core-application-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-application-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common']
---
import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx
index b7e613f201591..5a7df9b5c701d 100644
--- a/api_docs/kbn_core_apps_browser_internal.mdx
+++ b/api_docs/kbn_core_apps_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal
title: "@kbn/core-apps-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal']
---
import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx
index 18a7187fd6a2a..4f7120a3dcfe7 100644
--- a/api_docs/kbn_core_apps_browser_mocks.mdx
+++ b/api_docs/kbn_core_apps_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks
title: "@kbn/core-apps-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks']
---
import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx
index 7be151a808381..04b4becdc9ed7 100644
--- a/api_docs/kbn_core_apps_server_internal.mdx
+++ b/api_docs/kbn_core_apps_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal
title: "@kbn/core-apps-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-apps-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal']
---
import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx
index c318aef48698f..7edc1c2bf0108 100644
--- a/api_docs/kbn_core_base_browser_mocks.mdx
+++ b/api_docs/kbn_core_base_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks
title: "@kbn/core-base-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks']
---
import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx
index a3e2b8e108b9c..31241bd3ebab8 100644
--- a/api_docs/kbn_core_base_common.mdx
+++ b/api_docs/kbn_core_base_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common
title: "@kbn/core-base-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common']
---
import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx
index e8983ef40ea70..c77e0e47adc5e 100644
--- a/api_docs/kbn_core_base_server_internal.mdx
+++ b/api_docs/kbn_core_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal
title: "@kbn/core-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal']
---
import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx
index ecae73446750f..415fe2fed1189 100644
--- a/api_docs/kbn_core_base_server_mocks.mdx
+++ b/api_docs/kbn_core_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks
title: "@kbn/core-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-base-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks']
---
import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx
index 153b0cc230a48..b98ffe805e860 100644
--- a/api_docs/kbn_core_capabilities_browser_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks
title: "@kbn/core-capabilities-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks']
---
import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx
index 868d603c8e281..4777bb07d8cb8 100644
--- a/api_docs/kbn_core_capabilities_common.mdx
+++ b/api_docs/kbn_core_capabilities_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common
title: "@kbn/core-capabilities-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common']
---
import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx
index 0ce797c61c16a..4f83cbf656d29 100644
--- a/api_docs/kbn_core_capabilities_server.mdx
+++ b/api_docs/kbn_core_capabilities_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server
title: "@kbn/core-capabilities-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server']
---
import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json';
diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx
index 75673d3116a09..b29b724f4ff08 100644
--- a/api_docs/kbn_core_capabilities_server_mocks.mdx
+++ b/api_docs/kbn_core_capabilities_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks
title: "@kbn/core-capabilities-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-capabilities-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks']
---
import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx
index 8f877bcf977b6..4f4b841e7c133 100644
--- a/api_docs/kbn_core_chrome_browser.mdx
+++ b/api_docs/kbn_core_chrome_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser
title: "@kbn/core-chrome-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser']
---
import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json';
diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx
index 7a350e8939743..78e1da6e97f8d 100644
--- a/api_docs/kbn_core_chrome_browser_mocks.mdx
+++ b/api_docs/kbn_core_chrome_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks
title: "@kbn/core-chrome-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-chrome-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks']
---
import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx
index a87c9eeb31bff..c387e23236985 100644
--- a/api_docs/kbn_core_config_server_internal.mdx
+++ b/api_docs/kbn_core_config_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal
title: "@kbn/core-config-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-config-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal']
---
import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx
index 739a017c4c0da..c85986cb5d39c 100644
--- a/api_docs/kbn_core_custom_branding_browser.mdx
+++ b/api_docs/kbn_core_custom_branding_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser
title: "@kbn/core-custom-branding-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser']
---
import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx
index e8edf0f9f8113..6cd7e8cdd4dd8 100644
--- a/api_docs/kbn_core_custom_branding_browser_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal
title: "@kbn/core-custom-branding-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal']
---
import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
index 350cca1f2d2d2..5828e4b3e796f 100644
--- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks
title: "@kbn/core-custom-branding-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks']
---
import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx
index cc528ca5cd1ef..024319834e756 100644
--- a/api_docs/kbn_core_custom_branding_common.mdx
+++ b/api_docs/kbn_core_custom_branding_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common
title: "@kbn/core-custom-branding-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common']
---
import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx
index 74ca1bb9a985f..ffb1c6e6442ca 100644
--- a/api_docs/kbn_core_custom_branding_server.mdx
+++ b/api_docs/kbn_core_custom_branding_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server
title: "@kbn/core-custom-branding-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server']
---
import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx
index ba5161f104d25..7bbf0fae324be 100644
--- a/api_docs/kbn_core_custom_branding_server_internal.mdx
+++ b/api_docs/kbn_core_custom_branding_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal
title: "@kbn/core-custom-branding-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal']
---
import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx
index 1af3d87837faf..417f2f0c4d598 100644
--- a/api_docs/kbn_core_custom_branding_server_mocks.mdx
+++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks
title: "@kbn/core-custom-branding-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-custom-branding-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks']
---
import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx
index 71730fa9371ed..bf994f0f500a0 100644
--- a/api_docs/kbn_core_deprecations_browser.mdx
+++ b/api_docs/kbn_core_deprecations_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser
title: "@kbn/core-deprecations-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser']
---
import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx
index 084618e3d957f..8c304566110e9 100644
--- a/api_docs/kbn_core_deprecations_browser_internal.mdx
+++ b/api_docs/kbn_core_deprecations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal
title: "@kbn/core-deprecations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal']
---
import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx
index 9390479f82dcd..5c4bc6c627f55 100644
--- a/api_docs/kbn_core_deprecations_browser_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks
title: "@kbn/core-deprecations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks']
---
import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx
index 3d5745fe2b1c9..e63ecc8a6ff52 100644
--- a/api_docs/kbn_core_deprecations_common.mdx
+++ b/api_docs/kbn_core_deprecations_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common
title: "@kbn/core-deprecations-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common']
---
import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx
index 246b180c2f920..387f9924f6896 100644
--- a/api_docs/kbn_core_deprecations_server.mdx
+++ b/api_docs/kbn_core_deprecations_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server
title: "@kbn/core-deprecations-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server']
---
import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx
index b0f1c06bb4425..353c19d437d5e 100644
--- a/api_docs/kbn_core_deprecations_server_internal.mdx
+++ b/api_docs/kbn_core_deprecations_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal
title: "@kbn/core-deprecations-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal']
---
import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx
index 6543afbc5b530..6d146e44d7510 100644
--- a/api_docs/kbn_core_deprecations_server_mocks.mdx
+++ b/api_docs/kbn_core_deprecations_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks
title: "@kbn/core-deprecations-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-deprecations-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks']
---
import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx
index facbc5fa31f7d..ebfad96952499 100644
--- a/api_docs/kbn_core_doc_links_browser.mdx
+++ b/api_docs/kbn_core_doc_links_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser
title: "@kbn/core-doc-links-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser']
---
import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx
index 9602554423611..9dab9c9bbbcad 100644
--- a/api_docs/kbn_core_doc_links_browser_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks
title: "@kbn/core-doc-links-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks']
---
import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx
index 7b3785035df84..32dddf219dbdd 100644
--- a/api_docs/kbn_core_doc_links_server.mdx
+++ b/api_docs/kbn_core_doc_links_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server
title: "@kbn/core-doc-links-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server']
---
import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json';
diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx
index fec471cf93a5d..57321c54b22b9 100644
--- a/api_docs/kbn_core_doc_links_server_mocks.mdx
+++ b/api_docs/kbn_core_doc_links_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks
title: "@kbn/core-doc-links-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-doc-links-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks']
---
import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
index 316fc9a186ca7..e91f768a9b11d 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal
title: "@kbn/core-elasticsearch-client-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal']
---
import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
index 6efd2ab2b27cf..6b9414e0651b1 100644
--- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks
title: "@kbn/core-elasticsearch-client-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks']
---
import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx
index 984ed309f2192..145c7f1af2727 100644
--- a/api_docs/kbn_core_elasticsearch_server.mdx
+++ b/api_docs/kbn_core_elasticsearch_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server
title: "@kbn/core-elasticsearch-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server']
---
import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx
index 368919a455b67..b545705cc9937 100644
--- a/api_docs/kbn_core_elasticsearch_server_internal.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal
title: "@kbn/core-elasticsearch-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal']
---
import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
index f498fcf3749c8..b0c53699fdaf4 100644
--- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx
+++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks
title: "@kbn/core-elasticsearch-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-elasticsearch-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks']
---
import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx
index 332df60dab9ca..bf60d16f51e7e 100644
--- a/api_docs/kbn_core_environment_server_internal.mdx
+++ b/api_docs/kbn_core_environment_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal
title: "@kbn/core-environment-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal']
---
import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx
index 6441d4346b2d0..53bc31f39d5ac 100644
--- a/api_docs/kbn_core_environment_server_mocks.mdx
+++ b/api_docs/kbn_core_environment_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks
title: "@kbn/core-environment-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-environment-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks']
---
import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx
index 17e7c6a49ea9c..f172396845792 100644
--- a/api_docs/kbn_core_execution_context_browser.mdx
+++ b/api_docs/kbn_core_execution_context_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser
title: "@kbn/core-execution-context-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser']
---
import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx
index 38a50f223ab5f..8e788545d793c 100644
--- a/api_docs/kbn_core_execution_context_browser_internal.mdx
+++ b/api_docs/kbn_core_execution_context_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal
title: "@kbn/core-execution-context-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal']
---
import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx
index 5613e1c79c186..b06caeb0c3c3d 100644
--- a/api_docs/kbn_core_execution_context_browser_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks
title: "@kbn/core-execution-context-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks']
---
import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx
index e0f2b5ed46386..cd8d797b06c1b 100644
--- a/api_docs/kbn_core_execution_context_common.mdx
+++ b/api_docs/kbn_core_execution_context_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common
title: "@kbn/core-execution-context-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common']
---
import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx
index 41641137171ee..a57c274f69d25 100644
--- a/api_docs/kbn_core_execution_context_server.mdx
+++ b/api_docs/kbn_core_execution_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server
title: "@kbn/core-execution-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server']
---
import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx
index 852ca61f3568a..0eba46d8c5a93 100644
--- a/api_docs/kbn_core_execution_context_server_internal.mdx
+++ b/api_docs/kbn_core_execution_context_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal
title: "@kbn/core-execution-context-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal']
---
import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx
index 0170b41ac92d4..aead6167b10ea 100644
--- a/api_docs/kbn_core_execution_context_server_mocks.mdx
+++ b/api_docs/kbn_core_execution_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks
title: "@kbn/core-execution-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-execution-context-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks']
---
import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx
index b08e9428cb810..a980e30066c77 100644
--- a/api_docs/kbn_core_fatal_errors_browser.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser
title: "@kbn/core-fatal-errors-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser']
---
import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json';
diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
index 18513a7f0a6d2..fa51d22025e81 100644
--- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
+++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks
title: "@kbn/core-fatal-errors-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks']
---
import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser.devdocs.json b/api_docs/kbn_core_http_browser.devdocs.json
index 40375138fb419..54e7d408afd32 100644
--- a/api_docs/kbn_core_http_browser.devdocs.json
+++ b/api_docs/kbn_core_http_browser.devdocs.json
@@ -217,14 +217,14 @@
{
"parentPluginId": "@kbn/core-http-browser",
"id": "def-common.HttpFetchOptions.version",
- "type": "Uncategorized",
+ "type": "string",
"tags": [
"experimental"
],
"label": "version",
"description": [],
"signature": [
- "`${number}` | undefined"
+ "string | undefined"
],
"path": "packages/core/http/core-http-browser/src/types.ts",
"deprecated": false,
@@ -857,7 +857,7 @@
"section": "def-common.KibanaExecutionContext",
"text": "KibanaExecutionContext"
},
- " | undefined; readonly version?: `${number}` | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }"
+ " | undefined; readonly version?: string | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }"
],
"path": "packages/core/http/core-http-browser/src/types.ts",
"deprecated": false,
@@ -1234,7 +1234,7 @@
"section": "def-common.KibanaExecutionContext",
"text": "KibanaExecutionContext"
},
- " | undefined; readonly version?: `${number}` | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }"
+ " | undefined; readonly version?: string | undefined; readonly body?: BodyInit | null | undefined; readonly cache?: RequestCache | undefined; readonly credentials?: RequestCredentials | undefined; readonly integrity?: string | undefined; readonly keepalive?: boolean | undefined; readonly method?: string | undefined; readonly mode?: RequestMode | undefined; readonly redirect?: RequestRedirect | undefined; readonly referrer?: string | undefined; readonly referrerPolicy?: ReferrerPolicy | undefined; readonly signal?: AbortSignal | null | undefined; readonly window?: null | undefined; }"
],
"path": "packages/core/http/core-http-browser/src/types.ts",
"deprecated": false,
diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx
index b61fbe0fe93d7..b74fbf8ec1b93 100644
--- a/api_docs/kbn_core_http_browser.mdx
+++ b/api_docs/kbn_core_http_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser
title: "@kbn/core-http-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser']
---
import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx
index 63e3593fc1c29..0bc4d6205ab8a 100644
--- a/api_docs/kbn_core_http_browser_internal.mdx
+++ b/api_docs/kbn_core_http_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal
title: "@kbn/core-http-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal']
---
import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx
index 2f350200ea7c1..7e3f26557d9db 100644
--- a/api_docs/kbn_core_http_browser_mocks.mdx
+++ b/api_docs/kbn_core_http_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks
title: "@kbn/core-http-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks']
---
import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_common.devdocs.json b/api_docs/kbn_core_http_common.devdocs.json
index 4036271e20634..714824b78d573 100644
--- a/api_docs/kbn_core_http_common.devdocs.json
+++ b/api_docs/kbn_core_http_common.devdocs.json
@@ -89,15 +89,16 @@
"id": "def-common.ApiVersion",
"type": "Type",
"tags": [
+ "note",
"note",
"experimental"
],
"label": "ApiVersion",
"description": [
- "\nA Kibana HTTP API version"
+ "\nA Kibana HTTP API version\n"
],
"signature": [
- "`${number}`"
+ "string"
],
"path": "packages/core/http/core-http-common/src/versioning.ts",
"deprecated": false,
diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx
index 58dd218e69fff..01974c526d562 100644
--- a/api_docs/kbn_core_http_common.mdx
+++ b/api_docs/kbn_core_http_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common
title: "@kbn/core-http-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common']
---
import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json';
diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx
index a0cf07af662d8..1ef26910b0abc 100644
--- a/api_docs/kbn_core_http_context_server_mocks.mdx
+++ b/api_docs/kbn_core_http_context_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks
title: "@kbn/core-http-context-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-context-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks']
---
import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx
index 6d4f516ea42dd..b7a7d506ca531 100644
--- a/api_docs/kbn_core_http_request_handler_context_server.mdx
+++ b/api_docs/kbn_core_http_request_handler_context_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server
title: "@kbn/core-http-request-handler-context-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-request-handler-context-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server']
---
import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx
index 9672a2b5c124d..35b029295c88a 100644
--- a/api_docs/kbn_core_http_resources_server.mdx
+++ b/api_docs/kbn_core_http_resources_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server
title: "@kbn/core-http-resources-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server']
---
import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx
index eb002b25cc206..0064704c524f7 100644
--- a/api_docs/kbn_core_http_resources_server_internal.mdx
+++ b/api_docs/kbn_core_http_resources_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal
title: "@kbn/core-http-resources-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal']
---
import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx
index 6c820f1bccdaf..ac43fb7e82ffc 100644
--- a/api_docs/kbn_core_http_resources_server_mocks.mdx
+++ b/api_docs/kbn_core_http_resources_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks
title: "@kbn/core-http-resources-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-resources-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks']
---
import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx
index 062a767f5d37f..3acf14a21fdfb 100644
--- a/api_docs/kbn_core_http_router_server_internal.mdx
+++ b/api_docs/kbn_core_http_router_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal
title: "@kbn/core-http-router-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal']
---
import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx
index d13ed9aac79c4..8cb95d181376b 100644
--- a/api_docs/kbn_core_http_router_server_mocks.mdx
+++ b/api_docs/kbn_core_http_router_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks
title: "@kbn/core-http-router-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-router-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks']
---
import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json
index 81a98233b6228..f9faf5a74ef10 100644
--- a/api_docs/kbn_core_http_server.devdocs.json
+++ b/api_docs/kbn_core_http_server.devdocs.json
@@ -129,7 +129,7 @@
{
"parentPluginId": "@kbn/core-http-server",
"id": "def-common.AddVersionOpts.version",
- "type": "Uncategorized",
+ "type": "string",
"tags": [
"experimental"
],
@@ -137,9 +137,6 @@
"description": [
"\nVersion to assign to this route"
],
- "signature": [
- "`${number}`"
- ],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
"trackAdoption": false
@@ -7367,7 +7364,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -7432,7 +7429,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -7497,7 +7494,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -7562,7 +7559,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -7627,7 +7624,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -7757,15 +7754,16 @@
"id": "def-common.ApiVersion",
"type": "Type",
"tags": [
+ "note",
"note",
"experimental"
],
"label": "ApiVersion",
"description": [
- "\nA Kibana HTTP API version"
+ "\nA Kibana HTTP API version\n"
],
"signature": [
- "`${number}`"
+ "string"
],
"path": "packages/core/http/core-http-common/src/versioning.ts",
"deprecated": false,
@@ -10110,7 +10108,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
@@ -10180,7 +10178,7 @@
"section": "def-common.RouteConfigOptions",
"text": "RouteConfigOptions"
},
- ", \"access\"> | undefined; access: \"internal\" | \"public\" | undefined; }"
+ ", \"access\"> | undefined; access: \"internal\" | \"public\"; }"
],
"path": "packages/core/http/core-http-server/src/versioning/types.ts",
"deprecated": false,
diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx
index 890c35694b0d7..b9282cf2c5cc4 100644
--- a/api_docs/kbn_core_http_server.mdx
+++ b/api_docs/kbn_core_http_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server
title: "@kbn/core-http-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server']
---
import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx
index d1030a5f2c138..6b9719e5fe08e 100644
--- a/api_docs/kbn_core_http_server_internal.mdx
+++ b/api_docs/kbn_core_http_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal
title: "@kbn/core-http-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal']
---
import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx
index 2a52782acbf1e..c9abe3268ff3e 100644
--- a/api_docs/kbn_core_http_server_mocks.mdx
+++ b/api_docs/kbn_core_http_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks
title: "@kbn/core-http-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-http-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks']
---
import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx
index 50b88abdae99d..bf69c5ce0ced0 100644
--- a/api_docs/kbn_core_i18n_browser.mdx
+++ b/api_docs/kbn_core_i18n_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser
title: "@kbn/core-i18n-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser']
---
import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx
index f80cba352800e..ced2f59a04bc6 100644
--- a/api_docs/kbn_core_i18n_browser_mocks.mdx
+++ b/api_docs/kbn_core_i18n_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks
title: "@kbn/core-i18n-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks']
---
import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx
index db84d0667f4c4..3fb1ad0fbd480 100644
--- a/api_docs/kbn_core_i18n_server.mdx
+++ b/api_docs/kbn_core_i18n_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server
title: "@kbn/core-i18n-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server']
---
import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx
index 120f064b9b096..b15078d9792e1 100644
--- a/api_docs/kbn_core_i18n_server_internal.mdx
+++ b/api_docs/kbn_core_i18n_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal
title: "@kbn/core-i18n-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal']
---
import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx
index a4ae201ea2bc8..25a5f3a2ca0a2 100644
--- a/api_docs/kbn_core_i18n_server_mocks.mdx
+++ b/api_docs/kbn_core_i18n_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks
title: "@kbn/core-i18n-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-i18n-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks']
---
import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
index e594807132449..fc7ff72335b58 100644
--- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
+++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks
title: "@kbn/core-injected-metadata-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks']
---
import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx
index 031bf7ad90abd..1ee295744c671 100644
--- a/api_docs/kbn_core_integrations_browser_internal.mdx
+++ b/api_docs/kbn_core_integrations_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal
title: "@kbn/core-integrations-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal']
---
import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx
index 4044163e6f9ba..6cfe8aed78427 100644
--- a/api_docs/kbn_core_integrations_browser_mocks.mdx
+++ b/api_docs/kbn_core_integrations_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks
title: "@kbn/core-integrations-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-integrations-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks']
---
import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx
index ac0dc136ae5df..1921f2d7981df 100644
--- a/api_docs/kbn_core_lifecycle_browser.mdx
+++ b/api_docs/kbn_core_lifecycle_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser
title: "@kbn/core-lifecycle-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser']
---
import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
index c14c95b1a11aa..99b286b50fd86 100644
--- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks
title: "@kbn/core-lifecycle-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks']
---
import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx
index fd835a5efbbb7..2899d24f85f98 100644
--- a/api_docs/kbn_core_lifecycle_server.mdx
+++ b/api_docs/kbn_core_lifecycle_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server
title: "@kbn/core-lifecycle-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server']
---
import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json';
diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx
index e7df35a442565..d45cec86f6c29 100644
--- a/api_docs/kbn_core_lifecycle_server_mocks.mdx
+++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks
title: "@kbn/core-lifecycle-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-lifecycle-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks']
---
import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx
index 0b4933b88cb1c..1ce36deed650a 100644
--- a/api_docs/kbn_core_logging_browser_mocks.mdx
+++ b/api_docs/kbn_core_logging_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks
title: "@kbn/core-logging-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks']
---
import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx
index d5f56c02f8126..0440a99935453 100644
--- a/api_docs/kbn_core_logging_common_internal.mdx
+++ b/api_docs/kbn_core_logging_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal
title: "@kbn/core-logging-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-common-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal']
---
import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx
index 711bab4498b24..e61272d2b8f3c 100644
--- a/api_docs/kbn_core_logging_server.mdx
+++ b/api_docs/kbn_core_logging_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server
title: "@kbn/core-logging-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server']
---
import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx
index 36809ddd544a8..d441fba7df7e0 100644
--- a/api_docs/kbn_core_logging_server_internal.mdx
+++ b/api_docs/kbn_core_logging_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal
title: "@kbn/core-logging-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal']
---
import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx
index 8eae738c86504..3d9fb1ec20a50 100644
--- a/api_docs/kbn_core_logging_server_mocks.mdx
+++ b/api_docs/kbn_core_logging_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks
title: "@kbn/core-logging-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-logging-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks']
---
import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
index 54b61363fc4ab..b1d5addb6e328 100644
--- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal
title: "@kbn/core-metrics-collectors-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal']
---
import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
index 0b65323ba3edb..6a39200864922 100644
--- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks
title: "@kbn/core-metrics-collectors-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks']
---
import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx
index 21ed31296ec2b..9fc468eed40ba 100644
--- a/api_docs/kbn_core_metrics_server.mdx
+++ b/api_docs/kbn_core_metrics_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server
title: "@kbn/core-metrics-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server']
---
import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx
index ca34229223c4e..21fb4380378b4 100644
--- a/api_docs/kbn_core_metrics_server_internal.mdx
+++ b/api_docs/kbn_core_metrics_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal
title: "@kbn/core-metrics-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal']
---
import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx
index ca6ca6305c185..c8492f5909518 100644
--- a/api_docs/kbn_core_metrics_server_mocks.mdx
+++ b/api_docs/kbn_core_metrics_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks
title: "@kbn/core-metrics-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-metrics-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks']
---
import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx
index 1e304fadd8998..22cb2ce1146b2 100644
--- a/api_docs/kbn_core_mount_utils_browser.mdx
+++ b/api_docs/kbn_core_mount_utils_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser
title: "@kbn/core-mount-utils-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-mount-utils-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser']
---
import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json';
diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx
index 681c6cd862216..3a1fd042efd8b 100644
--- a/api_docs/kbn_core_node_server.mdx
+++ b/api_docs/kbn_core_node_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server
title: "@kbn/core-node-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server']
---
import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx
index 28a130c04133d..86ab31ae15db5 100644
--- a/api_docs/kbn_core_node_server_internal.mdx
+++ b/api_docs/kbn_core_node_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal
title: "@kbn/core-node-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal']
---
import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx
index 3527b8afe21c9..ebf5d96d68d32 100644
--- a/api_docs/kbn_core_node_server_mocks.mdx
+++ b/api_docs/kbn_core_node_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks
title: "@kbn/core-node-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-node-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks']
---
import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx
index 1d56b450f1115..ca32afc17128c 100644
--- a/api_docs/kbn_core_notifications_browser.mdx
+++ b/api_docs/kbn_core_notifications_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser
title: "@kbn/core-notifications-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser']
---
import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx
index 2307c7c2af7e5..c1b9cd2cb048d 100644
--- a/api_docs/kbn_core_notifications_browser_internal.mdx
+++ b/api_docs/kbn_core_notifications_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal
title: "@kbn/core-notifications-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal']
---
import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx
index ee2eb60e344d4..c19f99c51a76b 100644
--- a/api_docs/kbn_core_notifications_browser_mocks.mdx
+++ b/api_docs/kbn_core_notifications_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks
title: "@kbn/core-notifications-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-notifications-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks']
---
import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx
index eb67faa145475..85299008590c8 100644
--- a/api_docs/kbn_core_overlays_browser.mdx
+++ b/api_docs/kbn_core_overlays_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser
title: "@kbn/core-overlays-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser']
---
import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx
index 8709e2f8ebc04..1df34a6718024 100644
--- a/api_docs/kbn_core_overlays_browser_internal.mdx
+++ b/api_docs/kbn_core_overlays_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal
title: "@kbn/core-overlays-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal']
---
import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx
index 1b2c4308d1f05..7f7318e1e7bbe 100644
--- a/api_docs/kbn_core_overlays_browser_mocks.mdx
+++ b/api_docs/kbn_core_overlays_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks
title: "@kbn/core-overlays-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-overlays-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks']
---
import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx
index 69c3910c84884..3787319cb72ac 100644
--- a/api_docs/kbn_core_plugins_browser.mdx
+++ b/api_docs/kbn_core_plugins_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser
title: "@kbn/core-plugins-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser']
---
import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx
index 2e0edc251d89e..d0cc0e312d275 100644
--- a/api_docs/kbn_core_plugins_browser_mocks.mdx
+++ b/api_docs/kbn_core_plugins_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks
title: "@kbn/core-plugins-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks']
---
import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx
index d6ec42e4f2362..4accc1effb67b 100644
--- a/api_docs/kbn_core_plugins_server.mdx
+++ b/api_docs/kbn_core_plugins_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server
title: "@kbn/core-plugins-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server']
---
import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json';
diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx
index 0a781b5e38860..dc7ada51253ea 100644
--- a/api_docs/kbn_core_plugins_server_mocks.mdx
+++ b/api_docs/kbn_core_plugins_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks
title: "@kbn/core-plugins-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-plugins-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks']
---
import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx
index 007f570dde163..3a0e3a2d07668 100644
--- a/api_docs/kbn_core_preboot_server.mdx
+++ b/api_docs/kbn_core_preboot_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server
title: "@kbn/core-preboot-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server']
---
import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json';
diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx
index ffb5bc089f21b..f07d5958f5ee7 100644
--- a/api_docs/kbn_core_preboot_server_mocks.mdx
+++ b/api_docs/kbn_core_preboot_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks
title: "@kbn/core-preboot-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-preboot-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks']
---
import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx
index eb0857c553cb4..33fd78a2fd135 100644
--- a/api_docs/kbn_core_rendering_browser_mocks.mdx
+++ b/api_docs/kbn_core_rendering_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks
title: "@kbn/core-rendering-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks']
---
import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx
index 6691c36f5c4dc..6d6fa4111b0d4 100644
--- a/api_docs/kbn_core_rendering_server_internal.mdx
+++ b/api_docs/kbn_core_rendering_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal
title: "@kbn/core-rendering-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal']
---
import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx
index 1d57aca3b5a69..b2fa6c7df66e6 100644
--- a/api_docs/kbn_core_rendering_server_mocks.mdx
+++ b/api_docs/kbn_core_rendering_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks
title: "@kbn/core-rendering-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-rendering-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks']
---
import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx
index b100fc0bca2af..e51f7a895dd7d 100644
--- a/api_docs/kbn_core_root_server_internal.mdx
+++ b/api_docs/kbn_core_root_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal
title: "@kbn/core-root-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-root-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal']
---
import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_browser.devdocs.json b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json
index 57d23f14769f6..c6ab4101d6c7a 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json
@@ -1868,7 +1868,7 @@
},
{
"plugin": "dashboard",
- "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx"
+ "path": "src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx"
},
{
"plugin": "infra",
@@ -3861,11 +3861,11 @@
},
{
"plugin": "dashboard",
- "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx"
+ "path": "src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx"
},
{
"plugin": "dashboard",
- "path": "src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx"
+ "path": "src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx"
},
{
"plugin": "lens",
diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx
index bfde709e597ad..c933f2d88e056 100644
--- a/api_docs/kbn_core_saved_objects_api_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_api_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser
title: "@kbn/core-saved-objects-api-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser']
---
import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx
index 1871810e46bd2..bc6057ff8197f 100644
--- a/api_docs/kbn_core_saved_objects_api_server.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server
title: "@kbn/core-saved-objects-api-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server']
---
import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx
index 0ef12adf69adc..2a1c53c28631e 100644
--- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal
title: "@kbn/core-saved-objects-api-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal']
---
import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
index abf9737b07d4c..adef2a71d375a 100644
--- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks
title: "@kbn/core-saved-objects-api-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks']
---
import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
index 4a73305545205..20ccc6c58b0e3 100644
--- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal
title: "@kbn/core-saved-objects-base-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal']
---
import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
index 6314650e0a652..6faaed1ffe963 100644
--- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks
title: "@kbn/core-saved-objects-base-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks']
---
import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx
index b30dc81815855..79d10e9f12bb2 100644
--- a/api_docs/kbn_core_saved_objects_browser.mdx
+++ b/api_docs/kbn_core_saved_objects_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser
title: "@kbn/core-saved-objects-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser']
---
import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx
index 20fe5fbffda47..2c587119409cf 100644
--- a/api_docs/kbn_core_saved_objects_browser_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal
title: "@kbn/core-saved-objects-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal']
---
import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
index 806930567b93d..97d7ea86b6137 100644
--- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks
title: "@kbn/core-saved-objects-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks']
---
import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_common.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json
index 8ca0ff4018b63..7b868ee8aa205 100644
--- a/api_docs/kbn_core_saved_objects_common.devdocs.json
+++ b/api_docs/kbn_core_saved_objects_common.devdocs.json
@@ -1858,12 +1858,12 @@
"path": "src/plugins/advanced_settings/public/management_app/lib/to_editable_config.ts"
},
{
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts"
+ "plugin": "visualizations",
+ "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts"
},
{
- "plugin": "triggersActionsUi",
- "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts"
+ "plugin": "visualizations",
+ "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts"
},
{
"plugin": "triggersActionsUi",
@@ -1874,12 +1874,12 @@
"path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts"
},
{
- "plugin": "visualizations",
- "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts"
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts"
},
{
- "plugin": "visualizations",
- "path": "src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts"
+ "plugin": "triggersActionsUi",
+ "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.ts"
},
{
"plugin": "@kbn/core",
diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx
index 9f27f2eb85c13..3783c6ead532a 100644
--- a/api_docs/kbn_core_saved_objects_common.mdx
+++ b/api_docs/kbn_core_saved_objects_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common
title: "@kbn/core-saved-objects-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common']
---
import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
index e7b08186d7d8c..a75d12fdd58ca 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal
title: "@kbn/core-saved-objects-import-export-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal']
---
import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
index 960702d30feaf..d8b3a4d217c3a 100644
--- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks
title: "@kbn/core-saved-objects-import-export-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks']
---
import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
index 68446273bbd70..9eb556d39981e 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal
title: "@kbn/core-saved-objects-migration-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal']
---
import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
index ea58ebda9a987..56b4cfe2ecd4c 100644
--- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks
title: "@kbn/core-saved-objects-migration-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks']
---
import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx
index 4b3cf687ea4ed..a48fa96e1fbb5 100644
--- a/api_docs/kbn_core_saved_objects_server.mdx
+++ b/api_docs/kbn_core_saved_objects_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server
title: "@kbn/core-saved-objects-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server']
---
import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx
index 5fbeb40dff46f..133a501912d9c 100644
--- a/api_docs/kbn_core_saved_objects_server_internal.mdx
+++ b/api_docs/kbn_core_saved_objects_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal
title: "@kbn/core-saved-objects-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal']
---
import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx
index fe7ae0ee8525a..e8baf46b04b57 100644
--- a/api_docs/kbn_core_saved_objects_server_mocks.mdx
+++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks
title: "@kbn/core-saved-objects-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks']
---
import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx
index 23cd2215ae5b5..7be39b3ddfd27 100644
--- a/api_docs/kbn_core_saved_objects_utils_server.mdx
+++ b/api_docs/kbn_core_saved_objects_utils_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server
title: "@kbn/core-saved-objects-utils-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-saved-objects-utils-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server']
---
import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json';
diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx
index 4834f841720cd..b43a1574290d7 100644
--- a/api_docs/kbn_core_status_common.mdx
+++ b/api_docs/kbn_core_status_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common
title: "@kbn/core-status-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common']
---
import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json';
diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx
index a3e9d96755877..ff765eefc4403 100644
--- a/api_docs/kbn_core_status_common_internal.mdx
+++ b/api_docs/kbn_core_status_common_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal
title: "@kbn/core-status-common-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-common-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal']
---
import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json';
diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx
index fedf7994d54b6..71b5c9ad74a7d 100644
--- a/api_docs/kbn_core_status_server.mdx
+++ b/api_docs/kbn_core_status_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server
title: "@kbn/core-status-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server']
---
import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx
index 8331cb7e9eac7..6bf95189f71e7 100644
--- a/api_docs/kbn_core_status_server_internal.mdx
+++ b/api_docs/kbn_core_status_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal
title: "@kbn/core-status-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal']
---
import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx
index 61ef1120bd249..1ba66cbcba441 100644
--- a/api_docs/kbn_core_status_server_mocks.mdx
+++ b/api_docs/kbn_core_status_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks
title: "@kbn/core-status-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-status-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks']
---
import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
index af289c46b9440..1265fd8c4c41c 100644
--- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
+++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters
title: "@kbn/core-test-helpers-deprecations-getters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters']
---
import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
index f4c757364a8eb..e42ae9f1452a9 100644
--- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
+++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser
title: "@kbn/core-test-helpers-http-setup-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser']
---
import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx
index 9e23381eb4ae6..d818c868e946a 100644
--- a/api_docs/kbn_core_test_helpers_kbn_server.mdx
+++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server
title: "@kbn/core-test-helpers-kbn-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-kbn-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server']
---
import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
index 4301a40fbd122..4e19bbc6dda04 100644
--- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
+++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer
title: "@kbn/core-test-helpers-so-type-serializer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer']
---
import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json';
diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx
index 2f2a9b531b879..45a40df59f54c 100644
--- a/api_docs/kbn_core_test_helpers_test_utils.mdx
+++ b/api_docs/kbn_core_test_helpers_test_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils
title: "@kbn/core-test-helpers-test-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-test-helpers-test-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils']
---
import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx
index 1454cd0c1440e..c917ce6f4508a 100644
--- a/api_docs/kbn_core_theme_browser.mdx
+++ b/api_docs/kbn_core_theme_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser
title: "@kbn/core-theme-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser']
---
import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx
index 3ff346fbc5af1..bf7ca3a681be8 100644
--- a/api_docs/kbn_core_theme_browser_internal.mdx
+++ b/api_docs/kbn_core_theme_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal
title: "@kbn/core-theme-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal']
---
import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx
index 3b4bb272cccd7..9f99419f85f7e 100644
--- a/api_docs/kbn_core_theme_browser_mocks.mdx
+++ b/api_docs/kbn_core_theme_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks
title: "@kbn/core-theme-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-theme-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks']
---
import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx
index 1643d166e19db..676be86e74cdd 100644
--- a/api_docs/kbn_core_ui_settings_browser.mdx
+++ b/api_docs/kbn_core_ui_settings_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser
title: "@kbn/core-ui-settings-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser']
---
import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx
index dc0c151699441..812718a2f7545 100644
--- a/api_docs/kbn_core_ui_settings_browser_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal
title: "@kbn/core-ui-settings-browser-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal']
---
import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
index 8ad400090cd58..0647caa343e58 100644
--- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks
title: "@kbn/core-ui-settings-browser-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-browser-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks']
---
import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_common.devdocs.json b/api_docs/kbn_core_ui_settings_common.devdocs.json
index 7fd88652aec3a..6f31370eab373 100644
--- a/api_docs/kbn_core_ui_settings_common.devdocs.json
+++ b/api_docs/kbn_core_ui_settings_common.devdocs.json
@@ -431,6 +431,21 @@
],
"enums": [],
"misc": [
+ {
+ "parentPluginId": "@kbn/core-ui-settings-common",
+ "id": "def-common.TIMEZONE_OPTIONS",
+ "type": "Array",
+ "tags": [],
+ "label": "TIMEZONE_OPTIONS",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "packages/core/ui-settings/core-ui-settings-common/src/timezones.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/core-ui-settings-common",
"id": "def-common.UiSettingsScope",
diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx
index 0d71c3ef8f737..eeb3a779d35b5 100644
--- a/api_docs/kbn_core_ui_settings_common.mdx
+++ b/api_docs/kbn_core_ui_settings_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common
title: "@kbn/core-ui-settings-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common']
---
import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 24 | 0 | 3 | 0 |
+| 25 | 0 | 4 | 0 |
## Common
diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx
index 87073f274e0d9..f0d34230776c8 100644
--- a/api_docs/kbn_core_ui_settings_server.mdx
+++ b/api_docs/kbn_core_ui_settings_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server
title: "@kbn/core-ui-settings-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server']
---
import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx
index 8093c1b0cd8bc..32b32d0e7fd94 100644
--- a/api_docs/kbn_core_ui_settings_server_internal.mdx
+++ b/api_docs/kbn_core_ui_settings_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal
title: "@kbn/core-ui-settings-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal']
---
import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx
index eb7ecbecb8779..1119ea24ebfb0 100644
--- a/api_docs/kbn_core_ui_settings_server_mocks.mdx
+++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks
title: "@kbn/core-ui-settings-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-ui-settings-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks']
---
import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx
index 36f9c50b23a86..d6e8a9d0818f9 100644
--- a/api_docs/kbn_core_usage_data_server.mdx
+++ b/api_docs/kbn_core_usage_data_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server
title: "@kbn/core-usage-data-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server']
---
import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx
index 4b2f8d1f6d074..9d0c2a074e8c1 100644
--- a/api_docs/kbn_core_usage_data_server_internal.mdx
+++ b/api_docs/kbn_core_usage_data_server_internal.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal
title: "@kbn/core-usage-data-server-internal"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-internal plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal']
---
import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json';
diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx
index d1629dc508945..39b7f3a676bf2 100644
--- a/api_docs/kbn_core_usage_data_server_mocks.mdx
+++ b/api_docs/kbn_core_usage_data_server_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks
title: "@kbn/core-usage-data-server-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/core-usage-data-server-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks']
---
import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json';
diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx
index 7856f4d95b167..cebe27a86e77a 100644
--- a/api_docs/kbn_crypto.mdx
+++ b/api_docs/kbn_crypto.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto
title: "@kbn/crypto"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto']
---
import kbnCryptoObj from './kbn_crypto.devdocs.json';
diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx
index 439938a221048..91bb769b9a842 100644
--- a/api_docs/kbn_crypto_browser.mdx
+++ b/api_docs/kbn_crypto_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser
title: "@kbn/crypto-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/crypto-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser']
---
import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json';
diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx
index 1782a1aadf290..936c0194cf100 100644
--- a/api_docs/kbn_cypress_config.mdx
+++ b/api_docs/kbn_cypress_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config
title: "@kbn/cypress-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/cypress-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config']
---
import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json';
diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx
index 619bd870232b6..f4d70bb7beaf9 100644
--- a/api_docs/kbn_datemath.mdx
+++ b/api_docs/kbn_datemath.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath
title: "@kbn/datemath"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/datemath plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath']
---
import kbnDatemathObj from './kbn_datemath.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx
index 9321f17457136..bf21852659826 100644
--- a/api_docs/kbn_dev_cli_errors.mdx
+++ b/api_docs/kbn_dev_cli_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors
title: "@kbn/dev-cli-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-errors plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors']
---
import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json';
diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx
index 11f5e3ccfba24..af8aa3f690f90 100644
--- a/api_docs/kbn_dev_cli_runner.mdx
+++ b/api_docs/kbn_dev_cli_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner
title: "@kbn/dev-cli-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-cli-runner plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner']
---
import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx
index daec1a3a3ccf8..de10bacc58724 100644
--- a/api_docs/kbn_dev_proc_runner.mdx
+++ b/api_docs/kbn_dev_proc_runner.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner
title: "@kbn/dev-proc-runner"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-proc-runner plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner']
---
import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json';
diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx
index 7db1aa2928938..7e7d3a57e59ad 100644
--- a/api_docs/kbn_dev_utils.mdx
+++ b/api_docs/kbn_dev_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils
title: "@kbn/dev-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dev-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils']
---
import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json';
diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx
index c528cdf93d410..f2bab21b1bf69 100644
--- a/api_docs/kbn_doc_links.mdx
+++ b/api_docs/kbn_doc_links.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links
title: "@kbn/doc-links"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/doc-links plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links']
---
import kbnDocLinksObj from './kbn_doc_links.devdocs.json';
diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx
index 56f56787b0444..136cbbc27c6dd 100644
--- a/api_docs/kbn_docs_utils.mdx
+++ b/api_docs/kbn_docs_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils
title: "@kbn/docs-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/docs-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils']
---
import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json';
diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx
index 406418493872c..43c5a487fa41a 100644
--- a/api_docs/kbn_dom_drag_drop.mdx
+++ b/api_docs/kbn_dom_drag_drop.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop
title: "@kbn/dom-drag-drop"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/dom-drag-drop plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop']
---
import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json';
diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx
index 9c3bd3efec73a..8ee7f09600b9c 100644
--- a/api_docs/kbn_ebt_tools.mdx
+++ b/api_docs/kbn_ebt_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools
title: "@kbn/ebt-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ebt-tools plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools']
---
import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json';
diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx
index 46b71defe7da4..dabd67ea639b2 100644
--- a/api_docs/kbn_ecs.mdx
+++ b/api_docs/kbn_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs
title: "@kbn/ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs']
---
import kbnEcsObj from './kbn_ecs.devdocs.json';
diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx
index ddbaa0db48b8b..3f8b2071edb6f 100644
--- a/api_docs/kbn_ecs_data_quality_dashboard.mdx
+++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard
title: "@kbn/ecs-data-quality-dashboard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ecs-data-quality-dashboard plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard']
---
import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json';
diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx
index 1a65998f03b06..d0211ec7b739d 100644
--- a/api_docs/kbn_es.mdx
+++ b/api_docs/kbn_es.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es
title: "@kbn/es"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es']
---
import kbnEsObj from './kbn_es.devdocs.json';
diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx
index 2b68af1f65c87..c47aa16f5d9aa 100644
--- a/api_docs/kbn_es_archiver.mdx
+++ b/api_docs/kbn_es_archiver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver
title: "@kbn/es-archiver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-archiver plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver']
---
import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json';
diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx
index 1ae06e0a8702e..b23404d6e673c 100644
--- a/api_docs/kbn_es_errors.mdx
+++ b/api_docs/kbn_es_errors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors
title: "@kbn/es-errors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-errors plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors']
---
import kbnEsErrorsObj from './kbn_es_errors.devdocs.json';
diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx
index 8cc57085ed64c..b3484d0acfb86 100644
--- a/api_docs/kbn_es_query.mdx
+++ b/api_docs/kbn_es_query.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query
title: "@kbn/es-query"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-query plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query']
---
import kbnEsQueryObj from './kbn_es_query.devdocs.json';
diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx
index 5e23146105fca..ae320937273a3 100644
--- a/api_docs/kbn_es_types.mdx
+++ b/api_docs/kbn_es_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types
title: "@kbn/es-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/es-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types']
---
import kbnEsTypesObj from './kbn_es_types.devdocs.json';
diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx
index 82252b028a16b..c0cd7f247745c 100644
--- a/api_docs/kbn_eslint_plugin_imports.mdx
+++ b/api_docs/kbn_eslint_plugin_imports.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports
title: "@kbn/eslint-plugin-imports"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/eslint-plugin-imports plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports']
---
import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json';
diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx
index 87f8db790070c..bd67f9c70c6ee 100644
--- a/api_docs/kbn_expandable_flyout.mdx
+++ b/api_docs/kbn_expandable_flyout.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout
title: "@kbn/expandable-flyout"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/expandable-flyout plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout']
---
import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json';
diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx
index 138ccf7a0fac7..d24f4d36aacaa 100644
--- a/api_docs/kbn_field_types.mdx
+++ b/api_docs/kbn_field_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types
title: "@kbn/field-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/field-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types']
---
import kbnFieldTypesObj from './kbn_field_types.devdocs.json';
diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx
index 8247038f5a0cb..0ff18adb57009 100644
--- a/api_docs/kbn_find_used_node_modules.mdx
+++ b/api_docs/kbn_find_used_node_modules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules
title: "@kbn/find-used-node-modules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/find-used-node-modules plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules']
---
import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json';
diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx
index c4cf3e930396b..b5cb393ecee58 100644
--- a/api_docs/kbn_ftr_common_functional_services.mdx
+++ b/api_docs/kbn_ftr_common_functional_services.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services
title: "@kbn/ftr-common-functional-services"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ftr-common-functional-services plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services']
---
import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json';
diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx
index 3a300819cd31c..af71fb24bab46 100644
--- a/api_docs/kbn_generate.mdx
+++ b/api_docs/kbn_generate.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate
title: "@kbn/generate"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate']
---
import kbnGenerateObj from './kbn_generate.devdocs.json';
diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx
index 7a4b72c3abe7d..0974d13e014d5 100644
--- a/api_docs/kbn_generate_csv.mdx
+++ b/api_docs/kbn_generate_csv.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv
title: "@kbn/generate-csv"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv']
---
import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json';
diff --git a/api_docs/kbn_generate_csv_types.mdx b/api_docs/kbn_generate_csv_types.mdx
index 3c0100b1d2e98..b34fdeed86825 100644
--- a/api_docs/kbn_generate_csv_types.mdx
+++ b/api_docs/kbn_generate_csv_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv-types
title: "@kbn/generate-csv-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/generate-csv-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv-types']
---
import kbnGenerateCsvTypesObj from './kbn_generate_csv_types.devdocs.json';
diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx
index 36207d1027ab2..42afc5141731d 100644
--- a/api_docs/kbn_guided_onboarding.mdx
+++ b/api_docs/kbn_guided_onboarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding
title: "@kbn/guided-onboarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/guided-onboarding plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding']
---
import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json';
diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx
index 94cecd24ec1d7..c40b6ea1d58ce 100644
--- a/api_docs/kbn_handlebars.mdx
+++ b/api_docs/kbn_handlebars.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars
title: "@kbn/handlebars"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/handlebars plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars']
---
import kbnHandlebarsObj from './kbn_handlebars.devdocs.json';
diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx
index 7930c2f4370ff..bdf2a88a68487 100644
--- a/api_docs/kbn_hapi_mocks.mdx
+++ b/api_docs/kbn_hapi_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks
title: "@kbn/hapi-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/hapi-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks']
---
import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json';
diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx
index b28fe0b8b2455..cdc18073f6f93 100644
--- a/api_docs/kbn_health_gateway_server.mdx
+++ b/api_docs/kbn_health_gateway_server.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server
title: "@kbn/health-gateway-server"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/health-gateway-server plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server']
---
import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx
index 0deb05875c562..fec966b810f85 100644
--- a/api_docs/kbn_home_sample_data_card.mdx
+++ b/api_docs/kbn_home_sample_data_card.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card
title: "@kbn/home-sample-data-card"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-card plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card']
---
import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json';
diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx
index 581b681cecef1..203bb222166b2 100644
--- a/api_docs/kbn_home_sample_data_tab.mdx
+++ b/api_docs/kbn_home_sample_data_tab.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab
title: "@kbn/home-sample-data-tab"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/home-sample-data-tab plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab']
---
import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json';
diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx
index 8e4dc15b80ffe..55b34ed2a0bb2 100644
--- a/api_docs/kbn_i18n.mdx
+++ b/api_docs/kbn_i18n.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n
title: "@kbn/i18n"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n']
---
import kbnI18nObj from './kbn_i18n.devdocs.json';
diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx
index abb00885bb624..e32b616b7d68e 100644
--- a/api_docs/kbn_i18n_react.mdx
+++ b/api_docs/kbn_i18n_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react
title: "@kbn/i18n-react"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/i18n-react plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react']
---
import kbnI18nReactObj from './kbn_i18n_react.devdocs.json';
diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx
index b90b78d264e6d..eccc8f7a032b2 100644
--- a/api_docs/kbn_import_resolver.mdx
+++ b/api_docs/kbn_import_resolver.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver
title: "@kbn/import-resolver"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/import-resolver plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver']
---
import kbnImportResolverObj from './kbn_import_resolver.devdocs.json';
diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx
index 8ae6f81f7e3f6..21b0f06c85c3c 100644
--- a/api_docs/kbn_interpreter.mdx
+++ b/api_docs/kbn_interpreter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter
title: "@kbn/interpreter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/interpreter plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter']
---
import kbnInterpreterObj from './kbn_interpreter.devdocs.json';
diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx
index 88894bd77b540..9b1ab460a48e2 100644
--- a/api_docs/kbn_io_ts_utils.mdx
+++ b/api_docs/kbn_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils
title: "@kbn/io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/io-ts-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils']
---
import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx
index 36cbea4bd6af1..a24ea34372a88 100644
--- a/api_docs/kbn_jest_serializers.mdx
+++ b/api_docs/kbn_jest_serializers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers
title: "@kbn/jest-serializers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/jest-serializers plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers']
---
import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json';
diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx
index 7aff1ed39c950..b12d5db04de4e 100644
--- a/api_docs/kbn_journeys.mdx
+++ b/api_docs/kbn_journeys.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys
title: "@kbn/journeys"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/journeys plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys']
---
import kbnJourneysObj from './kbn_journeys.devdocs.json';
diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx
index 6575e46155cea..cf09efc67ac87 100644
--- a/api_docs/kbn_json_ast.mdx
+++ b/api_docs/kbn_json_ast.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast
title: "@kbn/json-ast"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/json-ast plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast']
---
import kbnJsonAstObj from './kbn_json_ast.devdocs.json';
diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx
index 734388f62be94..7a779ddd3c4bd 100644
--- a/api_docs/kbn_kibana_manifest_schema.mdx
+++ b/api_docs/kbn_kibana_manifest_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema
title: "@kbn/kibana-manifest-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/kibana-manifest-schema plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema']
---
import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json';
diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx
index b81d2dcb304a0..16fbaa5a83b23 100644
--- a/api_docs/kbn_language_documentation_popover.mdx
+++ b/api_docs/kbn_language_documentation_popover.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover
title: "@kbn/language-documentation-popover"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/language-documentation-popover plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover']
---
import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json';
diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx
index 92ed20c005504..7b06571307450 100644
--- a/api_docs/kbn_logging.mdx
+++ b/api_docs/kbn_logging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging
title: "@kbn/logging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging']
---
import kbnLoggingObj from './kbn_logging.devdocs.json';
diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx
index ebeb0577b6828..518342efda00a 100644
--- a/api_docs/kbn_logging_mocks.mdx
+++ b/api_docs/kbn_logging_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks
title: "@kbn/logging-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/logging-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks']
---
import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json';
diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx
index 3e17c28e874d0..98ff5384db391 100644
--- a/api_docs/kbn_managed_vscode_config.mdx
+++ b/api_docs/kbn_managed_vscode_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config
title: "@kbn/managed-vscode-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/managed-vscode-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config']
---
import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json';
diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx
index 9226d054c7114..4ae224c44b852 100644
--- a/api_docs/kbn_mapbox_gl.mdx
+++ b/api_docs/kbn_mapbox_gl.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl
title: "@kbn/mapbox-gl"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/mapbox-gl plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl']
---
import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json';
diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx
index dcdcbe657673f..d5a6b147d2164 100644
--- a/api_docs/kbn_ml_agg_utils.mdx
+++ b/api_docs/kbn_ml_agg_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils
title: "@kbn/ml-agg-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-agg-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils']
---
import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx
index 012cd0a9bab82..ad1a76cda77fd 100644
--- a/api_docs/kbn_ml_date_picker.mdx
+++ b/api_docs/kbn_ml_date_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker
title: "@kbn/ml-date-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-date-picker plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker']
---
import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json';
diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx
index 5190ef4750c04..53f52958f230d 100644
--- a/api_docs/kbn_ml_is_defined.mdx
+++ b/api_docs/kbn_ml_is_defined.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined
title: "@kbn/ml-is-defined"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-defined plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined']
---
import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json';
diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx
index c11162afeb895..df2d44a227076 100644
--- a/api_docs/kbn_ml_is_populated_object.mdx
+++ b/api_docs/kbn_ml_is_populated_object.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object
title: "@kbn/ml-is-populated-object"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-is-populated-object plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object']
---
import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json';
diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx
index 43e0cd03b1ddb..74d5d50e2ffd7 100644
--- a/api_docs/kbn_ml_local_storage.mdx
+++ b/api_docs/kbn_ml_local_storage.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage
title: "@kbn/ml-local-storage"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-local-storage plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage']
---
import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json';
diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx
index 02db84ccb9b22..db930f178714d 100644
--- a/api_docs/kbn_ml_nested_property.mdx
+++ b/api_docs/kbn_ml_nested_property.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property
title: "@kbn/ml-nested-property"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-nested-property plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property']
---
import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json';
diff --git a/api_docs/kbn_ml_number_utils.mdx b/api_docs/kbn_ml_number_utils.mdx
index 432bae715b716..ae2c03e78f9ff 100644
--- a/api_docs/kbn_ml_number_utils.mdx
+++ b/api_docs/kbn_ml_number_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils
title: "@kbn/ml-number-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-number-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-number-utils']
---
import kbnMlNumberUtilsObj from './kbn_ml_number_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx
index 9aff898eb4eb7..9c81b23eb01dd 100644
--- a/api_docs/kbn_ml_query_utils.mdx
+++ b/api_docs/kbn_ml_query_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils
title: "@kbn/ml-query-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-query-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils']
---
import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_random_sampler_utils.mdx b/api_docs/kbn_ml_random_sampler_utils.mdx
index 9594b416d1010..7042b416b5611 100644
--- a/api_docs/kbn_ml_random_sampler_utils.mdx
+++ b/api_docs/kbn_ml_random_sampler_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils
title: "@kbn/ml-random-sampler-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-random-sampler-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-random-sampler-utils']
---
import kbnMlRandomSamplerUtilsObj from './kbn_ml_random_sampler_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx
index 812ba0ee26588..f84a407e7f61a 100644
--- a/api_docs/kbn_ml_route_utils.mdx
+++ b/api_docs/kbn_ml_route_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils
title: "@kbn/ml-route-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-route-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils']
---
import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx
index 24b46a1211727..00bf605ac7816 100644
--- a/api_docs/kbn_ml_string_hash.mdx
+++ b/api_docs/kbn_ml_string_hash.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash
title: "@kbn/ml-string-hash"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-string-hash plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash']
---
import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json';
diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx
index ab1eee824e4e7..f5dd277729937 100644
--- a/api_docs/kbn_ml_trained_models_utils.mdx
+++ b/api_docs/kbn_ml_trained_models_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils
title: "@kbn/ml-trained-models-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-trained-models-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils']
---
import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json';
diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx
index 1a7737234063a..473f114a50709 100644
--- a/api_docs/kbn_ml_url_state.mdx
+++ b/api_docs/kbn_ml_url_state.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state
title: "@kbn/ml-url-state"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ml-url-state plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state']
---
import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json';
diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx
index 984499cded1af..dbd1322725e51 100644
--- a/api_docs/kbn_monaco.mdx
+++ b/api_docs/kbn_monaco.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco
title: "@kbn/monaco"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/monaco plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco']
---
import kbnMonacoObj from './kbn_monaco.devdocs.json';
diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx
index 32b5e9b57368a..bdf70880504f7 100644
--- a/api_docs/kbn_object_versioning.mdx
+++ b/api_docs/kbn_object_versioning.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning
title: "@kbn/object-versioning"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/object-versioning plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning']
---
import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json';
diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx
index 4f351e4030539..ef2cadc4516c3 100644
--- a/api_docs/kbn_observability_alert_details.mdx
+++ b/api_docs/kbn_observability_alert_details.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details
title: "@kbn/observability-alert-details"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/observability-alert-details plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details']
---
import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json';
diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx
index 120a449e46134..0897ce442f287 100644
--- a/api_docs/kbn_optimizer.mdx
+++ b/api_docs/kbn_optimizer.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer
title: "@kbn/optimizer"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer']
---
import kbnOptimizerObj from './kbn_optimizer.devdocs.json';
diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx
index 11ada4b03b2c4..93899a1c199f4 100644
--- a/api_docs/kbn_optimizer_webpack_helpers.mdx
+++ b/api_docs/kbn_optimizer_webpack_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers
title: "@kbn/optimizer-webpack-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/optimizer-webpack-helpers plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers']
---
import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json';
diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx
index 6c57fa5993c35..8d78be6e10ad9 100644
--- a/api_docs/kbn_osquery_io_ts_types.mdx
+++ b/api_docs/kbn_osquery_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types
title: "@kbn/osquery-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/osquery-io-ts-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types']
---
import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx
index ef2bc5bb30c00..9f597884b2955 100644
--- a/api_docs/kbn_performance_testing_dataset_extractor.mdx
+++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor
title: "@kbn/performance-testing-dataset-extractor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/performance-testing-dataset-extractor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor']
---
import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json';
diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx
index 12c56a1f06127..ef15cdfe2059a 100644
--- a/api_docs/kbn_plugin_generator.mdx
+++ b/api_docs/kbn_plugin_generator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator
title: "@kbn/plugin-generator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-generator plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator']
---
import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json';
diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx
index 85277e3f9b819..c67a14a04373e 100644
--- a/api_docs/kbn_plugin_helpers.mdx
+++ b/api_docs/kbn_plugin_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers
title: "@kbn/plugin-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/plugin-helpers plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers']
---
import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json';
diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx
index cc60a332098b9..2a0a1a155a82c 100644
--- a/api_docs/kbn_react_field.mdx
+++ b/api_docs/kbn_react_field.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field
title: "@kbn/react-field"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/react-field plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field']
---
import kbnReactFieldObj from './kbn_react_field.devdocs.json';
diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx
index 6c482a565e3fd..e1f6c59096a77 100644
--- a/api_docs/kbn_repo_file_maps.mdx
+++ b/api_docs/kbn_repo_file_maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps
title: "@kbn/repo-file-maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-file-maps plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps']
---
import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json';
diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx
index 3b4f01e195d8b..c60888f9af90a 100644
--- a/api_docs/kbn_repo_linter.mdx
+++ b/api_docs/kbn_repo_linter.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter
title: "@kbn/repo-linter"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-linter plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter']
---
import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json';
diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx
index 6c5ba1f704985..af11a10209f93 100644
--- a/api_docs/kbn_repo_path.mdx
+++ b/api_docs/kbn_repo_path.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path
title: "@kbn/repo-path"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-path plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path']
---
import kbnRepoPathObj from './kbn_repo_path.devdocs.json';
diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx
index e4a7634ba7235..d7fc93cb103ac 100644
--- a/api_docs/kbn_repo_source_classifier.mdx
+++ b/api_docs/kbn_repo_source_classifier.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier
title: "@kbn/repo-source-classifier"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/repo-source-classifier plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier']
---
import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json';
diff --git a/api_docs/kbn_reporting_common.mdx b/api_docs/kbn_reporting_common.mdx
index 48d536fbbaa3d..335b4b0cbc84a 100644
--- a/api_docs/kbn_reporting_common.mdx
+++ b/api_docs/kbn_reporting_common.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common
title: "@kbn/reporting-common"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/reporting-common plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common']
---
import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json';
diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx
index 174b1521d27fc..06232d88b030c 100644
--- a/api_docs/kbn_rison.mdx
+++ b/api_docs/kbn_rison.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison
title: "@kbn/rison"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rison plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison']
---
import kbnRisonObj from './kbn_rison.devdocs.json';
diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx
index e859c7c731d62..ac693b0eb23e7 100644
--- a/api_docs/kbn_rule_data_utils.mdx
+++ b/api_docs/kbn_rule_data_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils
title: "@kbn/rule-data-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/rule-data-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils']
---
import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json';
diff --git a/api_docs/kbn_saved_objects_settings.devdocs.json b/api_docs/kbn_saved_objects_settings.devdocs.json
new file mode 100644
index 0000000000000..f6d64f51a049d
--- /dev/null
+++ b/api_docs/kbn_saved_objects_settings.devdocs.json
@@ -0,0 +1,58 @@
+{
+ "id": "@kbn/saved-objects-settings",
+ "client": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "server": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "common": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [
+ {
+ "parentPluginId": "@kbn/saved-objects-settings",
+ "id": "def-common.LISTING_LIMIT_SETTING",
+ "type": "string",
+ "tags": [],
+ "label": "LISTING_LIMIT_SETTING",
+ "description": [],
+ "signature": [
+ "\"savedObjects:listingLimit\""
+ ],
+ "path": "packages/kbn-saved-objects-settings/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/saved-objects-settings",
+ "id": "def-common.PER_PAGE_SETTING",
+ "type": "string",
+ "tags": [],
+ "label": "PER_PAGE_SETTING",
+ "description": [],
+ "signature": [
+ "\"savedObjects:perPage\""
+ ],
+ "path": "packages/kbn-saved-objects-settings/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
+ "objects": []
+ }
+}
\ No newline at end of file
diff --git a/api_docs/kbn_saved_objects_settings.mdx b/api_docs/kbn_saved_objects_settings.mdx
new file mode 100644
index 0000000000000..27b29d34528e0
--- /dev/null
+++ b/api_docs/kbn_saved_objects_settings.mdx
@@ -0,0 +1,30 @@
+---
+####
+#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system.
+#### Reach out in #docs-engineering for more info.
+####
+id: kibKbnSavedObjectsSettingsPluginApi
+slug: /kibana-dev-docs/api/kbn-saved-objects-settings
+title: "@kbn/saved-objects-settings"
+image: https://source.unsplash.com/400x175/?github
+description: API docs for the @kbn/saved-objects-settings plugin
+date: 2023-04-18
+tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings']
+---
+import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json';
+
+
+
+Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) for questions regarding this plugin.
+
+**Code health stats**
+
+| Public API count | Any count | Items lacking comments | Missing exports |
+|-------------------|-----------|------------------------|-----------------|
+| 2 | 0 | 2 | 0 |
+
+## Common
+
+### Consts, variables and types
+
+
diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx
index 841e8322f82ba..8edfc25a8f14b 100644
--- a/api_docs/kbn_security_solution_side_nav.mdx
+++ b/api_docs/kbn_security_solution_side_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav
title: "@kbn/security-solution-side-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-side-nav plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav']
---
import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json';
diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx
index 718b462743d54..bec820301d81d 100644
--- a/api_docs/kbn_security_solution_storybook_config.mdx
+++ b/api_docs/kbn_security_solution_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config
title: "@kbn/security-solution-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/security-solution-storybook-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config']
---
import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx
index 1a37555ee16f2..a2b697366ceb2 100644
--- a/api_docs/kbn_securitysolution_autocomplete.mdx
+++ b/api_docs/kbn_securitysolution_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete
title: "@kbn/securitysolution-autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-autocomplete plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete']
---
import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_data_table.devdocs.json b/api_docs/kbn_securitysolution_data_table.devdocs.json
new file mode 100644
index 0000000000000..2aa15fe5580f4
--- /dev/null
+++ b/api_docs/kbn_securitysolution_data_table.devdocs.json
@@ -0,0 +1,1862 @@
+{
+ "id": "@kbn/securitysolution-data-table",
+ "client": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "server": {
+ "classes": [],
+ "functions": [],
+ "interfaces": [],
+ "enums": [],
+ "misc": [],
+ "objects": []
+ },
+ "common": {
+ "classes": [],
+ "functions": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.addBuildingBlockStyle",
+ "type": "Function",
+ "tags": [],
+ "label": "addBuildingBlockStyle",
+ "description": [],
+ "signature": [
+ "(ecs: ",
+ {
+ "pluginId": "@kbn/securitysolution-ecs",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionEcsPluginApi",
+ "section": "def-common.EcsSecurityExtension",
+ "text": "EcsSecurityExtension"
+ },
+ ", theme: ",
+ {
+ "pluginId": "kibanaReact",
+ "scope": "common",
+ "docId": "kibKibanaReactPluginApi",
+ "section": "def-common.EuiTheme",
+ "text": "EuiTheme"
+ },
+ ", setCellProps: (props: ",
+ "EuiDataGridSetCellProps",
+ ") => void, defaultStyles?: React.CSSProperties | undefined) => void"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.addBuildingBlockStyle.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "ecs",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-ecs",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionEcsPluginApi",
+ "section": "def-common.EcsSecurityExtension",
+ "text": "EcsSecurityExtension"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.addBuildingBlockStyle.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "theme",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "kibanaReact",
+ "scope": "common",
+ "docId": "kibKibanaReactPluginApi",
+ "section": "def-common.EuiTheme",
+ "text": "EuiTheme"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.addBuildingBlockStyle.$3",
+ "type": "Function",
+ "tags": [],
+ "label": "setCellProps",
+ "description": [],
+ "signature": [
+ "(props: ",
+ "EuiDataGridSetCellProps",
+ ") => void"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.addBuildingBlockStyle.$4",
+ "type": "Object",
+ "tags": [],
+ "label": "defaultStyles",
+ "description": [],
+ "signature": [
+ "React.CSSProperties | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableComponent",
+ "type": "Function",
+ "tags": [],
+ "label": "DataTableComponent",
+ "description": [],
+ "signature": [
+ "React.NamedExoticComponent<",
+ "DataTableProps",
+ ">"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableComponent.$1",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "props",
+ "description": [],
+ "signature": [
+ "P"
+ ],
+ "path": "node_modules/@types/react/index.d.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.dataTableReducer",
+ "type": "Function",
+ "tags": [],
+ "label": "dataTableReducer",
+ "description": [
+ "The reducer for all data table actions"
+ ],
+ "signature": [
+ "(state: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableState",
+ "text": "TableState"
+ },
+ " | undefined, action: { type: any; }) => ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableState",
+ "text": "TableState"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/reducer.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "returnComment": [],
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.dataTableReducer.$1",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "state",
+ "description": [],
+ "signature": [
+ "PassedS"
+ ],
+ "path": "node_modules/typescript-fsa-reducers/dist/index.d.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.dataTableReducer.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "action",
+ "description": [],
+ "signature": [
+ "{ type: any; }"
+ ],
+ "path": "node_modules/typescript-fsa-reducers/dist/index.d.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getColumnHeaders",
+ "type": "Function",
+ "tags": [],
+ "label": "getColumnHeaders",
+ "description": [
+ "Enriches the column headers with field details from the specified browserFields"
+ ],
+ "signature": [
+ "(headers: ",
+ "ColumnHeaderOptions",
+ "[], browserFields: Readonly>>, isEventRenderedView?: boolean | undefined) => ",
+ "ColumnHeaderOptions",
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getColumnHeaders.$1",
+ "type": "Array",
+ "tags": [],
+ "label": "headers",
+ "description": [],
+ "signature": [
+ "ColumnHeaderOptions",
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getColumnHeaders.$2",
+ "type": "Object",
+ "tags": [],
+ "label": "browserFields",
+ "description": [],
+ "signature": [
+ "Readonly>>"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getColumnHeaders.$3",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "isEventRenderedView",
+ "description": [],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": false
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getEventIdToDataMapping",
+ "type": "Function",
+ "tags": [],
+ "label": "getEventIdToDataMapping",
+ "description": [
+ "\nCreates mapping of eventID -> fieldData for given fieldsToKeep. Used to store additional field\ndata necessary for custom timeline actions in conjunction with selection state"
+ ],
+ "signature": [
+ "(timelineData: ",
+ {
+ "pluginId": "timelines",
+ "scope": "common",
+ "docId": "kibTimelinesPluginApi",
+ "section": "def-common.TimelineItem",
+ "text": "TimelineItem"
+ },
+ "[], eventIds: string[], fieldsToKeep: string[], hasAlertsCrud: boolean) => Record"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getEventIdToDataMapping.$1",
+ "type": "Array",
+ "tags": [],
+ "label": "timelineData",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "timelines",
+ "scope": "common",
+ "docId": "kibTimelinesPluginApi",
+ "section": "def-common.TimelineItem",
+ "text": "TimelineItem"
+ },
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getEventIdToDataMapping.$2",
+ "type": "Array",
+ "tags": [],
+ "label": "eventIds",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getEventIdToDataMapping.$3",
+ "type": "Array",
+ "tags": [],
+ "label": "fieldsToKeep",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getEventIdToDataMapping.$4",
+ "type": "boolean",
+ "tags": [],
+ "label": "hasAlertsCrud",
+ "description": [],
+ "signature": [
+ "boolean"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getPageRowIndex",
+ "type": "Function",
+ "tags": [],
+ "label": "getPageRowIndex",
+ "description": [
+ "\nrowIndex is bigger than `data.length` for pages with page numbers bigger than one.\nFor that reason, we must calculate `rowIndex % itemsPerPage`.\n\nEx:\nGiven `rowIndex` is `13` and `itemsPerPage` is `10`.\nIt means that the `activePage` is `2` and the `pageRowIndex` is `3`\n\n**Warning**:\nBe careful with array out of bounds. `pageRowIndex` can be bigger or equal to `data.length`\n in the scenario where the user changes the event status (Open, Acknowledged, Closed)."
+ ],
+ "signature": [
+ "(rowIndex: number, itemsPerPage: number) => number"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/pagination.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getPageRowIndex.$1",
+ "type": "number",
+ "tags": [],
+ "label": "rowIndex",
+ "description": [],
+ "signature": [
+ "number"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/pagination.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getPageRowIndex.$2",
+ "type": "number",
+ "tags": [],
+ "label": "itemsPerPage",
+ "description": [],
+ "signature": [
+ "number"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/pagination.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.getTableByIdSelector",
+ "type": "Function",
+ "tags": [],
+ "label": "getTableByIdSelector",
+ "description": [],
+ "signature": [
+ "() => ((state: { dataTable: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableState",
+ "text": "TableState"
+ },
+ "; }, params_0: string) => ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.DataTableModel",
+ "text": "DataTableModel"
+ },
+ ") & ",
+ "OutputSelectorFields",
+ "<(args_0: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.DataTableModel",
+ "text": "DataTableModel"
+ },
+ ") => ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.DataTableModel",
+ "text": "DataTableModel"
+ },
+ " & { clearCache: () => void; }> & { clearCache: () => void; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/selectors.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.isEventBuildingBlockType",
+ "type": "Function",
+ "tags": [],
+ "label": "isEventBuildingBlockType",
+ "description": [],
+ "signature": [
+ "(event: ",
+ {
+ "pluginId": "@kbn/securitysolution-ecs",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionEcsPluginApi",
+ "section": "def-common.EcsSecurityExtension",
+ "text": "EcsSecurityExtension"
+ },
+ ") => boolean"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.isEventBuildingBlockType.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "event",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-ecs",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionEcsPluginApi",
+ "section": "def-common.EcsSecurityExtension",
+ "text": "EcsSecurityExtension"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ }
+ ],
+ "interfaces": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel",
+ "type": "Interface",
+ "tags": [],
+ "label": "DataTableModel",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.DataTableModel",
+ "text": "DataTableModel"
+ },
+ " extends ",
+ "DataTableModelSettings"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.columns",
+ "type": "Array",
+ "tags": [],
+ "label": "columns",
+ "description": [
+ "The columns displayed in the data table"
+ ],
+ "signature": [
+ "(Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"display\" | \"displayAsText\" | \"initialWidth\"> & Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"actions\" | \"schema\" | \"display\" | \"defaultSortDirection\" | \"displayAsText\" | \"initialWidth\" | \"isSortable\" | \"isExpandable\" | \"isResizable\"> & { aggregatable?: boolean | undefined; category?: string | undefined; columnHeaderType: ",
+ "ColumnHeaderType",
+ "; description?: string | null | undefined; esTypes?: string[] | undefined; example?: string | number | null | undefined; format?: string | undefined; linkField?: string | undefined; placeholder?: string | undefined; subType?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.IFieldSubType",
+ "text": "IFieldSubType"
+ },
+ " | undefined; type?: string | undefined; })[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.dataViewId",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "dataViewId",
+ "description": [
+ "Kibana data view id"
+ ],
+ "signature": [
+ "string | null"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.deletedEventIds",
+ "type": "Array",
+ "tags": [],
+ "label": "deletedEventIds",
+ "description": [
+ "Events to not be rendered"
+ ],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.expandedDetail",
+ "type": "Object",
+ "tags": [],
+ "label": "expandedDetail",
+ "description": [
+ "This holds the view information for the flyout when viewing data in a consuming view (i.e. hosts page) or the side panel in the primary data view"
+ ],
+ "signature": [
+ "{ [x: string]: ",
+ "ExpandedDetailType",
+ " | undefined; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.filters",
+ "type": "Array",
+ "tags": [],
+ "label": "filters",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.Filter",
+ "text": "Filter"
+ },
+ "[] | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.graphEventId",
+ "type": "string",
+ "tags": [],
+ "label": "graphEventId",
+ "description": [
+ "When non-empty, display a graph view for this event"
+ ],
+ "signature": [
+ "string | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.id",
+ "type": "string",
+ "tags": [],
+ "label": "id",
+ "description": [
+ "Uniquely identifies the data table"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.indexNames",
+ "type": "Array",
+ "tags": [],
+ "label": "indexNames",
+ "description": [],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.isLoading",
+ "type": "boolean",
+ "tags": [],
+ "label": "isLoading",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.isSelectAllChecked",
+ "type": "boolean",
+ "tags": [],
+ "label": "isSelectAllChecked",
+ "description": [
+ "If selectAll checkbox in header is checked"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.itemsPerPage",
+ "type": "number",
+ "tags": [],
+ "label": "itemsPerPage",
+ "description": [
+ "The number of items to show in a single page of results"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.itemsPerPageOptions",
+ "type": "Array",
+ "tags": [],
+ "label": "itemsPerPageOptions",
+ "description": [
+ "Displays a series of choices that when selected, become the value of `itemsPerPage`"
+ ],
+ "signature": [
+ "number[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.loadingEventIds",
+ "type": "Array",
+ "tags": [],
+ "label": "loadingEventIds",
+ "description": [
+ "Events to be rendered as loading"
+ ],
+ "signature": [
+ "string[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.selectedEventIds",
+ "type": "Object",
+ "tags": [],
+ "label": "selectedEventIds",
+ "description": [
+ "Events selected on this timeline -- eventId to TimelineNonEcsData[] mapping of data required for bulk actions"
+ ],
+ "signature": [
+ "{ [x: string]: ",
+ {
+ "pluginId": "timelines",
+ "scope": "common",
+ "docId": "kibTimelinesPluginApi",
+ "section": "def-common.TimelineNonEcsData",
+ "text": "TimelineNonEcsData"
+ },
+ "[]; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.initialized",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "initialized",
+ "description": [],
+ "signature": [
+ "boolean | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.sessionViewConfig",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "sessionViewConfig",
+ "description": [],
+ "signature": [
+ "SessionViewConfig",
+ " | null"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.updated",
+ "type": "number",
+ "tags": [],
+ "label": "updated",
+ "description": [
+ "updated saved object timestamp"
+ ],
+ "signature": [
+ "number | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.totalCount",
+ "type": "number",
+ "tags": [],
+ "label": "totalCount",
+ "description": [
+ "Total number of fetched events/alerts"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.viewMode",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "viewMode",
+ "description": [],
+ "signature": [
+ "\"gridView\" | \"eventRenderedView\""
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableModel.additionalFilters",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFilters",
+ "description": [],
+ "signature": [
+ "{ showOnlyThreatIndicatorAlerts: boolean; showBuildingBlockAlerts: boolean; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableState",
+ "type": "Interface",
+ "tags": [],
+ "label": "DataTableState",
+ "description": [
+ "The state of all timelines is stored here"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.DataTableState.dataTable",
+ "type": "Object",
+ "tags": [],
+ "label": "dataTable",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableState",
+ "text": "TableState"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortColumnTable",
+ "type": "Interface",
+ "tags": [],
+ "label": "SortColumnTable",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortColumnTable.columnId",
+ "type": "string",
+ "tags": [],
+ "label": "columnId",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortColumnTable.columnType",
+ "type": "string",
+ "tags": [],
+ "label": "columnType",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortColumnTable.esTypes",
+ "type": "Array",
+ "tags": [],
+ "label": "esTypes",
+ "description": [],
+ "signature": [
+ "string[] | undefined"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortColumnTable.sortDirection",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "sortDirection",
+ "description": [],
+ "signature": [
+ "\"asc\" | \"desc\" | \"none\" | ",
+ {
+ "pluginId": "timelines",
+ "scope": "common",
+ "docId": "kibTimelinesPluginApi",
+ "section": "def-common.Direction",
+ "text": "Direction"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableById",
+ "type": "Interface",
+ "tags": [],
+ "label": "TableById",
+ "description": [
+ "A map of id to data table"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableById.Unnamed",
+ "type": "IndexSignature",
+ "tags": [],
+ "label": "[id: string]: DataTableModel",
+ "description": [],
+ "signature": [
+ "[id: string]: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.DataTableModel",
+ "text": "DataTableModel"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableState",
+ "type": "Interface",
+ "tags": [],
+ "label": "TableState",
+ "description": [
+ "The state of all data tables is stored here"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableState.tableById",
+ "type": "Object",
+ "tags": [],
+ "label": "tableById",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableById",
+ "text": "TableById"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ],
+ "initialIsOpen": false
+ }
+ ],
+ "enums": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.Direction",
+ "type": "Enum",
+ "tags": [],
+ "label": "Direction",
+ "description": [],
+ "path": "x-pack/plugins/timelines/common/search_strategy/common/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableEntityType",
+ "type": "Enum",
+ "tags": [],
+ "label": "TableEntityType",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableId",
+ "type": "Enum",
+ "tags": [],
+ "label": "TableId",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TimelineTabs",
+ "type": "Enum",
+ "tags": [],
+ "label": "TimelineTabs",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/detail_panel.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
+ "misc": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.defaultColumnHeaderType",
+ "type": "CompoundType",
+ "tags": [],
+ "label": "defaultColumnHeaderType",
+ "description": [],
+ "signature": [
+ "\"not-filtered\" | \"text-filter\""
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.defaultHeaders",
+ "type": "Array",
+ "tags": [],
+ "label": "defaultHeaders",
+ "description": [],
+ "signature": [
+ "ColumnHeaderOptions",
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.FILTER_OPEN",
+ "type": "string",
+ "tags": [],
+ "label": "FILTER_OPEN",
+ "description": [],
+ "signature": [
+ "\"open\""
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SortDirectionTable",
+ "type": "Type",
+ "tags": [],
+ "label": "SortDirectionTable",
+ "description": [],
+ "signature": [
+ "\"asc\" | \"desc\" | \"none\" | ",
+ {
+ "pluginId": "timelines",
+ "scope": "common",
+ "docId": "kibTimelinesPluginApi",
+ "section": "def-common.Direction",
+ "text": "Direction"
+ }
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.SubsetDataTableModel",
+ "type": "Type",
+ "tags": [],
+ "label": "SubsetDataTableModel",
+ "description": [],
+ "signature": [
+ "{ readonly sort: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.SortColumnTable",
+ "text": "SortColumnTable"
+ },
+ "[]; readonly title: string; readonly filters?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.Filter",
+ "text": "Filter"
+ },
+ "[] | undefined; readonly columns: (Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"display\" | \"displayAsText\" | \"initialWidth\"> & Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"actions\" | \"schema\" | \"display\" | \"defaultSortDirection\" | \"displayAsText\" | \"initialWidth\" | \"isSortable\" | \"isExpandable\" | \"isResizable\"> & { aggregatable?: boolean | undefined; category?: string | undefined; columnHeaderType: ",
+ "ColumnHeaderType",
+ "; description?: string | null | undefined; esTypes?: string[] | undefined; example?: string | number | null | undefined; format?: string | undefined; linkField?: string | undefined; placeholder?: string | undefined; subType?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.IFieldSubType",
+ "text": "IFieldSubType"
+ },
+ " | undefined; type?: string | undefined; })[]; readonly isLoading: boolean; readonly viewMode: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.ViewSelection",
+ "text": "ViewSelection"
+ },
+ "; readonly dataViewId: string | null; readonly defaultColumns: (Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"display\" | \"displayAsText\" | \"initialWidth\"> & Pick<",
+ "EuiDataGridColumn",
+ ", \"id\" | \"actions\" | \"schema\" | \"display\" | \"defaultSortDirection\" | \"displayAsText\" | \"initialWidth\" | \"isSortable\" | \"isExpandable\" | \"isResizable\"> & { aggregatable?: boolean | undefined; category?: string | undefined; columnHeaderType: ",
+ "ColumnHeaderType",
+ "; description?: string | null | undefined; esTypes?: string[] | undefined; example?: string | number | null | undefined; format?: string | undefined; linkField?: string | undefined; placeholder?: string | undefined; subType?: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.IFieldSubType",
+ "text": "IFieldSubType"
+ },
+ " | undefined; type?: string | undefined; })[]; readonly initialized?: boolean | undefined; readonly queryFields: string[]; readonly selectAll: boolean; readonly showCheckboxes: boolean; readonly deletedEventIds: string[]; readonly expandedDetail: Partial>; readonly graphEventId?: string | undefined; readonly indexNames: string[]; readonly isSelectAllChecked: boolean; readonly itemsPerPage: number; readonly itemsPerPageOptions: number[]; readonly loadingEventIds: string[]; readonly selectedEventIds: Record; readonly sessionViewConfig: ",
+ "SessionViewConfig",
+ " | null; readonly totalCount: number; readonly additionalFilters: Record<",
+ "AlertPageFilterType",
+ ", boolean>; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.TableIdLiteral",
+ "type": "Type",
+ "tags": [],
+ "label": "TableIdLiteral",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".usersPageEvents | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".hostsPageEvents | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".networkPageEvents | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".hostsPageSessions | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".alertsOnRuleDetailsPage | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".alertsOnAlertsPage | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".test | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".rulePreview | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".kubernetesPageSessions | ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableId",
+ "text": "TableId"
+ },
+ ".alertsOnCasePage"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.ViewSelection",
+ "type": "Type",
+ "tags": [],
+ "label": "ViewSelection",
+ "description": [],
+ "signature": [
+ "\"gridView\" | \"eventRenderedView\""
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ],
+ "objects": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults",
+ "type": "Object",
+ "tags": [],
+ "label": "tableDefaults",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.defaultColumns",
+ "type": "Array",
+ "tags": [],
+ "label": "defaultColumns",
+ "description": [],
+ "signature": [
+ "ColumnHeaderOptions",
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.dataViewId",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "dataViewId",
+ "description": [],
+ "signature": [
+ "null"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.deletedEventIds",
+ "type": "Array",
+ "tags": [],
+ "label": "deletedEventIds",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.expandedDetail",
+ "type": "Object",
+ "tags": [],
+ "label": "expandedDetail",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": []
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.filters",
+ "type": "Array",
+ "tags": [],
+ "label": "filters",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.indexNames",
+ "type": "Array",
+ "tags": [],
+ "label": "indexNames",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.isSelectAllChecked",
+ "type": "boolean",
+ "tags": [],
+ "label": "isSelectAllChecked",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.isLoading",
+ "type": "boolean",
+ "tags": [],
+ "label": "isLoading",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.itemsPerPage",
+ "type": "number",
+ "tags": [],
+ "label": "itemsPerPage",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.itemsPerPageOptions",
+ "type": "Array",
+ "tags": [],
+ "label": "itemsPerPageOptions",
+ "description": [],
+ "signature": [
+ "number[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.loadingEventIds",
+ "type": "Array",
+ "tags": [],
+ "label": "loadingEventIds",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.selectedEventIds",
+ "type": "Object",
+ "tags": [],
+ "label": "selectedEventIds",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": []
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.showCheckboxes",
+ "type": "boolean",
+ "tags": [],
+ "label": "showCheckboxes",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.sort",
+ "type": "Array",
+ "tags": [],
+ "label": "sort",
+ "description": [],
+ "signature": [
+ "{ columnId: string; columnType: string; esTypes: string[]; sortDirection: \"desc\"; }[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.selectAll",
+ "type": "boolean",
+ "tags": [],
+ "label": "selectAll",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.graphEventId",
+ "type": "string",
+ "tags": [],
+ "label": "graphEventId",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.sessionViewConfig",
+ "type": "Uncategorized",
+ "tags": [],
+ "label": "sessionViewConfig",
+ "description": [],
+ "signature": [
+ "null"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.columns",
+ "type": "Array",
+ "tags": [],
+ "label": "columns",
+ "description": [],
+ "signature": [
+ "ColumnHeaderOptions",
+ "[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.queryFields",
+ "type": "Array",
+ "tags": [],
+ "label": "queryFields",
+ "description": [],
+ "signature": [
+ "never[]"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.title",
+ "type": "string",
+ "tags": [],
+ "label": "title",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.totalCount",
+ "type": "number",
+ "tags": [],
+ "label": "totalCount",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.viewMode",
+ "type": "string",
+ "tags": [],
+ "label": "viewMode",
+ "description": [],
+ "signature": [
+ "\"gridView\""
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.additionalFilters",
+ "type": "Object",
+ "tags": [],
+ "label": "additionalFilters",
+ "description": [],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.additionalFilters.showBuildingBlockAlerts",
+ "type": "boolean",
+ "tags": [],
+ "label": "showBuildingBlockAlerts",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableDefaults.additionalFilters.showOnlyThreatIndicatorAlerts",
+ "type": "boolean",
+ "tags": [],
+ "label": "showOnlyThreatIndicatorAlerts",
+ "description": [],
+ "signature": [
+ "false"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts",
+ "deprecated": false,
+ "trackAdoption": false
+ }
+ ]
+ }
+ ],
+ "initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-data-table",
+ "id": "def-common.tableEntity",
+ "type": "Object",
+ "tags": [],
+ "label": "tableEntity",
+ "description": [],
+ "signature": [
+ "{ \"users-page-events\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"hosts-page-events\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"network-page-events\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"hosts-page-sessions-v2\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"alerts-rules-details-page\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"alerts-page\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"table-test\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; alternateTest: ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"rule-preview\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"kubernetes-page-sessions\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; \"alerts-case-page\": ",
+ {
+ "pluginId": "@kbn/securitysolution-data-table",
+ "scope": "common",
+ "docId": "kibKbnSecuritysolutionDataTablePluginApi",
+ "section": "def-common.TableEntityType",
+ "text": "TableEntityType"
+ },
+ "; }"
+ ],
+ "path": "x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "initialIsOpen": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx
new file mode 100644
index 0000000000000..3d942659e507e
--- /dev/null
+++ b/api_docs/kbn_securitysolution_data_table.mdx
@@ -0,0 +1,42 @@
+---
+####
+#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system.
+#### Reach out in #docs-engineering for more info.
+####
+id: kibKbnSecuritysolutionDataTablePluginApi
+slug: /kibana-dev-docs/api/kbn-securitysolution-data-table
+title: "@kbn/securitysolution-data-table"
+image: https://source.unsplash.com/400x175/?github
+description: API docs for the @kbn/securitysolution-data-table plugin
+date: 2023-04-18
+tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-data-table']
+---
+import kbnSecuritysolutionDataTableObj from './kbn_securitysolution_data_table.devdocs.json';
+
+
+
+Contact [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) for questions regarding this plugin.
+
+**Code health stats**
+
+| Public API count | Any count | Items lacking comments | Missing exports |
+|-------------------|-----------|------------------------|-----------------|
+| 95 | 0 | 72 | 7 |
+
+## Common
+
+### Objects
+
+
+### Functions
+
+
+### Interfaces
+
+
+### Enums
+
+
+### Consts, variables and types
+
+
diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx
index 4da1d490dcf36..23f26f13400c5 100644
--- a/api_docs/kbn_securitysolution_ecs.mdx
+++ b/api_docs/kbn_securitysolution_ecs.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs
title: "@kbn/securitysolution-ecs"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-ecs plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs']
---
import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx
index dfd9ade19d258..ec272c689d3b4 100644
--- a/api_docs/kbn_securitysolution_es_utils.mdx
+++ b/api_docs/kbn_securitysolution_es_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils
title: "@kbn/securitysolution-es-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-es-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils']
---
import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx
index bca96c1190521..42a51ba60af2c 100644
--- a/api_docs/kbn_securitysolution_exception_list_components.mdx
+++ b/api_docs/kbn_securitysolution_exception_list_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components
title: "@kbn/securitysolution-exception-list-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-exception-list-components plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components']
---
import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx
index 8d644faa969f1..4f0072fd817a8 100644
--- a/api_docs/kbn_securitysolution_grouping.mdx
+++ b/api_docs/kbn_securitysolution_grouping.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping
title: "@kbn/securitysolution-grouping"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-grouping plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping']
---
import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx
index 8134b68a73e7f..38f6f58e2a7b9 100644
--- a/api_docs/kbn_securitysolution_hook_utils.mdx
+++ b/api_docs/kbn_securitysolution_hook_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils
title: "@kbn/securitysolution-hook-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-hook-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils']
---
import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
index 305d45bf98a1b..8eda87547a660 100644
--- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types
title: "@kbn/securitysolution-io-ts-alerting-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types']
---
import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
index a944e61b5df1f..a99d546082489 100644
--- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types
title: "@kbn/securitysolution-io-ts-list-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-list-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types']
---
import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx
index 7214d1ebd9a97..c206469d9c81e 100644
--- a/api_docs/kbn_securitysolution_io_ts_types.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types
title: "@kbn/securitysolution-io-ts-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types']
---
import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx
index 18f2ff5e98267..2c92875e75bd7 100644
--- a/api_docs/kbn_securitysolution_io_ts_utils.mdx
+++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils
title: "@kbn/securitysolution-io-ts-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-io-ts-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils']
---
import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx
index 067bbcceaaeab..ae136149d07d6 100644
--- a/api_docs/kbn_securitysolution_list_api.mdx
+++ b/api_docs/kbn_securitysolution_list_api.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api
title: "@kbn/securitysolution-list-api"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-api plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api']
---
import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx
index 0265ad98e73ac..d60684245c382 100644
--- a/api_docs/kbn_securitysolution_list_constants.mdx
+++ b/api_docs/kbn_securitysolution_list_constants.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants
title: "@kbn/securitysolution-list-constants"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-constants plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants']
---
import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx
index 2a0c12eddaca1..4b33f8a6abbd3 100644
--- a/api_docs/kbn_securitysolution_list_hooks.mdx
+++ b/api_docs/kbn_securitysolution_list_hooks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks
title: "@kbn/securitysolution-list-hooks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-hooks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks']
---
import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_list_utils.devdocs.json b/api_docs/kbn_securitysolution_list_utils.devdocs.json
index ae9d7b8f6fc72..af3d575d05602 100644
--- a/api_docs/kbn_securitysolution_list_utils.devdocs.json
+++ b/api_docs/kbn_securitysolution_list_utils.devdocs.json
@@ -196,6 +196,53 @@
"returnComment": [],
"initialIsOpen": false
},
+ {
+ "parentPluginId": "@kbn/securitysolution-list-utils",
+ "id": "def-common.fieldSupportsMatches",
+ "type": "Function",
+ "tags": [],
+ "label": "fieldSupportsMatches",
+ "description": [],
+ "signature": [
+ "(field: ",
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.DataViewFieldBase",
+ "text": "DataViewFieldBase"
+ },
+ ") => boolean | undefined"
+ ],
+ "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-list-utils",
+ "id": "def-common.fieldSupportsMatches.$1",
+ "type": "Object",
+ "tags": [],
+ "label": "field",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "@kbn/es-query",
+ "scope": "common",
+ "docId": "kibKbnEsQueryPluginApi",
+ "section": "def-common.DataViewFieldBase",
+ "text": "DataViewFieldBase"
+ }
+ ],
+ "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
+ },
{
"parentPluginId": "@kbn/securitysolution-list-utils",
"id": "def-common.filterExceptionItems",
@@ -2330,6 +2377,39 @@
],
"returnComment": [],
"initialIsOpen": false
+ },
+ {
+ "parentPluginId": "@kbn/securitysolution-list-utils",
+ "id": "def-common.isKibanaStringType",
+ "type": "Function",
+ "tags": [],
+ "label": "isKibanaStringType",
+ "description": [],
+ "signature": [
+ "(type: string) => boolean"
+ ],
+ "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "children": [
+ {
+ "parentPluginId": "@kbn/securitysolution-list-utils",
+ "id": "def-common.isKibanaStringType.$1",
+ "type": "string",
+ "tags": [],
+ "label": "type",
+ "description": [],
+ "signature": [
+ "string"
+ ],
+ "path": "packages/kbn-securitysolution-list-utils/src/helpers/index.ts",
+ "deprecated": false,
+ "trackAdoption": false,
+ "isRequired": true
+ }
+ ],
+ "returnComment": [],
+ "initialIsOpen": false
}
],
"interfaces": [
@@ -2743,11 +2823,11 @@
"description": [],
"signature": [
{
- "pluginId": "@kbn/es-query",
+ "pluginId": "@kbn/securitysolution-list-utils",
"scope": "common",
- "docId": "kibKbnEsQueryPluginApi",
- "section": "def-common.DataViewFieldBase",
- "text": "DataViewFieldBase"
+ "docId": "kibKbnSecuritysolutionListUtilsPluginApi",
+ "section": "def-common.DataViewField",
+ "text": "DataViewField"
},
" | undefined"
],
diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx
index c159299bef59b..91b702277c921 100644
--- a/api_docs/kbn_securitysolution_list_utils.mdx
+++ b/api_docs/kbn_securitysolution_list_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils
title: "@kbn/securitysolution-list-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-list-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils']
---
import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json';
@@ -21,7 +21,7 @@ Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/te
| Public API count | Any count | Items lacking comments | Missing exports |
|-------------------|-----------|------------------------|-----------------|
-| 206 | 10 | 159 | 0 |
+| 210 | 10 | 163 | 0 |
## Common
diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx
index 4295a6b8e98f5..27ce921681830 100644
--- a/api_docs/kbn_securitysolution_rules.mdx
+++ b/api_docs/kbn_securitysolution_rules.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules
title: "@kbn/securitysolution-rules"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-rules plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules']
---
import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx
index 5058f388a81a6..a474045f5c74e 100644
--- a/api_docs/kbn_securitysolution_t_grid.mdx
+++ b/api_docs/kbn_securitysolution_t_grid.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid
title: "@kbn/securitysolution-t-grid"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-t-grid plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid']
---
import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json';
diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx
index c2fb376196316..d2603e518f764 100644
--- a/api_docs/kbn_securitysolution_utils.mdx
+++ b/api_docs/kbn_securitysolution_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils
title: "@kbn/securitysolution-utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/securitysolution-utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils']
---
import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json';
diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx
index 5f9e16b35a0b0..8094dc6ed8a35 100644
--- a/api_docs/kbn_server_http_tools.mdx
+++ b/api_docs/kbn_server_http_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools
title: "@kbn/server-http-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-http-tools plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools']
---
import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json';
diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx
index e5a29b88393c7..8f06616ffeafa 100644
--- a/api_docs/kbn_server_route_repository.mdx
+++ b/api_docs/kbn_server_route_repository.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository
title: "@kbn/server-route-repository"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/server-route-repository plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository']
---
import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json';
diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx
index 81ed2ba91169a..625af47e20b91 100644
--- a/api_docs/kbn_shared_svg.mdx
+++ b/api_docs/kbn_shared_svg.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg
title: "@kbn/shared-svg"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-svg plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg']
---
import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx
index 9acdb9f864c28..f3c543936022f 100644
--- a/api_docs/kbn_shared_ux_avatar_solution.mdx
+++ b/api_docs/kbn_shared_ux_avatar_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution
title: "@kbn/shared-ux-avatar-solution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-solution plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution']
---
import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx
index 1803518bc0b1a..c7f660fc5d422 100644
--- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx
+++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components
title: "@kbn/shared-ux-avatar-user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components']
---
import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
index 337789c7a85ea..3722ab19af545 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen
title: "@kbn/shared-ux-button-exit-full-screen"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen']
---
import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx
index 0f999ba813602..23d88b9bb7bc2 100644
--- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx
+++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks
title: "@kbn/shared-ux-button-exit-full-screen-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks']
---
import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx
index 128f8eb57bec7..65a874e30c4ba 100644
--- a/api_docs/kbn_shared_ux_button_toolbar.mdx
+++ b/api_docs/kbn_shared_ux_button_toolbar.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar
title: "@kbn/shared-ux-button-toolbar"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-button-toolbar plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar']
---
import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx
index 86cbb14469218..6c6bd673810c8 100644
--- a/api_docs/kbn_shared_ux_card_no_data.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data
title: "@kbn/shared-ux-card-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data']
---
import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
index 28915aa8c5f81..e223fdfdebcb9 100644
--- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks
title: "@kbn/shared-ux-card-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks']
---
import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx
index 2fc3892bc621d..76f3f5836a837 100644
--- a/api_docs/kbn_shared_ux_file_context.mdx
+++ b/api_docs/kbn_shared_ux_file_context.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context
title: "@kbn/shared-ux-file-context"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-context plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context']
---
import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx
index 0bff8c7e9ddcd..2309a89ee51ae 100644
--- a/api_docs/kbn_shared_ux_file_image.mdx
+++ b/api_docs/kbn_shared_ux_file_image.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image
title: "@kbn/shared-ux-file-image"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image']
---
import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx
index ae1ef0d013b1a..7d504a9b90abe 100644
--- a/api_docs/kbn_shared_ux_file_image_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks
title: "@kbn/shared-ux-file-image-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-image-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks']
---
import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx
index 6e7e02f10221d..c1c7b2bd635ef 100644
--- a/api_docs/kbn_shared_ux_file_mocks.mdx
+++ b/api_docs/kbn_shared_ux_file_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks
title: "@kbn/shared-ux-file-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks']
---
import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx
index e8137c8543d86..bc72a83b4631a 100644
--- a/api_docs/kbn_shared_ux_file_picker.mdx
+++ b/api_docs/kbn_shared_ux_file_picker.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker
title: "@kbn/shared-ux-file-picker"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-picker plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker']
---
import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx
index 353905d5b025e..7bfade800a5b0 100644
--- a/api_docs/kbn_shared_ux_file_types.mdx
+++ b/api_docs/kbn_shared_ux_file_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types
title: "@kbn/shared-ux-file-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types']
---
import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx
index 86188abb2c6dd..d789138a1f3c4 100644
--- a/api_docs/kbn_shared_ux_file_upload.mdx
+++ b/api_docs/kbn_shared_ux_file_upload.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload
title: "@kbn/shared-ux-file-upload"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-upload plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload']
---
import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx
index 2475d66df4671..cd2005cbe2f6c 100644
--- a/api_docs/kbn_shared_ux_file_util.mdx
+++ b/api_docs/kbn_shared_ux_file_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util
title: "@kbn/shared-ux-file-util"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-file-util plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util']
---
import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx
index 670e2c073147c..453e3d551b616 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app
title: "@kbn/shared-ux-link-redirect-app"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app']
---
import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
index 37415dc053cee..840098b088fb6 100644
--- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
+++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks
title: "@kbn/shared-ux-link-redirect-app-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks']
---
import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx
index 05b55ef66f1f2..6168d5ff59b0c 100644
--- a/api_docs/kbn_shared_ux_markdown.mdx
+++ b/api_docs/kbn_shared_ux_markdown.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown
title: "@kbn/shared-ux-markdown"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown']
---
import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx
index 678a5440d0ff3..0b2c65a94ccc3 100644
--- a/api_docs/kbn_shared_ux_markdown_mocks.mdx
+++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks
title: "@kbn/shared-ux-markdown-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-markdown-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks']
---
import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
index 0faff1e5a669f..733df6b02ef93 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data
title: "@kbn/shared-ux-page-analytics-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data']
---
import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
index 65539c84d6453..0826251e7e69b 100644
--- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks
title: "@kbn/shared-ux-page-analytics-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks']
---
import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
index a2c1145c34add..8d57ca813a7bb 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data
title: "@kbn/shared-ux-page-kibana-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data']
---
import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
index f918c7a8f48cc..4796a4dc64d56 100644
--- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks
title: "@kbn/shared-ux-page-kibana-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks']
---
import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx
index 417ecc5d9b4ff..e41913e16925f 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template
title: "@kbn/shared-ux-page-kibana-template"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template']
---
import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
index d7fffbf47deae..3104c250cd274 100644
--- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks
title: "@kbn/shared-ux-page-kibana-template-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks']
---
import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx
index 506efe0ed5ee9..c4f55f5c20806 100644
--- a/api_docs/kbn_shared_ux_page_no_data.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data
title: "@kbn/shared-ux-page-no-data"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data']
---
import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx
index 86338abfcdd3e..d167b1e958751 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config
title: "@kbn/shared-ux-page-no-data-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config']
---
import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
index 66bdf91cd2a75..f5de870c5b104 100644
--- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks
title: "@kbn/shared-ux-page-no-data-config-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks']
---
import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
index 3d735c1a16bd4..7ec62a659a858 100644
--- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
+++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks
title: "@kbn/shared-ux-page-no-data-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks']
---
import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx
index 914abb7032b78..64c532fffed65 100644
--- a/api_docs/kbn_shared_ux_page_solution_nav.mdx
+++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav
title: "@kbn/shared-ux-page-solution-nav"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-page-solution-nav plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav']
---
import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
index a07be1ca9ca68..71813a99b74dc 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views
title: "@kbn/shared-ux-prompt-no-data-views"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views']
---
import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
index b3f1df88bbae1..52ba22e84684f 100644
--- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
+++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks
title: "@kbn/shared-ux-prompt-no-data-views-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks']
---
import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx
index 9cdf29364f2e0..9f237bb6371dc 100644
--- a/api_docs/kbn_shared_ux_prompt_not_found.mdx
+++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found
title: "@kbn/shared-ux-prompt-not-found"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-prompt-not-found plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found']
---
import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx
index a4a5cc5aa4d1c..ea4b2719da63f 100644
--- a/api_docs/kbn_shared_ux_router.mdx
+++ b/api_docs/kbn_shared_ux_router.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router
title: "@kbn/shared-ux-router"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router']
---
import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx
index 81665e6d0129a..29ff909748e4b 100644
--- a/api_docs/kbn_shared_ux_router_mocks.mdx
+++ b/api_docs/kbn_shared_ux_router_mocks.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks
title: "@kbn/shared-ux-router-mocks"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-router-mocks plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks']
---
import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx
index 5b68def8ce126..2827c6086dc04 100644
--- a/api_docs/kbn_shared_ux_storybook_config.mdx
+++ b/api_docs/kbn_shared_ux_storybook_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config
title: "@kbn/shared-ux-storybook-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config']
---
import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx
index 34dd3646204a2..cca631a87cd4d 100644
--- a/api_docs/kbn_shared_ux_storybook_mock.mdx
+++ b/api_docs/kbn_shared_ux_storybook_mock.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock
title: "@kbn/shared-ux-storybook-mock"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-storybook-mock plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock']
---
import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json';
diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx
index 55a1a66677beb..fd49eeb3bece1 100644
--- a/api_docs/kbn_shared_ux_utility.mdx
+++ b/api_docs/kbn_shared_ux_utility.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility
title: "@kbn/shared-ux-utility"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/shared-ux-utility plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility']
---
import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json';
diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx
index ef6034b3e4898..354903e690a21 100644
--- a/api_docs/kbn_slo_schema.mdx
+++ b/api_docs/kbn_slo_schema.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema
title: "@kbn/slo-schema"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/slo-schema plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema']
---
import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json';
diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx
index a57ebb54382b3..d66dea91b8a6f 100644
--- a/api_docs/kbn_some_dev_log.mdx
+++ b/api_docs/kbn_some_dev_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log
title: "@kbn/some-dev-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/some-dev-log plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log']
---
import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json';
diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx
index 88c0dcef6e143..4fccf81370810 100644
--- a/api_docs/kbn_std.mdx
+++ b/api_docs/kbn_std.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std
title: "@kbn/std"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/std plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std']
---
import kbnStdObj from './kbn_std.devdocs.json';
diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx
index 6d02d5e19576b..fb3bbf806a401 100644
--- a/api_docs/kbn_stdio_dev_helpers.mdx
+++ b/api_docs/kbn_stdio_dev_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers
title: "@kbn/stdio-dev-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/stdio-dev-helpers plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers']
---
import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json';
diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx
index 5069611abf3ca..3de038e136336 100644
--- a/api_docs/kbn_storybook.mdx
+++ b/api_docs/kbn_storybook.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook
title: "@kbn/storybook"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/storybook plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook']
---
import kbnStorybookObj from './kbn_storybook.devdocs.json';
diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx
index 5728a2d8707a8..cfcafe77f4a48 100644
--- a/api_docs/kbn_telemetry_tools.mdx
+++ b/api_docs/kbn_telemetry_tools.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools
title: "@kbn/telemetry-tools"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/telemetry-tools plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools']
---
import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json';
diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx
index 89a5e8f70dd04..a7e70f981fba1 100644
--- a/api_docs/kbn_test.mdx
+++ b/api_docs/kbn_test.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test
title: "@kbn/test"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test']
---
import kbnTestObj from './kbn_test.devdocs.json';
diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx
index 0cec0fee44239..e90b770c49a23 100644
--- a/api_docs/kbn_test_jest_helpers.mdx
+++ b/api_docs/kbn_test_jest_helpers.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers
title: "@kbn/test-jest-helpers"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-jest-helpers plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers']
---
import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json';
diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx
index 516aa3e891eea..ea78c22a4920e 100644
--- a/api_docs/kbn_test_subj_selector.mdx
+++ b/api_docs/kbn_test_subj_selector.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector
title: "@kbn/test-subj-selector"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/test-subj-selector plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector']
---
import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json';
diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx
index 743f54114d259..33e8ca0f4e73e 100644
--- a/api_docs/kbn_tooling_log.mdx
+++ b/api_docs/kbn_tooling_log.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log
title: "@kbn/tooling-log"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/tooling-log plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log']
---
import kbnToolingLogObj from './kbn_tooling_log.devdocs.json';
diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx
index 1c0bf5f8590fe..4ef9e429af459 100644
--- a/api_docs/kbn_ts_projects.mdx
+++ b/api_docs/kbn_ts_projects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects
title: "@kbn/ts-projects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ts-projects plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects']
---
import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json';
diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx
index a23767813b8a3..3631c441c34ee 100644
--- a/api_docs/kbn_typed_react_router_config.mdx
+++ b/api_docs/kbn_typed_react_router_config.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config
title: "@kbn/typed-react-router-config"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/typed-react-router-config plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config']
---
import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json';
diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx
index e9b447b5e6359..2fae9c1d82668 100644
--- a/api_docs/kbn_ui_actions_browser.mdx
+++ b/api_docs/kbn_ui_actions_browser.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser
title: "@kbn/ui-actions-browser"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-actions-browser plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser']
---
import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json';
diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx
index c7de73cebc15a..8191484ba5834 100644
--- a/api_docs/kbn_ui_shared_deps_src.mdx
+++ b/api_docs/kbn_ui_shared_deps_src.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src
title: "@kbn/ui-shared-deps-src"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-shared-deps-src plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src']
---
import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json';
diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx
index 9a57f23f573fa..afa5621c24dd0 100644
--- a/api_docs/kbn_ui_theme.mdx
+++ b/api_docs/kbn_ui_theme.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme
title: "@kbn/ui-theme"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/ui-theme plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme']
---
import kbnUiThemeObj from './kbn_ui_theme.devdocs.json';
diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx
index 5865bb2ea2433..186a8f826428d 100644
--- a/api_docs/kbn_user_profile_components.mdx
+++ b/api_docs/kbn_user_profile_components.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components
title: "@kbn/user-profile-components"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/user-profile-components plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components']
---
import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json';
diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx
index 274f9cef4f8c2..d1fc0f672252e 100644
--- a/api_docs/kbn_utility_types.mdx
+++ b/api_docs/kbn_utility_types.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types
title: "@kbn/utility-types"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types']
---
import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json';
diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx
index b53b6f99180fa..a78c9ff36b9c8 100644
--- a/api_docs/kbn_utility_types_jest.mdx
+++ b/api_docs/kbn_utility_types_jest.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest
title: "@kbn/utility-types-jest"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utility-types-jest plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest']
---
import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json';
diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx
index 02c0856dcf2ca..ffdbc677b4d20 100644
--- a/api_docs/kbn_utils.mdx
+++ b/api_docs/kbn_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils
title: "@kbn/utils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/utils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils']
---
import kbnUtilsObj from './kbn_utils.devdocs.json';
diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx
index 87fe3074687f0..afbc6e1514ece 100644
--- a/api_docs/kbn_yarn_lock_validator.mdx
+++ b/api_docs/kbn_yarn_lock_validator.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator
title: "@kbn/yarn-lock-validator"
image: https://source.unsplash.com/400x175/?github
description: API docs for the @kbn/yarn-lock-validator plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator']
---
import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json';
diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx
index 627620b1d180e..4a14e097b5a6e 100644
--- a/api_docs/kibana_overview.mdx
+++ b/api_docs/kibana_overview.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview
title: "kibanaOverview"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaOverview plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview']
---
import kibanaOverviewObj from './kibana_overview.devdocs.json';
diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx
index 351272c090c85..5a580fea57c7c 100644
--- a/api_docs/kibana_react.mdx
+++ b/api_docs/kibana_react.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact
title: "kibanaReact"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaReact plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact']
---
import kibanaReactObj from './kibana_react.devdocs.json';
diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx
index 297bb4a0753b5..9694f7d515bb3 100644
--- a/api_docs/kibana_utils.mdx
+++ b/api_docs/kibana_utils.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils
title: "kibanaUtils"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kibanaUtils plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils']
---
import kibanaUtilsObj from './kibana_utils.devdocs.json';
diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx
index 29bf1e5b35372..76c162d42d53a 100644
--- a/api_docs/kubernetes_security.mdx
+++ b/api_docs/kubernetes_security.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/kubernetesSecurity
title: "kubernetesSecurity"
image: https://source.unsplash.com/400x175/?github
description: API docs for the kubernetesSecurity plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity']
---
import kubernetesSecurityObj from './kubernetes_security.devdocs.json';
-Contact [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) for questions regarding this plugin.
+Contact [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx
index 7f313c4772135..5377268b2dc32 100644
--- a/api_docs/lens.mdx
+++ b/api_docs/lens.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens
title: "lens"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lens plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens']
---
import lensObj from './lens.devdocs.json';
diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx
index 5d8be76748cc5..7fe813ac1ed82 100644
--- a/api_docs/license_api_guard.mdx
+++ b/api_docs/license_api_guard.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard
title: "licenseApiGuard"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseApiGuard plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard']
---
import licenseApiGuardObj from './license_api_guard.devdocs.json';
diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx
index 305d211d5d5e7..5b6307ca22c86 100644
--- a/api_docs/license_management.mdx
+++ b/api_docs/license_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement
title: "licenseManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licenseManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement']
---
import licenseManagementObj from './license_management.devdocs.json';
diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx
index 1eeafd0f63236..98bf9c1fa8ae2 100644
--- a/api_docs/licensing.mdx
+++ b/api_docs/licensing.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing
title: "licensing"
image: https://source.unsplash.com/400x175/?github
description: API docs for the licensing plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing']
---
import licensingObj from './licensing.devdocs.json';
diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx
index e35521bdcd952..017be96350ac0 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists
title: "lists"
image: https://source.unsplash.com/400x175/?github
description: API docs for the lists plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists']
---
import listsObj from './lists.devdocs.json';
diff --git a/api_docs/management.mdx b/api_docs/management.mdx
index 6b8c5b2eb16cc..f95d5c3108003 100644
--- a/api_docs/management.mdx
+++ b/api_docs/management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management
title: "management"
image: https://source.unsplash.com/400x175/?github
description: API docs for the management plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management']
---
import managementObj from './management.devdocs.json';
diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx
index 2fb6cc2c4bea1..4162686593d2e 100644
--- a/api_docs/maps.mdx
+++ b/api_docs/maps.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps
title: "maps"
image: https://source.unsplash.com/400x175/?github
description: API docs for the maps plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps']
---
import mapsObj from './maps.devdocs.json';
diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx
index eac12a4fbba79..058893cf79f57 100644
--- a/api_docs/maps_ems.mdx
+++ b/api_docs/maps_ems.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms
title: "mapsEms"
image: https://source.unsplash.com/400x175/?github
description: API docs for the mapsEms plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms']
---
import mapsEmsObj from './maps_ems.devdocs.json';
diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx
index e1bad7698a82e..f87cd86d7c650 100644
--- a/api_docs/ml.mdx
+++ b/api_docs/ml.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml
title: "ml"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ml plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml']
---
import mlObj from './ml.devdocs.json';
diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx
index 79cb0cdd61755..66f5f745e831d 100644
--- a/api_docs/monitoring.mdx
+++ b/api_docs/monitoring.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring
title: "monitoring"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoring plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring']
---
import monitoringObj from './monitoring.devdocs.json';
diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx
index 3d7dd2a3d12f2..099410cb470cd 100644
--- a/api_docs/monitoring_collection.mdx
+++ b/api_docs/monitoring_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection
title: "monitoringCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the monitoringCollection plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection']
---
import monitoringCollectionObj from './monitoring_collection.devdocs.json';
diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx
index a0c0d43320345..bbabd06919df1 100644
--- a/api_docs/navigation.mdx
+++ b/api_docs/navigation.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation
title: "navigation"
image: https://source.unsplash.com/400x175/?github
description: API docs for the navigation plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation']
---
import navigationObj from './navigation.devdocs.json';
diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx
index 12c058b6bf2c4..16aea8ad4d480 100644
--- a/api_docs/newsfeed.mdx
+++ b/api_docs/newsfeed.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed
title: "newsfeed"
image: https://source.unsplash.com/400x175/?github
description: API docs for the newsfeed plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed']
---
import newsfeedObj from './newsfeed.devdocs.json';
diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx
index 46e736baef0d8..2b804922debe0 100644
--- a/api_docs/notifications.mdx
+++ b/api_docs/notifications.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications
title: "notifications"
image: https://source.unsplash.com/400x175/?github
description: API docs for the notifications plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications']
---
import notificationsObj from './notifications.devdocs.json';
diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json
index 4e6eee1fde796..44e312e71c6d6 100644
--- a/api_docs/observability.devdocs.json
+++ b/api_docs/observability.devdocs.json
@@ -4389,7 +4389,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -4397,7 +4397,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/observability/public/plugin.ts",
"deprecated": false,
@@ -4626,7 +4626,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">[]; has: (id: string) => boolean; register: (objectType: ",
+ ">[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -4642,7 +4642,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/observability/public/plugin.ts",
"deprecated": false,
diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx
index c3c443d00182e..f9e097a2564a2 100644
--- a/api_docs/observability.mdx
+++ b/api_docs/observability.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability
title: "observability"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observability plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability']
---
import observabilityObj from './observability.devdocs.json';
diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx
index 14cb7c15bc456..d5d70399bfd0f 100644
--- a/api_docs/observability_shared.mdx
+++ b/api_docs/observability_shared.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared
title: "observabilityShared"
image: https://source.unsplash.com/400x175/?github
description: API docs for the observabilityShared plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared']
---
import observabilitySharedObj from './observability_shared.devdocs.json';
diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx
index 20f4e09551e85..11f7de7c24d37 100644
--- a/api_docs/osquery.mdx
+++ b/api_docs/osquery.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery
title: "osquery"
image: https://source.unsplash.com/400x175/?github
description: API docs for the osquery plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery']
---
import osqueryObj from './osquery.devdocs.json';
diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx
index 5cc6aad4ef05d..c2992ea7066af 100644
--- a/api_docs/plugin_directory.mdx
+++ b/api_docs/plugin_directory.mdx
@@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory
slug: /kibana-dev-docs/api-meta/plugin-api-directory
title: Directory
description: Directory of public APIs available through plugins or packages.
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana']
---
@@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| Count | Plugins or Packages with a
public API | Number of teams |
|--------------|----------|------------------------|
-| 593 | 489 | 38 |
+| 595 | 491 | 37 |
### Public API health stats
| API Count | Any Count | Missing comments | Missing exports |
|--------------|----------|-----------------|--------|
-| 68854 | 526 | 59477 | 1332 |
+| 68983 | 526 | 59579 | 1338 |
## Plugin Directory
@@ -29,7 +29,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
|--------------|----------------|-----------|--------------|----------|---------------|--------|
| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 259 | 8 | 254 | 26 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 36 | 1 | 32 | 2 |
-| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 12 | 0 | 1 | 2 |
+| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 37 | 0 | 22 | 0 |
| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 601 | 1 | 580 | 42 |
| | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 43 | 0 | 43 | 109 |
| | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | Asset manager plugin for entity assets (inventory, topology, etc) | 3 | 0 | 3 | 0 |
@@ -53,7 +53,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 |
| customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 |
| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 271 | 0 | 252 | 1 |
-| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 188 | 0 | 179 | 13 |
+| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 190 | 0 | 181 | 14 |
| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 54 | 0 | 51 | 0 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 3271 | 119 | 2577 | 27 |
| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 16 | 0 | 7 | 0 |
@@ -113,7 +113,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 185 | 1 | 153 | 5 |
| kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 |
| | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 609 | 3 | 416 | 9 |
-| | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 3 | 0 | 3 | 1 |
+| | [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) | - | 3 | 0 | 3 | 1 |
| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 608 | 0 | 513 | 53 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 1 |
@@ -151,7 +151,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 280 | 0 | 94 | 0 |
| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 117 | 0 | 76 | 27 |
-| | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 7 | 0 | 7 | 1 |
+| | [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) | - | 7 | 0 | 7 | 1 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds URL Service and sharing capabilities to Kibana | 118 | 0 | 59 | 10 |
| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 22 | 1 | 22 | 1 |
| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides the Spaces feature, which allows saved objects to be organized into meaningful categories. | 253 | 0 | 65 | 0 |
@@ -381,7 +381,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 30 | 1 | 18 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 1 | 11 | 3 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 0 |
-| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 24 | 0 | 3 | 0 |
+| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 4 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 1 | 16 | 0 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 18 | 1 | 17 | 3 |
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 |
@@ -465,9 +465,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 73 | 0 | 65 | 0 |
| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 2 | 8 | 0 |
| | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 102 | 0 | 99 | 0 |
+| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 30 | 0 | 30 | 0 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 2 | 0 | 0 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 56 | 1 | 41 | 1 |
+| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 95 | 0 | 72 | 7 |
| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 341 | 1 | 337 | 32 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 68 | 0 | 62 | 1 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 104 | 0 | 93 | 1 |
@@ -480,7 +482,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana']
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 67 | 0 | 64 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 35 | 0 | 23 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 60 | 0 | 47 | 0 |
-| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 206 | 10 | 159 | 0 |
+| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 210 | 10 | 163 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 26 | 0 | 23 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 120 | 0 | 116 | 0 |
| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 31 | 2 | 29 | 0 |
diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx
index 2a828e37087a3..a5e850da8b2cb 100644
--- a/api_docs/presentation_util.mdx
+++ b/api_docs/presentation_util.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil
title: "presentationUtil"
image: https://source.unsplash.com/400x175/?github
description: API docs for the presentationUtil plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil']
---
import presentationUtilObj from './presentation_util.devdocs.json';
diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx
index 80f761d4a6863..532a14b3be1cb 100644
--- a/api_docs/profiling.mdx
+++ b/api_docs/profiling.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling
title: "profiling"
image: https://source.unsplash.com/400x175/?github
description: API docs for the profiling plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling']
---
import profilingObj from './profiling.devdocs.json';
diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx
index 6a511870ef745..7afb72b454a44 100644
--- a/api_docs/remote_clusters.mdx
+++ b/api_docs/remote_clusters.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters
title: "remoteClusters"
image: https://source.unsplash.com/400x175/?github
description: API docs for the remoteClusters plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters']
---
import remoteClustersObj from './remote_clusters.devdocs.json';
diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx
index efb8a608743fd..cb79cce43c521 100644
--- a/api_docs/reporting.mdx
+++ b/api_docs/reporting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting
title: "reporting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the reporting plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting']
---
import reportingObj from './reporting.devdocs.json';
diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx
index c2e0a7751797a..465dff3eeb282 100644
--- a/api_docs/rollup.mdx
+++ b/api_docs/rollup.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup
title: "rollup"
image: https://source.unsplash.com/400x175/?github
description: API docs for the rollup plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup']
---
import rollupObj from './rollup.devdocs.json';
diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx
index 5fe3a3f049e16..0c3666ca0988c 100644
--- a/api_docs/rule_registry.mdx
+++ b/api_docs/rule_registry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry
title: "ruleRegistry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ruleRegistry plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry']
---
import ruleRegistryObj from './rule_registry.devdocs.json';
diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx
index 4efca35346ee4..d8d18ebab68ce 100644
--- a/api_docs/runtime_fields.mdx
+++ b/api_docs/runtime_fields.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields
title: "runtimeFields"
image: https://source.unsplash.com/400x175/?github
description: API docs for the runtimeFields plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields']
---
import runtimeFieldsObj from './runtime_fields.devdocs.json';
diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx
index e53f830e1c473..75f04d6d2a9ab 100644
--- a/api_docs/saved_objects.mdx
+++ b/api_docs/saved_objects.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects
title: "savedObjects"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjects plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects']
---
import savedObjectsObj from './saved_objects.devdocs.json';
diff --git a/api_docs/saved_objects_finder.devdocs.json b/api_docs/saved_objects_finder.devdocs.json
index 08991612ff496..9ae6255f9aefe 100644
--- a/api_docs/saved_objects_finder.devdocs.json
+++ b/api_docs/saved_objects_finder.devdocs.json
@@ -789,7 +789,7 @@
"signature": [
"\"savedObjects:listingLimit\""
],
- "path": "src/plugins/saved_objects_finder/common/index.ts",
+ "path": "packages/kbn-saved-objects-settings/index.ts",
"deprecated": false,
"trackAdoption": false,
"initialIsOpen": false
@@ -804,7 +804,7 @@
"signature": [
"\"savedObjects:perPage\""
],
- "path": "src/plugins/saved_objects_finder/common/index.ts",
+ "path": "packages/kbn-saved-objects-settings/index.ts",
"deprecated": false,
"trackAdoption": false,
"initialIsOpen": false
diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx
index d78ff6ee811c0..944092f2f1730 100644
--- a/api_docs/saved_objects_finder.mdx
+++ b/api_docs/saved_objects_finder.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder
title: "savedObjectsFinder"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsFinder plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder']
---
import savedObjectsFinderObj from './saved_objects_finder.devdocs.json';
diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx
index df93303e8d070..46da841238f33 100644
--- a/api_docs/saved_objects_management.mdx
+++ b/api_docs/saved_objects_management.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement
title: "savedObjectsManagement"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsManagement plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement']
---
import savedObjectsManagementObj from './saved_objects_management.devdocs.json';
diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx
index c865a7959851f..97ffc99a1d799 100644
--- a/api_docs/saved_objects_tagging.mdx
+++ b/api_docs/saved_objects_tagging.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging
title: "savedObjectsTagging"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTagging plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging']
---
import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json';
diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx
index 785e64d46e5b3..a8b1ad9fdf80a 100644
--- a/api_docs/saved_objects_tagging_oss.mdx
+++ b/api_docs/saved_objects_tagging_oss.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss
title: "savedObjectsTaggingOss"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedObjectsTaggingOss plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss']
---
import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json';
diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx
index 198d0296a308f..64dce1aa69699 100644
--- a/api_docs/saved_search.mdx
+++ b/api_docs/saved_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch
title: "savedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the savedSearch plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch']
---
import savedSearchObj from './saved_search.devdocs.json';
diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx
index a302b2108245d..2e34968c8916b 100644
--- a/api_docs/screenshot_mode.mdx
+++ b/api_docs/screenshot_mode.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode
title: "screenshotMode"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotMode plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode']
---
import screenshotModeObj from './screenshot_mode.devdocs.json';
diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx
index 077b670f4605f..ec45ea848d125 100644
--- a/api_docs/screenshotting.mdx
+++ b/api_docs/screenshotting.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting
title: "screenshotting"
image: https://source.unsplash.com/400x175/?github
description: API docs for the screenshotting plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting']
---
import screenshottingObj from './screenshotting.devdocs.json';
diff --git a/api_docs/security.mdx b/api_docs/security.mdx
index efdb4d9dff9a9..1698f95c19367 100644
--- a/api_docs/security.mdx
+++ b/api_docs/security.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security
title: "security"
image: https://source.unsplash.com/400x175/?github
description: API docs for the security plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security']
---
import securityObj from './security.devdocs.json';
diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx
index 4acac308b8545..af52d6774356e 100644
--- a/api_docs/security_solution.mdx
+++ b/api_docs/security_solution.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution
title: "securitySolution"
image: https://source.unsplash.com/400x175/?github
description: API docs for the securitySolution plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution']
---
import securitySolutionObj from './security_solution.devdocs.json';
diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx
index 7994a4b709546..4214cc36d11c5 100644
--- a/api_docs/session_view.mdx
+++ b/api_docs/session_view.mdx
@@ -8,14 +8,14 @@ slug: /kibana-dev-docs/api/sessionView
title: "sessionView"
image: https://source.unsplash.com/400x175/?github
description: API docs for the sessionView plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView']
---
import sessionViewObj from './session_view.devdocs.json';
-Contact [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) for questions regarding this plugin.
+Contact [@elastic/sec-cloudnative-integrations](https://github.com/orgs/elastic/teams/sec-cloudnative-integrations) for questions regarding this plugin.
**Code health stats**
diff --git a/api_docs/share.mdx b/api_docs/share.mdx
index ff1347346e4fd..0c0fe95e8eb93 100644
--- a/api_docs/share.mdx
+++ b/api_docs/share.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share
title: "share"
image: https://source.unsplash.com/400x175/?github
description: API docs for the share plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share']
---
import shareObj from './share.devdocs.json';
diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx
index 59048f5ee77db..89d8fd224eaaa 100644
--- a/api_docs/snapshot_restore.mdx
+++ b/api_docs/snapshot_restore.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore
title: "snapshotRestore"
image: https://source.unsplash.com/400x175/?github
description: API docs for the snapshotRestore plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore']
---
import snapshotRestoreObj from './snapshot_restore.devdocs.json';
diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx
index 61e3663cbd85a..0ae0d52259d7d 100644
--- a/api_docs/spaces.mdx
+++ b/api_docs/spaces.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces
title: "spaces"
image: https://source.unsplash.com/400x175/?github
description: API docs for the spaces plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces']
---
import spacesObj from './spaces.devdocs.json';
diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx
index 661794d3f9505..5c08c52b7f8d1 100644
--- a/api_docs/stack_alerts.mdx
+++ b/api_docs/stack_alerts.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts
title: "stackAlerts"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackAlerts plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts']
---
import stackAlertsObj from './stack_alerts.devdocs.json';
diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx
index bd30337912051..4c7ac9b47cfbe 100644
--- a/api_docs/stack_connectors.mdx
+++ b/api_docs/stack_connectors.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors
title: "stackConnectors"
image: https://source.unsplash.com/400x175/?github
description: API docs for the stackConnectors plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors']
---
import stackConnectorsObj from './stack_connectors.devdocs.json';
diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx
index 5fc0872060c5e..94c77afcffa2a 100644
--- a/api_docs/task_manager.mdx
+++ b/api_docs/task_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager
title: "taskManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the taskManager plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager']
---
import taskManagerObj from './task_manager.devdocs.json';
diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx
index 7e8fbbd9e45b5..f4b92ece0e010 100644
--- a/api_docs/telemetry.mdx
+++ b/api_docs/telemetry.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry
title: "telemetry"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetry plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry']
---
import telemetryObj from './telemetry.devdocs.json';
diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx
index 9d40da84ce68f..2af3fecb0bdbb 100644
--- a/api_docs/telemetry_collection_manager.mdx
+++ b/api_docs/telemetry_collection_manager.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager
title: "telemetryCollectionManager"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionManager plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager']
---
import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json';
diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx
index 612688195bf6d..310868095e02b 100644
--- a/api_docs/telemetry_collection_xpack.mdx
+++ b/api_docs/telemetry_collection_xpack.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack
title: "telemetryCollectionXpack"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryCollectionXpack plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack']
---
import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json';
diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx
index dc441e4dc3794..bde4e1fa26213 100644
--- a/api_docs/telemetry_management_section.mdx
+++ b/api_docs/telemetry_management_section.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection
title: "telemetryManagementSection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the telemetryManagementSection plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection']
---
import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json';
diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx
index b03a5c30082be..6649db6849400 100644
--- a/api_docs/threat_intelligence.mdx
+++ b/api_docs/threat_intelligence.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence
title: "threatIntelligence"
image: https://source.unsplash.com/400x175/?github
description: API docs for the threatIntelligence plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence']
---
import threatIntelligenceObj from './threat_intelligence.devdocs.json';
diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx
index f147262a9d82e..4419699db323b 100644
--- a/api_docs/timelines.mdx
+++ b/api_docs/timelines.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines
title: "timelines"
image: https://source.unsplash.com/400x175/?github
description: API docs for the timelines plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines']
---
import timelinesObj from './timelines.devdocs.json';
diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx
index d83f2320df5c3..628c255d1b188 100644
--- a/api_docs/transform.mdx
+++ b/api_docs/transform.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform
title: "transform"
image: https://source.unsplash.com/400x175/?github
description: API docs for the transform plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform']
---
import transformObj from './transform.devdocs.json';
diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json
index 97ac8b566e066..957f8e44345a9 100644
--- a/api_docs/triggers_actions_ui.devdocs.json
+++ b/api_docs/triggers_actions_ui.devdocs.json
@@ -3854,7 +3854,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">[]; has: (id: string) => boolean; register: (objectType: ",
+ ">[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -3870,7 +3870,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/types.ts",
"deprecated": false,
@@ -3900,7 +3900,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -3908,7 +3908,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/types.ts",
"deprecated": false,
@@ -5215,7 +5215,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -5223,7 +5223,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/application/app.tsx",
"deprecated": false,
@@ -5269,7 +5269,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">[]; has: (id: string) => boolean; register: (objectType: ",
+ ">[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -5285,7 +5285,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/application/app.tsx",
"deprecated": false,
@@ -5303,9 +5303,9 @@
"AlertsTableConfigurationRegistry",
"; list: () => ",
"AlertsTableConfigurationRegistry",
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
"AlertsTableConfigurationRegistry",
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/application/app.tsx",
"deprecated": false,
@@ -5569,7 +5569,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -5577,7 +5577,7 @@
"section": "def-public.ActionTypeModel",
"text": "ActionTypeModel"
},
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/types.ts",
"deprecated": false,
@@ -5668,9 +5668,9 @@
"AlertsTableConfigurationRegistry",
"; list: () => ",
"AlertsTableConfigurationRegistry",
- "[]; has: (id: string) => boolean; register: (objectType: ",
+ "[]; register: (objectType: ",
"AlertsTableConfigurationRegistry",
- ") => void; }"
+ ") => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/types.ts",
"deprecated": false,
@@ -6004,7 +6004,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">[]; has: (id: string) => boolean; register: (objectType: ",
+ ">[]; register: (objectType: ",
{
"pluginId": "triggersActionsUi",
"scope": "public",
@@ -6020,7 +6020,7 @@
"section": "def-common.RuleTypeParams",
"text": "RuleTypeParams"
},
- ">) => void; }"
+ ">) => void; has: (id: string) => boolean; }"
],
"path": "x-pack/plugins/triggers_actions_ui/public/types.ts",
"deprecated": false,
diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx
index 03408359d7ec6..c6ad3886c12b0 100644
--- a/api_docs/triggers_actions_ui.mdx
+++ b/api_docs/triggers_actions_ui.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi
title: "triggersActionsUi"
image: https://source.unsplash.com/400x175/?github
description: API docs for the triggersActionsUi plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi']
---
import triggersActionsUiObj from './triggers_actions_ui.devdocs.json';
diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx
index 9402a78501065..a2cfa74cfd650 100644
--- a/api_docs/ui_actions.mdx
+++ b/api_docs/ui_actions.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions
title: "uiActions"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActions plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions']
---
import uiActionsObj from './ui_actions.devdocs.json';
diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx
index 20f94f0faa805..bb9a992413684 100644
--- a/api_docs/ui_actions_enhanced.mdx
+++ b/api_docs/ui_actions_enhanced.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced
title: "uiActionsEnhanced"
image: https://source.unsplash.com/400x175/?github
description: API docs for the uiActionsEnhanced plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced']
---
import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json';
diff --git a/api_docs/unified_field_list.devdocs.json b/api_docs/unified_field_list.devdocs.json
index 22e319c1b515a..c21a3c52f5e02 100644
--- a/api_docs/unified_field_list.devdocs.json
+++ b/api_docs/unified_field_list.devdocs.json
@@ -3560,7 +3560,7 @@
"section": "def-common.FieldFormatsRegistry",
"text": "FieldFormatsRegistry"
},
- ", \"register\" | \"init\"> & { deserialize: ",
+ ", \"init\" | \"register\"> & { deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx
index f472f2f2779ef..0e8df430367a3 100644
--- a/api_docs/unified_field_list.mdx
+++ b/api_docs/unified_field_list.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList
title: "unifiedFieldList"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedFieldList plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList']
---
import unifiedFieldListObj from './unified_field_list.devdocs.json';
diff --git a/api_docs/unified_histogram.devdocs.json b/api_docs/unified_histogram.devdocs.json
index f88fd244420f4..7550ec5192e72 100644
--- a/api_docs/unified_histogram.devdocs.json
+++ b/api_docs/unified_histogram.devdocs.json
@@ -745,7 +745,7 @@
"section": "def-common.FieldFormatsRegistry",
"text": "FieldFormatsRegistry"
},
- ", \"register\" | \"init\"> & { deserialize: ",
+ ", \"init\" | \"register\"> & { deserialize: ",
{
"pluginId": "fieldFormats",
"scope": "common",
diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx
index 9c7adbe221ec2..9ab0773517528 100644
--- a/api_docs/unified_histogram.mdx
+++ b/api_docs/unified_histogram.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram
title: "unifiedHistogram"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedHistogram plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram']
---
import unifiedHistogramObj from './unified_histogram.devdocs.json';
diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx
index de6f2a6345374..6d31cdbf6b69e 100644
--- a/api_docs/unified_search.mdx
+++ b/api_docs/unified_search.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch
title: "unifiedSearch"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch']
---
import unifiedSearchObj from './unified_search.devdocs.json';
diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx
index 44576f33ea6d2..6b324846fbb51 100644
--- a/api_docs/unified_search_autocomplete.mdx
+++ b/api_docs/unified_search_autocomplete.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete
title: "unifiedSearch.autocomplete"
image: https://source.unsplash.com/400x175/?github
description: API docs for the unifiedSearch.autocomplete plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete']
---
import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json';
diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx
index a72b17c554e7c..f0438b8d54d73 100644
--- a/api_docs/url_forwarding.mdx
+++ b/api_docs/url_forwarding.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding
title: "urlForwarding"
image: https://source.unsplash.com/400x175/?github
description: API docs for the urlForwarding plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding']
---
import urlForwardingObj from './url_forwarding.devdocs.json';
diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx
index 100dd1c69bc85..d4c77908e9162 100644
--- a/api_docs/usage_collection.mdx
+++ b/api_docs/usage_collection.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection
title: "usageCollection"
image: https://source.unsplash.com/400x175/?github
description: API docs for the usageCollection plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection']
---
import usageCollectionObj from './usage_collection.devdocs.json';
diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx
index 210252de48117..bba75c953766b 100644
--- a/api_docs/ux.mdx
+++ b/api_docs/ux.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux
title: "ux"
image: https://source.unsplash.com/400x175/?github
description: API docs for the ux plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux']
---
import uxObj from './ux.devdocs.json';
diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx
index e4017f4660815..d5785fa647c1d 100644
--- a/api_docs/vis_default_editor.mdx
+++ b/api_docs/vis_default_editor.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor
title: "visDefaultEditor"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visDefaultEditor plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor']
---
import visDefaultEditorObj from './vis_default_editor.devdocs.json';
diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx
index 45bd43356cbae..301bc3ea87a6a 100644
--- a/api_docs/vis_type_gauge.mdx
+++ b/api_docs/vis_type_gauge.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge
title: "visTypeGauge"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeGauge plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge']
---
import visTypeGaugeObj from './vis_type_gauge.devdocs.json';
diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx
index 2d9072e20fe53..274f2b0cdd702 100644
--- a/api_docs/vis_type_heatmap.mdx
+++ b/api_docs/vis_type_heatmap.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap
title: "visTypeHeatmap"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeHeatmap plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap']
---
import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json';
diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx
index cd6b496a46915..303568940f534 100644
--- a/api_docs/vis_type_pie.mdx
+++ b/api_docs/vis_type_pie.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie
title: "visTypePie"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypePie plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie']
---
import visTypePieObj from './vis_type_pie.devdocs.json';
diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx
index c0524f1ee6f0c..0a9b787d4a65e 100644
--- a/api_docs/vis_type_table.mdx
+++ b/api_docs/vis_type_table.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable
title: "visTypeTable"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTable plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable']
---
import visTypeTableObj from './vis_type_table.devdocs.json';
diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx
index ed63b542820dc..7bdb30db5dbe4 100644
--- a/api_docs/vis_type_timelion.mdx
+++ b/api_docs/vis_type_timelion.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion
title: "visTypeTimelion"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimelion plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion']
---
import visTypeTimelionObj from './vis_type_timelion.devdocs.json';
diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx
index b9bdf181ed0c0..4df03c3b1d319 100644
--- a/api_docs/vis_type_timeseries.mdx
+++ b/api_docs/vis_type_timeseries.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries
title: "visTypeTimeseries"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeTimeseries plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries']
---
import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json';
diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx
index 19245aaafdbb2..2ae8799970648 100644
--- a/api_docs/vis_type_vega.mdx
+++ b/api_docs/vis_type_vega.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega
title: "visTypeVega"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVega plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega']
---
import visTypeVegaObj from './vis_type_vega.devdocs.json';
diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx
index 339b7c13816b6..56a01202a9b99 100644
--- a/api_docs/vis_type_vislib.mdx
+++ b/api_docs/vis_type_vislib.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib
title: "visTypeVislib"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeVislib plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib']
---
import visTypeVislibObj from './vis_type_vislib.devdocs.json';
diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx
index b9e32973efedc..894c6fe49c6a7 100644
--- a/api_docs/vis_type_xy.mdx
+++ b/api_docs/vis_type_xy.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy
title: "visTypeXy"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visTypeXy plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy']
---
import visTypeXyObj from './vis_type_xy.devdocs.json';
diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx
index a2c3bd49900ab..d551e436f7742 100644
--- a/api_docs/visualizations.mdx
+++ b/api_docs/visualizations.mdx
@@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations
title: "visualizations"
image: https://source.unsplash.com/400x175/?github
description: API docs for the visualizations plugin
-date: 2023-04-17
+date: 2023-04-18
tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations']
---
import visualizationsObj from './visualizations.devdocs.json';
diff --git a/docs/index-custom-title-page.html b/docs/index-custom-title-page.html
index 87405c783a0a7..5d768eab3484e 100644
--- a/docs/index-custom-title-page.html
+++ b/docs/index-custom-title-page.html
@@ -45,6 +45,13 @@
-moz-columns: 2;
}
}
+ #guide h3.gtk {
+ margin-top: 0;
+}
+
+.mb-4, .my-4 {
+ margin-bottom: 0!important;
+}
@@ -63,53 +70,17 @@ Bring your data to life
- How-to videos
-
+ What's new
+ Release notes
+ Install
+
-Explore by Elastic solution
-
-
-
-Get to know Kibana
+Get to know Kibana
@@ -134,6 +105,28 @@
+
+
+
+
+ Install and upgrade
+
+
+
+
+
-
-
-
-
- Get organized
-
-
-
-
+
Explore by Elastic solution
+
+
View all Elastic docs
diff --git a/docs/settings/alert-action-settings.asciidoc b/docs/settings/alert-action-settings.asciidoc
index a2ac56be64ebf..7fa35c0df57d7 100644
--- a/docs/settings/alert-action-settings.asciidoc
+++ b/docs/settings/alert-action-settings.asciidoc
@@ -130,6 +130,9 @@ A list of allowed email domains which can be used with the email connector. When
WARNING: This feature is available in {kib} 7.17.4 and 8.3.0 onwards but is not supported in {kib} 8.0, 8.1 or 8.2. As such, this setting should be removed before upgrading from 7.17 to 8.0, 8.1 or 8.2. It is possible to configure the settings in 7.17.4 and then upgrade to 8.3.0 directly.
+`xpack.actions.enableFooterInEmail` {ess-icon}::
+A boolean value indicating that a footer with a relevant link should be added to emails sent as alerting actions. Default: true.
+
`xpack.actions.enabledActionTypes` {ess-icon}::
A list of action types that are enabled. It defaults to `[*]`, enabling all types. The names for built-in {kib} action types are prefixed with a `.` and include: `.email`, `.index`, `.jira`, `.opsgenie`, `.pagerduty`, `.resilient`, `.server-log`, `.servicenow`, .`servicenow-itom`, `.servicenow-sir`, `.slack`, `.swimlane`, `.teams`, `.tines`, `.torq`, `.xmatters`, and `.webhook`. An empty list `[]` will disable all action types.
+
diff --git a/examples/portable_dashboards_example/public/app.tsx b/examples/portable_dashboards_example/public/app.tsx
index 052c74bd9b61d..a99ecc6274795 100644
--- a/examples/portable_dashboards_example/public/app.tsx
+++ b/examples/portable_dashboards_example/public/app.tsx
@@ -6,11 +6,15 @@
* Side Public License, v 1.
*/
-import React from 'react';
import ReactDOM from 'react-dom';
+import React, { useMemo } from 'react';
+import { useAsync } from 'react-use/lib';
+import { Router, Redirect, Switch } from 'react-router-dom';
-import { EuiSpacer } from '@elastic/eui';
+import { Route } from '@kbn/shared-ux-router';
import { AppMountParameters } from '@kbn/core/public';
+import { EuiButton, EuiCallOut, EuiSpacer } from '@elastic/eui';
+import { DashboardListingTable } from '@kbn/dashboard-plugin/public';
import { KibanaPageTemplate } from '@kbn/shared-ux-page-kibana-template';
import { DualReduxExample } from './dual_redux_example';
@@ -20,17 +24,70 @@ import { StaticByReferenceExample } from './static_by_reference_example';
import { DynamicByReferenceExample } from './dynamically_add_panels_example';
import { DashboardWithControlsExample } from './dashboard_with_controls_example';
+const DASHBOARD_DEMO_PATH = '/dashboardDemo';
+const DASHBOARD_LIST_PATH = '/listingDemo';
+
export const renderApp = async (
{ data, dashboard }: PortableDashboardsExampleStartDeps,
- { element }: AppMountParameters
+ { element, history }: AppMountParameters
) => {
- const dataViews = await data.dataViews.find('kibana_sample_data_logs');
- const findDashboardsService = await dashboard.findDashboardsService();
- const logsSampleDashboardId = (await findDashboardsService?.findByTitle('[Logs] Web Traffic'))
- ?.id;
+ ReactDOM.render(
+
,
+ element
+ );
+ return () => ReactDOM.unmountComponentAtNode(element);
+};
+
+const PortableDashboardsDemos = ({
+ data,
+ dashboard,
+ history,
+}: {
+ data: PortableDashboardsExampleStartDeps['data'];
+ dashboard: PortableDashboardsExampleStartDeps['dashboard'];
+ history: AppMountParameters['history'];
+}) => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
- const examples =
- dataViews.length > 0 ? (
+const DashboardsDemo = ({
+ data,
+ history,
+ dashboard,
+}: {
+ history: AppMountParameters['history'];
+ data: PortableDashboardsExampleStartDeps['data'];
+ dashboard: PortableDashboardsExampleStartDeps['dashboard'];
+}) => {
+ const { loading, value: dataviewResults } = useAsync(async () => {
+ const dataViews = await data.dataViews.find('kibana_sample_data_logs');
+ const findDashboardsService = await dashboard.findDashboardsService();
+ const logsSampleDashboardId = (await findDashboardsService?.findByTitle('[Logs] Web Traffic'))
+ ?.id;
+ return { dataViews, logsSampleDashboardId };
+ }, []);
+
+ const usageDemos = useMemo(() => {
+ if (loading || !dataviewResults) return null;
+ if (dataviewResults?.dataViews.length === 0) {
+
{'Install web logs sample data to run the embeddable dashboard examples.'}
;
+ }
+ const { dataViews, logsSampleDashboardId } = dataviewResults;
+ return (
<>
@@ -42,16 +99,37 @@ export const renderApp = async (
>
- ) : (
-
{'Install web logs sample data to run the embeddable dashboard examples.'}
);
+ }, [dataviewResults, loading]);
- ReactDOM.render(
+ return (
-
- {examples}
- ,
- element
+
+
+ history.push(DASHBOARD_LIST_PATH)}>
+ View portable dashboard listing page
+
+
+ {usageDemos}
+
+
+ );
+};
+
+const PortableDashboardListingDemo = ({ history }: { history: AppMountParameters['history'] }) => {
+ return (
+
+ alert(`Here's where I would redirect you to ${dashboardId ?? 'a new Dashboard'}`)
+ }
+ getDashboardUrl={() => 'https://www.elastic.co/'}
+ >
+ history.push(DASHBOARD_DEMO_PATH)}>
+ Go back to usage demos
+
+
+
+
+
);
- return () => ReactDOM.unmountComponentAtNode(element);
};
diff --git a/examples/portable_dashboards_example/tsconfig.json b/examples/portable_dashboards_example/tsconfig.json
index 3b96a17c085bf..338fd93863aa5 100644
--- a/examples/portable_dashboards_example/tsconfig.json
+++ b/examples/portable_dashboards_example/tsconfig.json
@@ -25,6 +25,7 @@
"@kbn/embeddable-examples-plugin",
"@kbn/shared-ux-page-kibana-template",
"@kbn/shared-ux-utility",
- "@kbn/controls-plugin"
+ "@kbn/controls-plugin",
+ "@kbn/shared-ux-router"
]
}
diff --git a/fleet_packages.json b/fleet_packages.json
index ae7bdca17b4c6..e78e1fbe6451f 100644
--- a/fleet_packages.json
+++ b/fleet_packages.json
@@ -46,6 +46,6 @@
},
{
"name": "security_detection_engine",
- "version": "8.7.1"
+ "version": "8.7.2"
}
]
\ No newline at end of file
diff --git a/package.json b/package.json
index 83660bd976f88..460a4769ad09a 100644
--- a/package.json
+++ b/package.json
@@ -548,6 +548,7 @@
"@kbn/security-solution-storybook-config": "link:packages/security-solution/storybook/config",
"@kbn/security-test-endpoints-plugin": "link:x-pack/test/security_functional/plugins/test_endpoints",
"@kbn/securitysolution-autocomplete": "link:packages/kbn-securitysolution-autocomplete",
+ "@kbn/securitysolution-data-table": "link:x-pack/packages/kbn-securitysolution-data-table",
"@kbn/securitysolution-ecs": "link:packages/kbn-securitysolution-ecs",
"@kbn/securitysolution-es-utils": "link:packages/kbn-securitysolution-es-utils",
"@kbn/securitysolution-exception-list-components": "link:packages/kbn-securitysolution-exception-list-components",
diff --git a/packages/content-management/table_list/src/table_list_view.test.tsx b/packages/content-management/table_list/src/table_list_view.test.tsx
index 24ffc82eb0c51..62c83fb5b9454 100644
--- a/packages/content-management/table_list/src/table_list_view.test.tsx
+++ b/packages/content-management/table_list/src/table_list_view.test.tsx
@@ -66,6 +66,12 @@ const twoDaysAgoToString = new Date(twoDaysAgo.getTime()).toDateString();
const yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
const yesterdayToString = new Date(yesterday.getTime()).toDateString();
+const getActions = (testBed: TestBed) => ({
+ openSortSelect() {
+ testBed.find('tableSortSelectBtn').at(0).simulate('click');
+ },
+});
+
describe('TableListView', () => {
beforeAll(() => {
jest.useFakeTimers({ legacyFakeTimers: true });
@@ -306,6 +312,36 @@ describe('TableListView', () => {
expect(lastRowTitle).toBe('Item 19');
});
+ test('should allow changing the number of rows in the table', async () => {
+ let testBed: TestBed;
+
+ await act(async () => {
+ testBed = await setup({
+ initialPageSize,
+ findItems: jest.fn().mockResolvedValue({ total: hits.length, hits: [...hits] }),
+ });
+ });
+
+ const { component, table, find } = testBed!;
+ component.update();
+
+ let { tableCellsValues } = table.getMetaData('itemsInMemTable');
+ expect(tableCellsValues.length).toBe(requiredProps.initialPageSize);
+
+ // Changing the "Rows per page" also sends the "sort" column information and thus updates the sorting.
+ // We test that the "sort by" column has not changed before and after changing the number of rows
+ expect(find('tableSortSelectBtn').at(0).text()).toBe('Recently updated');
+
+ // Open the "Rows per page" drop down
+ find('tablePaginationPopoverButton').simulate('click');
+ find('tablePagination-10-rows').simulate('click');
+
+ ({ tableCellsValues } = table.getMetaData('itemsInMemTable'));
+ expect(tableCellsValues.length).toBe(10);
+
+ expect(find('tableSortSelectBtn').at(0).text()).toBe('Recently updated'); // Still the same
+ });
+
test('should navigate to page 2', async () => {
let testBed: TestBed;
@@ -350,12 +386,6 @@ describe('TableListView', () => {
}
);
- const getActions = (testBed: TestBed) => ({
- openSortSelect() {
- testBed.find('tableSortSelectBtn').at(0).simulate('click');
- },
- });
-
const hits: UserContentCommonSchema[] = [
{
id: '123',
diff --git a/packages/content-management/table_list/src/table_list_view.tsx b/packages/content-management/table_list/src/table_list_view.tsx
index f397b8f2d999c..1612649f80bda 100644
--- a/packages/content-management/table_list/src/table_list_view.tsx
+++ b/packages/content-management/table_list/src/table_list_view.tsx
@@ -218,6 +218,17 @@ const urlStateSerializer = (updated: {
return updatedQueryParams;
};
+const tableColumnMetadata = {
+ title: {
+ field: 'attributes.title',
+ name: 'Name, description, tags',
+ },
+ updatedAt: {
+ field: 'updatedAt',
+ name: 'Last updated',
+ },
+} as const;
+
function TableListViewComp
({
tableListTitle,
tableListDescription,
@@ -437,7 +448,7 @@ function TableListViewComp({
const tableColumns = useMemo(() => {
const columns: Array> = [
{
- field: 'attributes.title',
+ field: tableColumnMetadata.title.field,
name:
titleColumnName ??
i18n.translate('contentManagement.tableList.mainColumnName', {
@@ -471,7 +482,7 @@ function TableListViewComp({
if (hasUpdatedAtMetadata) {
columns.push({
- field: 'updatedAt',
+ field: tableColumnMetadata.updatedAt.field,
name: i18n.translate('contentManagement.tableList.lastUpdatedColumnTitle', {
defaultMessage: 'Last updated',
}),
@@ -630,8 +641,17 @@ function TableListViewComp({
} = {};
if (criteria.sort) {
+ // We need to serialise the field as the return either (1) the field _name_ (e.g. "Last updated")
+ // when changing the "Rows per page" select value or (2) the field _value_ (e.g. "updatedAt") when clicking the column title
+ let fieldSerialized: unknown = criteria.sort.field;
+ if (fieldSerialized === tableColumnMetadata.title.name) {
+ fieldSerialized = tableColumnMetadata.title.field;
+ } else if (fieldSerialized === tableColumnMetadata.updatedAt.name) {
+ fieldSerialized = tableColumnMetadata.updatedAt.field;
+ }
+
data.sort = {
- field: criteria.sort.field as SortColumnField,
+ field: fieldSerialized as SortColumnField,
direction: criteria.sort.direction,
};
}
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts
index 0120ecf75c797..0b5d750e57040 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.test.ts
@@ -522,4 +522,21 @@ describe('validateAndConvertAggregations', () => {
'"[aggName.cardinality.field] Invalid attribute path: alert.alert.actions.group"'
);
});
+
+ it('allows aggregations for root fields', () => {
+ const aggregations: AggsMap = {
+ types: {
+ terms: {
+ field: 'type',
+ },
+ },
+ };
+ expect(validateAndConvertAggregations(['foo'], aggregations, mockMappings)).toEqual({
+ types: {
+ terms: {
+ field: 'type',
+ },
+ },
+ });
+ });
});
diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts
index b3a6bbae5e956..c673f73d8d844 100644
--- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts
+++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/aggregations/validation.ts
@@ -18,6 +18,7 @@ import {
rewriteRootLevelAttribute,
} from './validation_utils';
import { aggregationSchemas } from './aggs_types';
+import { getRootFields } from '../included_fields';
const aggregationKeys = ['aggs', 'aggregations'];
@@ -226,6 +227,10 @@ const isAttributeValue = (fieldName: string, fieldValue: unknown): boolean => {
return attributeFields.includes(fieldName) && typeof fieldValue === 'string';
};
+const isRootField = (fieldName: string): boolean => {
+ return getRootFields().includes(fieldName);
+};
+
const validateAndRewriteAttributePath = (
attributePath: string,
{ allowedTypes, indexMapping, currentPath }: ValidationContext
@@ -236,5 +241,8 @@ const validateAndRewriteAttributePath = (
if (isObjectTypeAttribute(attributePath, indexMapping, allowedTypes)) {
return rewriteObjectTypeAttribute(attributePath);
}
+ if (isRootField(attributePath)) {
+ return attributePath;
+ }
throw new Error(`[${currentPath.join('.')}] Invalid attribute path: ${attributePath}`);
};
diff --git a/packages/core/ui-settings/core-ui-settings-common/index.ts b/packages/core/ui-settings/core-ui-settings-common/index.ts
index 3f94ad9799415..f04a41613f76f 100644
--- a/packages/core/ui-settings/core-ui-settings-common/index.ts
+++ b/packages/core/ui-settings/core-ui-settings-common/index.ts
@@ -13,3 +13,5 @@ export type {
UserProvidedValues,
UiSettingsScope,
} from './src/ui_settings';
+
+export { TIMEZONE_OPTIONS } from './src/timezones';
diff --git a/packages/core/ui-settings/core-ui-settings-common/src/timezones.ts b/packages/core/ui-settings/core-ui-settings-common/src/timezones.ts
new file mode 100644
index 0000000000000..f77d36ab0c227
--- /dev/null
+++ b/packages/core/ui-settings/core-ui-settings-common/src/timezones.ts
@@ -0,0 +1,17 @@
+/*
+ * 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 moment from 'moment-timezone';
+
+export const TIMEZONE_OPTIONS = [
+ ...moment.tz
+ .names()
+ // We need to filter out some time zones, that moment.js knows about, but Elasticsearch
+ // does not understand and would fail thus with a 400 bad request when using them.
+ .filter((tz) => !['America/Nuuk', 'EST', 'HST', 'ROC', 'MST'].includes(tz)),
+];
diff --git a/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts
index c13eae4965a54..947f7fbac11b7 100644
--- a/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts
+++ b/packages/core/ui-settings/core-ui-settings-server-internal/src/settings/date_formats.ts
@@ -9,20 +9,13 @@
import moment from 'moment-timezone';
import { schema } from '@kbn/config-schema';
import { i18n } from '@kbn/i18n';
-import type { UiSettingsParams } from '@kbn/core-ui-settings-common';
+import { UiSettingsParams, TIMEZONE_OPTIONS } from '@kbn/core-ui-settings-common';
export const getDateFormatSettings = (): Record => {
const weekdays = moment.weekdays().slice();
const [defaultWeekday] = weekdays;
- const timezones = [
- 'Browser',
- ...moment.tz
- .names()
- // We need to filter out some time zones, that moment.js knows about, but Elasticsearch
- // does not understand and would fail thus with a 400 bad request when using them.
- .filter((tz) => !['America/Nuuk', 'EST', 'HST', 'ROC', 'MST'].includes(tz)),
- ];
+ const timezones = ['Browser', ...TIMEZONE_OPTIONS];
return {
dateFormat: {
diff --git a/packages/kbn-alerts-as-data-utils/src/field_maps/ecs_field_map.ts b/packages/kbn-alerts-as-data-utils/src/field_maps/ecs_field_map.ts
index 9294a12b4ce50..81c95d2130018 100644
--- a/packages/kbn-alerts-as-data-utils/src/field_maps/ecs_field_map.ts
+++ b/packages/kbn-alerts-as-data-utils/src/field_maps/ecs_field_map.ts
@@ -9,8 +9,16 @@
import { EcsFlat } from '@kbn/ecs';
import { EcsMetadata, FieldMap } from './types';
+const EXCLUDED_TYPES = ['constant_keyword'];
+
export const ecsFieldMap: FieldMap = Object.keys(EcsFlat).reduce((acc, currKey) => {
const value: EcsMetadata = EcsFlat[currKey as keyof typeof EcsFlat];
+
+ // Exclude excluded types
+ if (EXCLUDED_TYPES.includes(value.type)) {
+ return acc;
+ }
+
return {
...acc,
[currKey]: {
diff --git a/packages/kbn-securitysolution-grouping/src/hooks/use_get_group_selector.tsx b/packages/kbn-securitysolution-grouping/src/hooks/use_get_group_selector.tsx
index 2ddf166306ef0..e3b1c45b2733d 100644
--- a/packages/kbn-securitysolution-grouping/src/hooks/use_get_group_selector.tsx
+++ b/packages/kbn-securitysolution-grouping/src/hooks/use_get_group_selector.tsx
@@ -7,13 +7,13 @@
*/
import type { FieldSpec } from '@kbn/data-views-plugin/common';
+import { METRIC_TYPE, UiCounterMetricType } from '@kbn/analytics';
import React, { useCallback, useEffect } from 'react';
-import { METRIC_TYPE, UiCounterMetricType } from '@kbn/analytics';
-import { GroupSelector, isNoneGroup } from '..';
import { groupActions, groupByIdSelector } from './state';
import type { GroupOption } from './types';
import { Action, defaultGroup, GroupMap } from './types';
+import { GroupSelector, isNoneGroup } from '..';
import { getTelemetryEvent } from '../telemetry/const';
export interface UseGetGroupSelectorArgs {
diff --git a/packages/kbn-securitysolution-list-utils/src/helpers/index.test.ts b/packages/kbn-securitysolution-list-utils/src/helpers/index.test.ts
index 31a5ba496647f..6e06731798cc5 100644
--- a/packages/kbn-securitysolution-list-utils/src/helpers/index.test.ts
+++ b/packages/kbn-securitysolution-list-utils/src/helpers/index.test.ts
@@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
-import { getMappingConflictsInfo } from '.';
+import { getMappingConflictsInfo, fieldSupportsMatches } from '.';
describe('Helpers', () => {
describe('getMappingConflictsInfo', () => {
@@ -143,4 +143,42 @@ describe('Helpers', () => {
]);
});
});
+
+ describe('fieldSupportsMatches', () => {
+ test('it returns true if esTypes is keyword', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['keyword'] })
+ ).toBeTruthy();
+ });
+
+ test('it returns true if one of the esTypes is kibana type string and another is not', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['keyword', 'object'] })
+ ).toBeTruthy();
+ });
+
+ test('it returns true if one of the esTypes is keyword', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['keyword', 'unmapped'] })
+ ).toBeTruthy();
+ });
+
+ test('it returns true if one of the esTypes is text', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['text', 'unmapped'] })
+ ).toBeTruthy();
+ });
+
+ test('it returns true if all of the esTypes is map to kibana type string', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['text', 'keyword'] })
+ ).toBeTruthy();
+ });
+
+ test('it returns false if none of the esTypes map to kibana type string', () => {
+ expect(
+ fieldSupportsMatches({ name: 'field', type: 'conflict', esTypes: ['bool', 'unmapped'] })
+ ).toBeFalsy();
+ });
+ });
});
diff --git a/packages/kbn-securitysolution-list-utils/src/helpers/index.ts b/packages/kbn-securitysolution-list-utils/src/helpers/index.ts
index 403b07c0ba058..42a442d7e3be1 100644
--- a/packages/kbn-securitysolution-list-utils/src/helpers/index.ts
+++ b/packages/kbn-securitysolution-list-utils/src/helpers/index.ts
@@ -35,6 +35,7 @@ import {
getDataViewFieldSubtypeNested,
isDataViewFieldSubtypeNested,
} from '@kbn/es-query';
+import { castEsToKbnFieldTypeName, KBN_FIELD_TYPES } from '@kbn/field-types';
import {
ALL_OPERATORS,
@@ -676,8 +677,13 @@ export const getEntryOnOperatorChange = (
}
};
-const fieldSupportsMatches = (field: DataViewFieldBase) => {
- return field.type === 'string';
+export const isKibanaStringType = (type: string) => {
+ const kbnFieldType = castEsToKbnFieldTypeName(type);
+ return kbnFieldType === KBN_FIELD_TYPES.STRING;
+};
+
+export const fieldSupportsMatches = (field: DataViewFieldBase) => {
+ return field.esTypes?.some(isKibanaStringType);
};
/**
diff --git a/packages/kbn-securitysolution-list-utils/src/types/index.ts b/packages/kbn-securitysolution-list-utils/src/types/index.ts
index ccd0ab68799bb..e73381fc2d151 100644
--- a/packages/kbn-securitysolution-list-utils/src/types/index.ts
+++ b/packages/kbn-securitysolution-list-utils/src/types/index.ts
@@ -26,6 +26,10 @@ import {
EXCEPTION_LIST_NAMESPACE_AGNOSTIC,
} from '@kbn/securitysolution-list-constants';
+export interface DataViewField extends DataViewFieldBase {
+ conflictDescriptions?: Record;
+}
+
export interface OperatorOption {
message: string;
value: string;
@@ -35,7 +39,7 @@ export interface OperatorOption {
export interface FormattedBuilderEntry {
id: string;
- field: DataViewFieldBase | undefined;
+ field: DataViewField | undefined;
operator: OperatorOption;
value: string | string[] | undefined;
nested: 'parent' | 'child' | undefined;
@@ -117,7 +121,3 @@ export const exceptionListAgnosticSavedObjectType = EXCEPTION_LIST_NAMESPACE_AGN
export type SavedObjectType =
| typeof EXCEPTION_LIST_NAMESPACE
| typeof EXCEPTION_LIST_NAMESPACE_AGNOSTIC;
-
-export interface DataViewField extends DataViewFieldBase {
- conflictDescriptions?: Record;
-}
diff --git a/packages/kbn-securitysolution-list-utils/tsconfig.json b/packages/kbn-securitysolution-list-utils/tsconfig.json
index c0aaedaafd845..d75eb1f98314c 100644
--- a/packages/kbn-securitysolution-list-utils/tsconfig.json
+++ b/packages/kbn-securitysolution-list-utils/tsconfig.json
@@ -16,7 +16,8 @@
"@kbn/securitysolution-io-ts-list-types",
"@kbn/securitysolution-io-ts-utils",
"@kbn/securitysolution-list-constants",
- "@kbn/securitysolution-utils"
+ "@kbn/securitysolution-utils",
+ "@kbn/field-types"
],
"exclude": [
"target/**/*",
diff --git a/renovate.json b/renovate.json
index ed5c6ee554f6a..bb1d043c30f48 100644
--- a/renovate.json
+++ b/renovate.json
@@ -270,7 +270,7 @@
{
"groupName": "TTY Output",
"matchPackageNames": ["xterm", "byte-size", "@types/byte-size"],
- "reviewers": ["team:awp-viz"],
+ "reviewers": ["team:sec-cloudnative-integrations"],
"matchBaseBranches": ["main"],
"labels": ["Team: AWP: Visualization", "release_note:skip", "backport:skip"],
"enabled": true,
diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts
index 541bfa046b0d3..09977e1c272ab 100644
--- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts
+++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts
@@ -123,7 +123,7 @@ describe('checking migration metadata changes on all registered SO types', () =>
"osquery-pack": "edd84b2c59ef36214ece0676706da8f22175c660",
"osquery-pack-asset": "18e08979d46ee7e5538f54c080aec4d8c58516ca",
"osquery-saved-query": "f5e4e303f65c7607248ea8b2672f1ee30e4fb15e",
- "query": "ec6000b775f06f81470df42d23f7a88cb31d64ba",
+ "query": "cfc049e1f0574fb4fdb2d653d7c10bdc970a2610",
"rules-settings": "9854495c3b54b16a6625fb250c35e5504da72266",
"sample-data-telemetry": "c38daf1a49ed24f2a4fb091e6e1e833fccf19935",
"search": "ed3a9b1681b57d69560909d51933fdf17576ea68",
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 8196e1f9f621e..6801686f90f57 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
@@ -205,6 +205,7 @@ kibana_vars=(
xpack.actions.allowedHosts
xpack.actions.customHostSettings
xpack.actions.email.domain_allowlist
+ xpack.actions.enableFooterInEmail
xpack.actions.enabledActionTypes
xpack.actions.maxResponseContentLength
xpack.actions.preconfigured
diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts
index 72c269ae3bd2d..28c22aad734d5 100644
--- a/src/dev/license_checker/config.ts
+++ b/src/dev/license_checker/config.ts
@@ -68,6 +68,7 @@ export const LICENSE_ALLOWED = [
'Nuclide software',
'Python-2.0',
'(Apache-2.0 AND MIT)',
+ 'BlueOak-1.0.0',
];
// The following list only applies to licenses that
diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts
index 3ad6852936aed..da762f8f55725 100644
--- a/src/dev/storybook/aliases.ts
+++ b/src/dev/storybook/aliases.ts
@@ -45,6 +45,7 @@ export const storybookAliases = {
presentation: 'src/plugins/presentation_util/storybook',
security_solution: 'x-pack/plugins/security_solution/.storybook',
security_solution_packages: 'packages/security-solution/storybook/config',
+ security_solution_data_table: 'x-pack/packages/kbn-securitysolution-data-table/.storybook',
shared_ux: 'packages/shared-ux/storybook/config',
threat_intelligence: 'x-pack/plugins/threat_intelligence/.storybook',
triggers_actions_ui: 'x-pack/plugins/triggers_actions_ui/.storybook',
diff --git a/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts b/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts
index d34bc51343cd3..e87a74d428f9a 100644
--- a/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts
+++ b/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts
@@ -101,136 +101,6 @@ export const getPanelTooOldErrorString = () =>
defaultMessage: 'Cannot load panels from a URL created in a version older than 7.3',
});
-/*
- Dashboard Listing Page
-*/
-export const discardConfirmStrings = {
- getDiscardTitle: () =>
- i18n.translate('dashboard.discardChangesConfirmModal.discardChangesTitle', {
- defaultMessage: 'Discard changes to dashboard?',
- }),
- getDiscardSubtitle: () =>
- i18n.translate('dashboard.discardChangesConfirmModal.discardChangesDescription', {
- defaultMessage: `Once you discard your changes, there's no getting them back.`,
- }),
- getDiscardConfirmButtonText: () =>
- i18n.translate('dashboard.discardChangesConfirmModal.confirmButtonLabel', {
- defaultMessage: 'Discard changes',
- }),
- getDiscardCancelButtonText: () =>
- i18n.translate('dashboard.discardChangesConfirmModal.cancelButtonLabel', {
- defaultMessage: 'Cancel',
- }),
-};
-
-export const createConfirmStrings = {
- getCreateTitle: () =>
- i18n.translate('dashboard.createConfirmModal.unsavedChangesTitle', {
- defaultMessage: 'New dashboard already in progress',
- }),
- getCreateSubtitle: () =>
- i18n.translate('dashboard.createConfirmModal.unsavedChangesSubtitle', {
- defaultMessage: 'Continue editing or start over with a blank dashboard.',
- }),
- getStartOverButtonText: () =>
- i18n.translate('dashboard.createConfirmModal.confirmButtonLabel', {
- defaultMessage: 'Start over',
- }),
- getContinueButtonText: () =>
- i18n.translate('dashboard.createConfirmModal.continueButtonLabel', {
- defaultMessage: 'Continue editing',
- }),
- getCancelButtonText: () =>
- i18n.translate('dashboard.createConfirmModal.cancelButtonLabel', {
- defaultMessage: 'Cancel',
- }),
-};
-
-export const dashboardListingErrorStrings = {
- getErrorDeletingDashboardToast: () =>
- i18n.translate('dashboard.deleteError.toastDescription', {
- defaultMessage: 'Error encountered while deleting dashboard',
- }),
-};
-
-export const dashboardListingTableStrings = {
- getEntityName: () =>
- i18n.translate('dashboard.listing.table.entityName', {
- defaultMessage: 'dashboard',
- }),
- getEntityNamePlural: () =>
- i18n.translate('dashboard.listing.table.entityNamePlural', {
- defaultMessage: 'dashboards',
- }),
- getTableListTitle: () => getDashboardPageTitle(),
-};
-
-export const noItemsStrings = {
- getReadonlyTitle: () =>
- i18n.translate('dashboard.listing.readonlyNoItemsTitle', {
- defaultMessage: 'No dashboards to view',
- }),
- getReadonlyBody: () =>
- i18n.translate('dashboard.listing.readonlyNoItemsBody', {
- defaultMessage: `There are no available dashboards. To change your permissions to view the dashboards in this space, contact your administrator.`,
- }),
- getReadEditTitle: () =>
- i18n.translate('dashboard.listing.createNewDashboard.title', {
- defaultMessage: 'Create your first dashboard',
- }),
- getReadEditInProgressTitle: () =>
- i18n.translate('dashboard.listing.createNewDashboard.inProgressTitle', {
- defaultMessage: 'Dashboard in progress',
- }),
- getReadEditDashboardDescription: () =>
- i18n.translate('dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription', {
- defaultMessage:
- 'Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.',
- }),
- getSampleDataLinkText: () =>
- i18n.translate('dashboard.listing.createNewDashboard.sampleDataInstallLinkText', {
- defaultMessage: `Add some sample data`,
- }),
- getCreateNewDashboardText: () =>
- i18n.translate('dashboard.listing.createNewDashboard.createButtonLabel', {
- defaultMessage: `Create a dashboard`,
- }),
-};
-
-export const dashboardUnsavedListingStrings = {
- getUnsavedChangesTitle: (plural = false) =>
- i18n.translate('dashboard.listing.unsaved.unsavedChangesTitle', {
- defaultMessage: 'You have unsaved changes in the following {dash}:',
- values: {
- dash: plural
- ? dashboardListingTableStrings.getEntityNamePlural()
- : dashboardListingTableStrings.getEntityName(),
- },
- }),
- getLoadingTitle: () =>
- i18n.translate('dashboard.listing.unsaved.loading', {
- defaultMessage: 'Loading',
- }),
- getEditAriaLabel: (title: string) =>
- i18n.translate('dashboard.listing.unsaved.editAria', {
- defaultMessage: 'Continue editing {title}',
- values: { title },
- }),
- getEditTitle: () =>
- i18n.translate('dashboard.listing.unsaved.editTitle', {
- defaultMessage: 'Continue editing',
- }),
- getDiscardAriaLabel: (title: string) =>
- i18n.translate('dashboard.listing.unsaved.discardAria', {
- defaultMessage: 'Discard changes to {title}',
- values: { title },
- }),
- getDiscardTitle: () =>
- i18n.translate('dashboard.listing.unsaved.discardTitle', {
- defaultMessage: 'Discard changes',
- }),
-};
-
/*
Share Modal
*/
diff --git a/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx b/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx
index 31c6caf84020a..6956ea7024a32 100644
--- a/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx
+++ b/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx
@@ -15,13 +15,8 @@ import { render, unmountComponentAtNode } from 'react-dom';
import { Switch, RouteComponentProps, HashRouter, Redirect } from 'react-router-dom';
import { Route } from '@kbn/shared-ux-router';
-import {
- TableListViewKibanaDependencies,
- TableListViewKibanaProvider,
-} from '@kbn/content-management-table-list';
-import { toMountPoint } from '@kbn/kibana-react-plugin/public';
+import { I18nProvider } from '@kbn/i18n-react';
import { AppMountParameters, CoreSetup } from '@kbn/core/public';
-import { I18nProvider, FormattedRelative } from '@kbn/i18n-react';
import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public';
import { createKbnUrlStateStorage, withNotifyOnErrors } from '@kbn/kibana-utils-plugin/public';
@@ -32,14 +27,13 @@ import {
LANDING_PAGE_PATH,
VIEW_DASHBOARD_URL,
} from '../dashboard_constants';
-import { DashboardListing } from './listing';
import { DashboardApp } from './dashboard_app';
import { pluginServices } from '../services/plugin_services';
-import { DashboardNoMatch } from './listing/dashboard_no_match';
+import { DashboardNoMatch } from './listing_page/dashboard_no_match';
import { createDashboardEditUrl } from '../dashboard_constants';
import { DashboardStart, DashboardStartDependencies } from '../plugin';
import { DashboardMountContext } from './hooks/dashboard_mount_context';
-import { DashboardApplicationService } from '../services/application/types';
+import { DashboardListingPage } from './listing_page/dashboard_listing_page';
import { dashboardReadonlyBadge, getDashboardPageTitle } from './_dashboard_app_strings';
import { DashboardEmbedSettings, DashboardMountContextProps, RedirectToProps } from './types';
@@ -57,25 +51,15 @@ export interface DashboardMountProps {
mountContext: DashboardMountContextProps;
}
-// because the type of `application.capabilities.advancedSettings` is so generic, the provider
-// requiring the `save` key to be part of it is causing type issues - so, creating a custom type
-type TableListViewApplicationService = DashboardApplicationService & {
- capabilities: { advancedSettings: { save: boolean } };
-};
-
export async function mountApp({ core, element, appUnMounted, mountContext }: DashboardMountProps) {
const {
- application,
chrome: { setBadge, docTitle, setHelpExtension },
dashboardCapabilities: { showWriteControls },
documentationLinks: { dashboardDocLink },
settings: { uiSettings },
- savedObjectsTagging,
data: dataStart,
notifications,
embeddable,
- overlays,
- http,
} = pluginServices.getServices();
let globalEmbedSettings: DashboardEmbedSettings | undefined;
@@ -140,7 +124,7 @@ export async function mountApp({ core, element, appUnMounted, mountContext }: Da
routerHistory = routeProps.history;
}
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/__snapshots__/dashboard_listing.test.tsx.snap b/src/plugins/dashboard/public/dashboard_app/listing/__snapshots__/dashboard_listing.test.tsx.snap
deleted file mode 100644
index 074697e980d1b..0000000000000
--- a/src/plugins/dashboard/public/dashboard_app/listing/__snapshots__/dashboard_listing.test.tsx.snap
+++ /dev/null
@@ -1,543 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`after fetch When given a title that matches multiple dashboards, filter on the title 1`] = `
-
-
- Create a dashboard
-
- }
- body={
-
-
- Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.
-
-
-
- Add some sample data
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
- Create your first dashboard
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter="search by title"
- tableListTitle="Dashboards"
- >
-
-
-
-`;
-
-exports[`after fetch initialFilter 1`] = `
-
-
- Create a dashboard
-
- }
- body={
-
-
- Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.
-
-
-
- Add some sample data
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
- Create your first dashboard
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter=""
- tableListTitle="Dashboards"
- >
-
-
-
-`;
-
-exports[`after fetch renders all table rows 1`] = `
-
-
- Create a dashboard
-
- }
- body={
-
-
- Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.
-
-
-
- Add some sample data
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
- Create your first dashboard
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter=""
- tableListTitle="Dashboards"
- >
-
-
-
-`;
-
-exports[`after fetch renders call to action when no dashboards exist 1`] = `
-
-
- Create a dashboard
-
- }
- body={
-
-
- Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.
-
-
-
- Add some sample data
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
- Create your first dashboard
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter=""
- tableListTitle="Dashboards"
- >
-
-
-
-`;
-
-exports[`after fetch renders call to action with continue when no dashboards exist but one is in progress 1`] = `
-
-
-
-
- Discard changes
-
-
-
-
- Continue editing
-
-
-
- }
- body={
-
-
- Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.
-
-
- }
- iconType="dashboardApp"
- title={
-
- Dashboard in progress
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter=""
- tableListTitle="Dashboards"
- >
-
-
-
-`;
-
-exports[`after fetch showWriteControls 1`] = `
-
-
- There are no available dashboards. To change your permissions to view the dashboards in this space, contact your administrator.
-
- }
- iconType="glasses"
- title={
-
- No dashboards to view
-
- }
- />
- }
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- getDetailViewLink={[Function]}
- headingId="dashboardListingHeading"
- id="dashboard"
- initialFilter=""
- tableListTitle="Dashboards"
- >
-
-
-
-`;
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.test.tsx b/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.test.tsx
deleted file mode 100644
index e638fbca60f05..0000000000000
--- a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.test.tsx
+++ /dev/null
@@ -1,212 +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 { mount, ReactWrapper } from 'enzyme';
-import { act } from 'react-dom/test-utils';
-import {
- TableListViewKibanaDependencies,
- TableListViewKibanaProvider,
-} from '@kbn/content-management-table-list';
-import { I18nProvider, FormattedRelative } from '@kbn/i18n-react';
-import { createKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
-
-import { pluginServices } from '../../services/plugin_services';
-import { DashboardListing, DashboardListingProps } from './dashboard_listing';
-import { DASHBOARD_PANELS_UNSAVED_ID } from '../../services/dashboard_session_storage/dashboard_session_storage_service';
-
-jest.mock('react-router-dom', () => {
- return {
- useLocation: () => ({
- search: '',
- }),
- useHistory: () => ({
- push: () => undefined,
- }),
- };
-});
-
-function makeDefaultProps(): DashboardListingProps {
- return {
- redirectTo: jest.fn(),
- kbnUrlStateStorage: createKbnUrlStateStorage(),
- };
-}
-
-function mountWith({ props: incomingProps }: { props?: DashboardListingProps }) {
- const props = incomingProps ?? makeDefaultProps();
- const wrappingComponent: React.FC<{
- children: React.ReactNode;
- }> = ({ children }) => {
- const { application, notifications, savedObjectsTagging, http, overlays } =
- pluginServices.getServices();
-
- return (
-
- ({
- searchTerm: '',
- tagReferences: [],
- tagReferencesToExclude: [],
- }),
- components: {
- TagList: () => null,
- },
- },
- } as unknown as TableListViewKibanaDependencies['savedObjectsTagging']
- }
- FormattedRelative={FormattedRelative}
- toMountPoint={() => () => () => undefined}
- >
- {children}
-
-
- );
- };
- const component = mount(, { wrappingComponent });
- return { component, props };
-}
-
-describe('after fetch', () => {
- test('renders all table rows', async () => {
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({}));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- });
-
- test('renders call to action when no dashboards exist', async () => {
- (
- pluginServices.getServices().dashboardSavedObject.findDashboards.findSavedObjects as jest.Mock
- ).mockResolvedValue({
- total: 0,
- hits: [],
- });
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({}));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- });
-
- test('renders call to action with continue when no dashboards exist but one is in progress', async () => {
- pluginServices.getServices().dashboardSessionStorage.getDashboardIdsWithUnsavedChanges = jest
- .fn()
- .mockReturnValueOnce([DASHBOARD_PANELS_UNSAVED_ID])
- .mockReturnValue(['dashboardUnsavedOne', 'dashboardUnsavedTwo']);
- (
- pluginServices.getServices().dashboardSavedObject.findDashboards.findSavedObjects as jest.Mock
- ).mockResolvedValue({
- total: 0,
- hits: [],
- });
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({}));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- });
-
- test('initialFilter', async () => {
- const props = makeDefaultProps();
- props.initialFilter = 'testFilter';
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({}));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- });
-
- test('When given a title that matches multiple dashboards, filter on the title', async () => {
- const title = 'search by title';
- const props = makeDefaultProps();
- props.title = title;
- (
- pluginServices.getServices().dashboardSavedObject.findDashboards.findByTitle as jest.Mock
- ).mockResolvedValue(undefined);
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({ props }));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- expect(props.redirectTo).not.toHaveBeenCalled();
- });
-
- test('When given a title that matches one dashboard, redirect to dashboard', async () => {
- const title = 'search by title';
- const props = makeDefaultProps();
- props.title = title;
- (
- pluginServices.getServices().dashboardSavedObject.findDashboards.findByTitle as jest.Mock
- ).mockResolvedValue({ id: 'you_found_me' });
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({ props }));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(props.redirectTo).toHaveBeenCalledWith({
- destination: 'dashboard',
- id: 'you_found_me',
- useReplace: true,
- });
- });
-
- test('showWriteControls', async () => {
- pluginServices.getServices().dashboardCapabilities.showWriteControls = false;
-
- let component: ReactWrapper;
-
- await act(async () => {
- ({ component } = mountWith({}));
- });
-
- // Ensure the state changes are reflected
- component!.update();
- expect(component!).toMatchSnapshot();
- });
-});
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx b/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx
deleted file mode 100644
index d857e640c04da..0000000000000
--- a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_listing.tsx
+++ /dev/null
@@ -1,383 +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 useMount from 'react-use/lib/useMount';
-import { FormattedMessage } from '@kbn/i18n-react';
-import React, { useCallback, useEffect, useMemo, useState } from 'react';
-
-import {
- EuiLink,
- EuiButton,
- EuiEmptyPrompt,
- EuiFlexGroup,
- EuiFlexItem,
- EuiButtonEmpty,
-} from '@elastic/eui';
-import { useExecutionContext } from '@kbn/kibana-react-plugin/public';
-import { syncGlobalQueryStateWithUrl } from '@kbn/data-plugin/public';
-import type { IKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
-import type { SavedObjectsFindOptionsReference, SimpleSavedObject } from '@kbn/core/public';
-import { TableListView, type UserContentCommonSchema } from '@kbn/content-management-table-list';
-
-import { reportPerformanceMetricEvent } from '@kbn/ebt-tools';
-import { SAVED_OBJECT_DELETE_TIME, SAVED_OBJECT_LOADED_TIME } from '../../dashboard_constants';
-
-import {
- getDashboardBreadcrumb,
- dashboardListingTableStrings,
- noItemsStrings,
- dashboardUnsavedListingStrings,
- getNewDashboardTitle,
- dashboardListingErrorStrings,
-} from '../_dashboard_app_strings';
-import {
- DashboardAppNoDataPage,
- isDashboardAppInNoDataState,
-} from '../no_data/dashboard_app_no_data';
-import { DashboardRedirect } from '../types';
-import { DashboardAttributes } from '../../../common';
-import { pluginServices } from '../../services/plugin_services';
-import { DashboardUnsavedListing } from './dashboard_unsaved_listing';
-import { DASHBOARD_SAVED_OBJECT_TYPE } from '../../dashboard_constants';
-import { getDashboardListItemLink } from './get_dashboard_list_item_link';
-import { confirmCreateWithUnsaved, confirmDiscardUnsavedChanges } from './confirm_overlays';
-import { DASHBOARD_PANELS_UNSAVED_ID } from '../../services/dashboard_session_storage/dashboard_session_storage_service';
-
-const SAVED_OBJECTS_LIMIT_SETTING = 'savedObjects:listingLimit';
-const SAVED_OBJECTS_PER_PAGE_SETTING = 'savedObjects:perPage';
-
-interface DashboardSavedObjectUserContent extends UserContentCommonSchema {
- attributes: {
- title: string;
- description?: string;
- timeRestore: boolean;
- };
-}
-
-const toTableListViewSavedObject = (
- savedObject: SimpleSavedObject
-): DashboardSavedObjectUserContent => {
- const { title, description, timeRestore } = savedObject.attributes;
- return {
- type: 'dashboard',
- id: savedObject.id,
- updatedAt: savedObject.updatedAt!,
- references: savedObject.references,
- attributes: {
- title,
- description,
- timeRestore,
- },
- };
-};
-
-export interface DashboardListingProps {
- kbnUrlStateStorage: IKbnUrlStateStorage;
- redirectTo: DashboardRedirect;
- initialFilter?: string;
- title?: string;
-}
-
-export const DashboardListing = ({
- title,
- redirectTo,
- initialFilter,
- kbnUrlStateStorage,
-}: DashboardListingProps) => {
- const {
- application,
- data: { query },
- dashboardSessionStorage,
- settings: { uiSettings },
- notifications: { toasts },
- chrome: { setBreadcrumbs },
- coreContext: { executionContext },
- dashboardCapabilities: { showWriteControls },
- dashboardSavedObject: { findDashboards, savedObjectsClient },
- } = pluginServices.getServices();
-
- const [showNoDataPage, setShowNoDataPage] = useState(false);
- useMount(() => {
- (async () => setShowNoDataPage(await isDashboardAppInNoDataState()))();
- });
-
- const [unsavedDashboardIds, setUnsavedDashboardIds] = useState(
- dashboardSessionStorage.getDashboardIdsWithUnsavedChanges()
- );
-
- useExecutionContext(executionContext, {
- type: 'application',
- page: 'list',
- });
-
- // Set breadcrumbs useEffect
- useEffect(() => {
- setBreadcrumbs([
- {
- text: getDashboardBreadcrumb(),
- },
- ]);
- }, [setBreadcrumbs]);
-
- useEffect(() => {
- // syncs `_g` portion of url with query services
- const { stop: stopSyncingQueryServiceStateWithUrl } = syncGlobalQueryStateWithUrl(
- query,
- kbnUrlStateStorage
- );
- if (title) {
- findDashboards.findByTitle(title).then((result) => {
- if (!result) return;
- redirectTo({
- destination: 'dashboard',
- id: result.id,
- useReplace: true,
- });
- });
- }
-
- return () => {
- stopSyncingQueryServiceStateWithUrl();
- };
- }, [title, redirectTo, query, kbnUrlStateStorage, findDashboards]);
-
- const listingLimit = uiSettings.get(SAVED_OBJECTS_LIMIT_SETTING);
- const initialPageSize = uiSettings.get(SAVED_OBJECTS_PER_PAGE_SETTING);
- const defaultFilter = title ? `${title}` : '';
-
- const createItem = useCallback(() => {
- if (!dashboardSessionStorage.dashboardHasUnsavedEdits()) {
- redirectTo({ destination: 'dashboard' });
- } else {
- confirmCreateWithUnsaved(
- () => {
- dashboardSessionStorage.clearState();
- redirectTo({ destination: 'dashboard' });
- },
- () => redirectTo({ destination: 'dashboard' })
- );
- }
- }, [dashboardSessionStorage, redirectTo]);
-
- const emptyPrompt = useMemo(() => {
- if (!showWriteControls) {
- return (
-
- {noItemsStrings.getReadonlyTitle()}
-
- }
- body={{noItemsStrings.getReadonlyBody()}
}
- />
- );
- }
-
- const isEditingFirstDashboard = unsavedDashboardIds.length === 1;
-
- const emptyAction = isEditingFirstDashboard ? (
-
-
-
- confirmDiscardUnsavedChanges(() => {
- dashboardSessionStorage.clearState(DASHBOARD_PANELS_UNSAVED_ID);
- setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges());
- })
- }
- data-test-subj="discardDashboardPromptButton"
- aria-label={dashboardUnsavedListingStrings.getDiscardAriaLabel(getNewDashboardTitle())}
- >
- {dashboardUnsavedListingStrings.getDiscardTitle()}
-
-
-
- redirectTo({ destination: 'dashboard' })}
- data-test-subj="newItemButton"
- aria-label={dashboardUnsavedListingStrings.getEditAriaLabel(getNewDashboardTitle())}
- >
- {dashboardUnsavedListingStrings.getEditTitle()}
-
-
-
- ) : (
-
- {noItemsStrings.getCreateNewDashboardText()}
-
- );
-
- return (
-
- {isEditingFirstDashboard
- ? noItemsStrings.getReadEditInProgressTitle()
- : noItemsStrings.getReadEditTitle()}
-
- }
- body={
- <>
- {noItemsStrings.getReadEditDashboardDescription()}
- {!isEditingFirstDashboard && (
-
-
- application.navigateToApp('home', {
- path: '#/tutorial_directory/sampleData',
- })
- }
- >
- {noItemsStrings.getSampleDataLinkText()}
-
- ),
- }}
- />
-
- )}
- >
- }
- actions={emptyAction}
- />
- );
- }, [
- redirectTo,
- createItem,
- application,
- showWriteControls,
- unsavedDashboardIds,
- dashboardSessionStorage,
- ]);
-
- const fetchItems = useCallback(
- (
- searchTerm: string,
- {
- references,
- referencesToExclude,
- }: {
- references?: SavedObjectsFindOptionsReference[];
- referencesToExclude?: SavedObjectsFindOptionsReference[];
- } = {}
- ) => {
- const searchStartTime = window.performance.now();
- return findDashboards
- .findSavedObjects({
- search: searchTerm,
- size: listingLimit,
- hasReference: references,
- hasNoReference: referencesToExclude,
- })
- .then(({ total, hits }) => {
- const searchEndTime = window.performance.now();
- const searchDuration = searchEndTime - searchStartTime;
- reportPerformanceMetricEvent(pluginServices.getServices().analytics, {
- eventName: SAVED_OBJECT_LOADED_TIME,
- duration: searchDuration,
- meta: {
- saved_object_type: DASHBOARD_SAVED_OBJECT_TYPE,
- },
- });
- return {
- total,
- hits: hits.map(toTableListViewSavedObject),
- };
- });
- },
- [findDashboards, listingLimit]
- );
-
- const deleteItems = useCallback(
- async (dashboardsToDelete: Array<{ id: string }>) => {
- try {
- const deleteStartTime = window.performance.now();
-
- await Promise.all(
- dashboardsToDelete.map(({ id }) => {
- dashboardSessionStorage.clearState(id);
- return savedObjectsClient.delete(DASHBOARD_SAVED_OBJECT_TYPE, id);
- })
- );
-
- const deleteDuration = window.performance.now() - deleteStartTime;
- reportPerformanceMetricEvent(pluginServices.getServices().analytics, {
- eventName: SAVED_OBJECT_DELETE_TIME,
- duration: deleteDuration,
- meta: {
- saved_object_type: DASHBOARD_SAVED_OBJECT_TYPE,
- total: dashboardsToDelete.length,
- },
- });
- } catch (error) {
- toasts.addError(error, {
- title: dashboardListingErrorStrings.getErrorDeletingDashboardToast(),
- });
- }
-
- setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges());
- },
- [savedObjectsClient, dashboardSessionStorage, toasts]
- );
-
- const editItem = useCallback(
- ({ id }: { id: string | undefined }) =>
- redirectTo({ destination: 'dashboard', id, editMode: true }),
- [redirectTo]
- );
-
- const { getEntityName, getTableListTitle, getEntityNamePlural } = dashboardListingTableStrings;
- return (
- <>
- {showNoDataPage && (
- setShowNoDataPage(false)} />
- )}
- {!showNoDataPage && (
-
- createItem={!showWriteControls ? undefined : createItem}
- deleteItems={!showWriteControls ? undefined : deleteItems}
- initialPageSize={initialPageSize}
- editItem={!showWriteControls ? undefined : editItem}
- initialFilter={initialFilter ?? defaultFilter}
- headingId="dashboardListingHeading"
- findItems={fetchItems}
- entityNamePlural={getEntityNamePlural()}
- tableListTitle={getTableListTitle()}
- entityName={getEntityName()}
- {...{
- emptyPrompt,
- listingLimit,
- }}
- id="dashboard"
- getDetailViewLink={({ id, attributes: { timeRestore } }) =>
- getDashboardListItemLink(kbnUrlStateStorage, id, timeRestore)
- }
- >
-
- setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges())
- }
- />
-
- )}
- >
- );
-};
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/index.ts b/src/plugins/dashboard/public/dashboard_app/listing/index.ts
deleted file mode 100644
index 5b3caaf4d391b..0000000000000
--- a/src/plugins/dashboard/public/dashboard_app/listing/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 { DashboardListing } from './dashboard_listing';
diff --git a/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.test.tsx b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.test.tsx
new file mode 100644
index 0000000000000..3ae147d9e7e40
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.test.tsx
@@ -0,0 +1,127 @@
+/*
+ * 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 { act } from 'react-dom/test-utils';
+import { mount, ReactWrapper } from 'enzyme';
+import { I18nProvider } from '@kbn/i18n-react';
+import { createKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
+
+import { pluginServices } from '../../services/plugin_services';
+import { DashboardListingPage, DashboardListingPageProps } from './dashboard_listing_page';
+
+// Mock child components. The Dashboard listing page mostly passes down props to shared UX components which are tested in their own packages.
+import { DashboardListing } from '../../dashboard_listing/dashboard_listing';
+jest.mock('../../dashboard_listing/dashboard_listing', () => {
+ return {
+ __esModule: true,
+ DashboardListing: jest.fn().mockReturnValue(null),
+ };
+});
+
+import { DashboardAppNoDataPage } from '../no_data/dashboard_app_no_data';
+jest.mock('../no_data/dashboard_app_no_data', () => {
+ const originalModule = jest.requireActual('../no_data/dashboard_app_no_data');
+ return {
+ __esModule: true,
+ ...originalModule,
+ DashboardAppNoDataPage: jest.fn().mockReturnValue(null),
+ };
+});
+
+function makeDefaultProps(): DashboardListingPageProps {
+ return {
+ redirectTo: jest.fn(),
+ kbnUrlStateStorage: createKbnUrlStateStorage(),
+ };
+}
+
+function mountWith({ props: incomingProps }: { props?: DashboardListingPageProps }) {
+ const props = incomingProps ?? makeDefaultProps();
+ const wrappingComponent: React.FC<{
+ children: React.ReactNode;
+ }> = ({ children }) => {
+ return {children};
+ };
+ const component = mount(, { wrappingComponent });
+ return { component, props };
+}
+
+test('renders analytics no data page when the user has no data view', async () => {
+ pluginServices.getServices().data.dataViews.hasData.hasUserDataView = jest
+ .fn()
+ .mockResolvedValue(false);
+
+ let component: ReactWrapper;
+ await act(async () => {
+ ({ component } = mountWith({}));
+ });
+ component!.update();
+ expect(DashboardAppNoDataPage).toHaveBeenCalled();
+});
+
+test('initialFilter is passed through if title is not provided', async () => {
+ const props = makeDefaultProps();
+ props.initialFilter = 'filterPassThrough';
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({ props }));
+ });
+
+ component!.update();
+ expect(DashboardListing).toHaveBeenCalledWith(
+ expect.objectContaining({ initialFilter: 'filterPassThrough' }),
+ expect.any(Object) // react context
+ );
+});
+
+test('When given a title that matches multiple dashboards, filter on the title', async () => {
+ const title = 'search by title';
+ const props = makeDefaultProps();
+ props.title = title;
+
+ (
+ pluginServices.getServices().dashboardSavedObject.findDashboards.findByTitle as jest.Mock
+ ).mockResolvedValue(undefined);
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({ props }));
+ });
+ component!.update();
+
+ expect(props.redirectTo).not.toHaveBeenCalled();
+ expect(DashboardListing).toHaveBeenCalledWith(
+ expect.objectContaining({ initialFilter: 'search by title' }),
+ expect.any(Object) // react context
+ );
+});
+
+test('When given a title that matches one dashboard, redirect to dashboard', async () => {
+ const title = 'search by title';
+ const props = makeDefaultProps();
+ props.title = title;
+ (
+ pluginServices.getServices().dashboardSavedObject.findDashboards.findByTitle as jest.Mock
+ ).mockResolvedValue({ id: 'you_found_me' });
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({ props }));
+ });
+ component!.update();
+ expect(props.redirectTo).toHaveBeenCalledWith({
+ destination: 'dashboard',
+ id: 'you_found_me',
+ useReplace: true,
+ });
+});
diff --git a/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.tsx b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.tsx
new file mode 100644
index 0000000000000..9e46bb1c3cabe
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_listing_page.tsx
@@ -0,0 +1,107 @@
+/*
+ * 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, { useEffect, useState } from 'react';
+
+import { ViewMode } from '@kbn/embeddable-plugin/public';
+import { syncGlobalQueryStateWithUrl } from '@kbn/data-plugin/public';
+import type { IKbnUrlStateStorage } from '@kbn/kibana-utils-plugin/public';
+
+import {
+ DashboardAppNoDataPage,
+ isDashboardAppInNoDataState,
+} from '../no_data/dashboard_app_no_data';
+import { DashboardRedirect } from '../types';
+import { pluginServices } from '../../services/plugin_services';
+import { getDashboardBreadcrumb } from '../_dashboard_app_strings';
+import { getDashboardListItemLink } from './get_dashboard_list_item_link';
+import { DashboardListing } from '../../dashboard_listing/dashboard_listing';
+
+export interface DashboardListingPageProps {
+ kbnUrlStateStorage: IKbnUrlStateStorage;
+ redirectTo: DashboardRedirect;
+ initialFilter?: string;
+ title?: string;
+}
+
+export const DashboardListingPage = ({
+ title,
+ redirectTo,
+ initialFilter,
+ kbnUrlStateStorage,
+}: DashboardListingPageProps) => {
+ const {
+ data: { query },
+ chrome: { setBreadcrumbs },
+ dashboardSavedObject: { findDashboards },
+ } = pluginServices.getServices();
+
+ const [showNoDataPage, setShowNoDataPage] = useState(false);
+ useEffect(() => {
+ let isMounted = true;
+ (async () => {
+ const isInNoDataState = await isDashboardAppInNoDataState();
+ if (isInNoDataState && isMounted) setShowNoDataPage(true);
+ })();
+ return () => {
+ isMounted = false;
+ };
+ }, []);
+
+ useEffect(() => {
+ setBreadcrumbs([
+ {
+ text: getDashboardBreadcrumb(),
+ },
+ ]);
+ }, [setBreadcrumbs]);
+
+ useEffect(() => {
+ // syncs `_g` portion of url with query services
+ const { stop: stopSyncingQueryServiceStateWithUrl } = syncGlobalQueryStateWithUrl(
+ query,
+ kbnUrlStateStorage
+ );
+ if (title) {
+ findDashboards.findByTitle(title).then((result) => {
+ if (!result) return;
+ redirectTo({
+ destination: 'dashboard',
+ id: result.id,
+ useReplace: true,
+ });
+ });
+ }
+
+ return () => {
+ stopSyncingQueryServiceStateWithUrl();
+ };
+ }, [title, redirectTo, query, kbnUrlStateStorage, findDashboards]);
+
+ const titleFilter = title ? `${title}` : '';
+
+ return (
+ <>
+ {showNoDataPage && (
+ setShowNoDataPage(false)} />
+ )}
+ {!showNoDataPage && (
+ {
+ redirectTo({ destination: 'dashboard', id, editMode: viewMode === ViewMode.EDIT });
+ }}
+ getDashboardUrl={(id, timeRestore) => {
+ return getDashboardListItemLink(kbnUrlStateStorage, id, timeRestore);
+ }}
+ />
+ )}
+ >
+ );
+};
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_no_match.tsx b/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx
similarity index 100%
rename from src/plugins/dashboard/public/dashboard_app/listing/dashboard_no_match.tsx
rename to src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/get_dashboard_list_item_link.test.ts b/src/plugins/dashboard/public/dashboard_app/listing_page/get_dashboard_list_item_link.test.ts
similarity index 100%
rename from src/plugins/dashboard/public/dashboard_app/listing/get_dashboard_list_item_link.test.ts
rename to src/plugins/dashboard/public/dashboard_app/listing_page/get_dashboard_list_item_link.test.ts
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/get_dashboard_list_item_link.ts b/src/plugins/dashboard/public/dashboard_app/listing_page/get_dashboard_list_item_link.ts
similarity index 100%
rename from src/plugins/dashboard/public/dashboard_app/listing/get_dashboard_list_item_link.ts
rename to src/plugins/dashboard/public/dashboard_app/listing_page/get_dashboard_list_item_link.ts
diff --git a/src/plugins/dashboard/public/dashboard_app/top_nav/use_dashboard_menu_items.tsx b/src/plugins/dashboard/public/dashboard_app/top_nav/use_dashboard_menu_items.tsx
index 645aa42ec918d..b548d2e39afc5 100644
--- a/src/plugins/dashboard/public/dashboard_app/top_nav/use_dashboard_menu_items.tsx
+++ b/src/plugins/dashboard/public/dashboard_app/top_nav/use_dashboard_menu_items.tsx
@@ -19,8 +19,8 @@ import { ShowShareModal } from './share/show_share_modal';
import { pluginServices } from '../../services/plugin_services';
import { CHANGE_CHECK_DEBOUNCE } from '../../dashboard_constants';
import { SaveDashboardReturn } from '../../services/dashboard_saved_object/types';
+import { confirmDiscardUnsavedChanges } from '../../dashboard_listing/confirm_overlays';
import { useDashboardContainerContext } from '../../dashboard_container/dashboard_container_context';
-import { confirmDiscardUnsavedChanges } from '../listing/confirm_overlays';
export const useDashboardMenuItems = ({
redirectTo,
diff --git a/src/plugins/dashboard/public/dashboard_listing/_dashboard_listing_strings.ts b/src/plugins/dashboard/public/dashboard_listing/_dashboard_listing_strings.ts
new file mode 100644
index 0000000000000..df036a01fcf95
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/_dashboard_listing_strings.ts
@@ -0,0 +1,144 @@
+/*
+ * 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 const dashboardListingErrorStrings = {
+ getErrorDeletingDashboardToast: () =>
+ i18n.translate('dashboard.deleteError.toastDescription', {
+ defaultMessage: 'Error encountered while deleting dashboard',
+ }),
+};
+
+export const getNewDashboardTitle = () =>
+ i18n.translate('dashboard.listing.newDashboardTitle', {
+ defaultMessage: 'New Dashboard',
+ });
+
+export const dashboardListingTableStrings = {
+ getEntityName: () =>
+ i18n.translate('dashboard.listing.table.entityName', {
+ defaultMessage: 'dashboard',
+ }),
+ getEntityNamePlural: () =>
+ i18n.translate('dashboard.listing.table.entityNamePlural', {
+ defaultMessage: 'dashboards',
+ }),
+ getTableListTitle: () =>
+ i18n.translate('dashboard.listing.tableListTitle', {
+ defaultMessage: 'Dashboards',
+ }),
+};
+
+export const noItemsStrings = {
+ getReadonlyTitle: () =>
+ i18n.translate('dashboard.listing.readonlyNoItemsTitle', {
+ defaultMessage: 'No dashboards to view',
+ }),
+ getReadonlyBody: () =>
+ i18n.translate('dashboard.listing.readonlyNoItemsBody', {
+ defaultMessage: `There are no available dashboards. To change your permissions to view the dashboards in this space, contact your administrator.`,
+ }),
+ getReadEditTitle: () =>
+ i18n.translate('dashboard.listing.createNewDashboard.title', {
+ defaultMessage: 'Create your first dashboard',
+ }),
+ getReadEditInProgressTitle: () =>
+ i18n.translate('dashboard.listing.createNewDashboard.inProgressTitle', {
+ defaultMessage: 'Dashboard in progress',
+ }),
+ getReadEditDashboardDescription: () =>
+ i18n.translate('dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription', {
+ defaultMessage:
+ 'Analyze all of your Elastic data in one place by creating a dashboard and adding visualizations.',
+ }),
+ getSampleDataLinkText: () =>
+ i18n.translate('dashboard.listing.createNewDashboard.sampleDataInstallLinkText', {
+ defaultMessage: `Add some sample data`,
+ }),
+ getCreateNewDashboardText: () =>
+ i18n.translate('dashboard.listing.createNewDashboard.createButtonLabel', {
+ defaultMessage: `Create a dashboard`,
+ }),
+};
+
+export const dashboardUnsavedListingStrings = {
+ getUnsavedChangesTitle: (plural = false) =>
+ i18n.translate('dashboard.listing.unsaved.unsavedChangesTitle', {
+ defaultMessage: 'You have unsaved changes in the following {dash}:',
+ values: {
+ dash: plural
+ ? dashboardListingTableStrings.getEntityNamePlural()
+ : dashboardListingTableStrings.getEntityName(),
+ },
+ }),
+ getLoadingTitle: () =>
+ i18n.translate('dashboard.listing.unsaved.loading', {
+ defaultMessage: 'Loading',
+ }),
+ getEditAriaLabel: (title: string) =>
+ i18n.translate('dashboard.listing.unsaved.editAria', {
+ defaultMessage: 'Continue editing {title}',
+ values: { title },
+ }),
+ getEditTitle: () =>
+ i18n.translate('dashboard.listing.unsaved.editTitle', {
+ defaultMessage: 'Continue editing',
+ }),
+ getDiscardAriaLabel: (title: string) =>
+ i18n.translate('dashboard.listing.unsaved.discardAria', {
+ defaultMessage: 'Discard changes to {title}',
+ values: { title },
+ }),
+ getDiscardTitle: () =>
+ i18n.translate('dashboard.listing.unsaved.discardTitle', {
+ defaultMessage: 'Discard changes',
+ }),
+};
+
+export const discardConfirmStrings = {
+ getDiscardTitle: () =>
+ i18n.translate('dashboard.discardChangesConfirmModal.discardChangesTitle', {
+ defaultMessage: 'Discard changes to dashboard?',
+ }),
+ getDiscardSubtitle: () =>
+ i18n.translate('dashboard.discardChangesConfirmModal.discardChangesDescription', {
+ defaultMessage: `Once you discard your changes, there's no getting them back.`,
+ }),
+ getDiscardConfirmButtonText: () =>
+ i18n.translate('dashboard.discardChangesConfirmModal.confirmButtonLabel', {
+ defaultMessage: 'Discard changes',
+ }),
+ getDiscardCancelButtonText: () =>
+ i18n.translate('dashboard.discardChangesConfirmModal.cancelButtonLabel', {
+ defaultMessage: 'Cancel',
+ }),
+};
+
+export const createConfirmStrings = {
+ getCreateTitle: () =>
+ i18n.translate('dashboard.createConfirmModal.unsavedChangesTitle', {
+ defaultMessage: 'New dashboard already in progress',
+ }),
+ getCreateSubtitle: () =>
+ i18n.translate('dashboard.createConfirmModal.unsavedChangesSubtitle', {
+ defaultMessage: 'Continue editing or start over with a blank dashboard.',
+ }),
+ getStartOverButtonText: () =>
+ i18n.translate('dashboard.createConfirmModal.confirmButtonLabel', {
+ defaultMessage: 'Start over',
+ }),
+ getContinueButtonText: () =>
+ i18n.translate('dashboard.createConfirmModal.continueButtonLabel', {
+ defaultMessage: 'Continue editing',
+ }),
+ getCancelButtonText: () =>
+ i18n.translate('dashboard.createConfirmModal.cancelButtonLabel', {
+ defaultMessage: 'Cancel',
+ }),
+};
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/confirm_overlays.tsx b/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx
similarity index 96%
rename from src/plugins/dashboard/public/dashboard_app/listing/confirm_overlays.tsx
rename to src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx
index b8d6f436c38ba..03027cda242b9 100644
--- a/src/plugins/dashboard/public/dashboard_app/listing/confirm_overlays.tsx
+++ b/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx
@@ -22,8 +22,8 @@ import {
} from '@elastic/eui';
import { toMountPoint } from '@kbn/kibana-react-plugin/public';
-import { pluginServices } from '../../services/plugin_services';
-import { createConfirmStrings, discardConfirmStrings } from '../_dashboard_app_strings';
+import { pluginServices } from '../services/plugin_services';
+import { createConfirmStrings, discardConfirmStrings } from './_dashboard_listing_strings';
export type DiscardOrKeepSelection = 'cancel' | 'discard' | 'keep';
diff --git a/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.test.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.test.tsx
new file mode 100644
index 0000000000000..383b51fbd65fa
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.test.tsx
@@ -0,0 +1,105 @@
+/*
+ * 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 { act } from 'react-dom/test-utils';
+import { mount, ReactWrapper } from 'enzyme';
+import { I18nProvider } from '@kbn/i18n-react';
+
+import { pluginServices } from '../services/plugin_services';
+import { DashboardListing, DashboardListingProps } from './dashboard_listing';
+
+/**
+ * Mock Table List view. This dashboard component is a wrapper around the shared UX table List view. We
+ * need to ensure we're passing down the correct props, but the table list view itself doesn't need to be rendered
+ * in our tests because it is covered in its package.
+ */
+import { TableListView } from '@kbn/content-management-table-list';
+// import { TableListViewKibanaProvider } from '@kbn/content-management-table-list';
+jest.mock('@kbn/content-management-table-list', () => {
+ const originalModule = jest.requireActual('@kbn/content-management-table-list');
+ return {
+ __esModule: true,
+ ...originalModule,
+ TableListViewKibanaProvider: jest.fn().mockImplementation(({ children }) => {
+ return <>{children}>;
+ }),
+ TableListView: jest.fn().mockReturnValue(null),
+ };
+});
+
+function makeDefaultProps(): DashboardListingProps {
+ return {
+ goToDashboard: jest.fn(),
+ getDashboardUrl: jest.fn(),
+ };
+}
+
+function mountWith({ props: incomingProps }: { props?: Partial }) {
+ const props = { ...makeDefaultProps(), ...incomingProps };
+ const wrappingComponent: React.FC<{
+ children: React.ReactNode;
+ }> = ({ children }) => {
+ return {children};
+ };
+ const component = mount(, { wrappingComponent });
+ return { component, props };
+}
+
+test('initial filter is passed through', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = false;
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({ props: { initialFilter: 'kibanana' } }));
+ });
+ component!.update();
+ expect(TableListView).toHaveBeenCalledWith(
+ expect.objectContaining({ initialFilter: 'kibanana' }),
+ expect.any(Object) // react context
+ );
+});
+
+test('when showWriteControls is true, table list view is passed editing functions', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = true;
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({}));
+ });
+ component!.update();
+ expect(TableListView).toHaveBeenCalledWith(
+ expect.objectContaining({
+ createItem: expect.any(Function),
+ deleteItems: expect.any(Function),
+ editItem: expect.any(Function),
+ }),
+ expect.any(Object) // react context
+ );
+});
+
+test('when showWriteControls is false, table list view is not passed editing functions', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = false;
+
+ let component: ReactWrapper;
+
+ await act(async () => {
+ ({ component } = mountWith({}));
+ });
+ component!.update();
+ expect(TableListView).toHaveBeenCalledWith(
+ expect.objectContaining({
+ createItem: undefined,
+ deleteItems: undefined,
+ editItem: undefined,
+ }),
+ expect.any(Object) // react context
+ );
+});
diff --git a/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx
new file mode 100644
index 0000000000000..8572356687fd6
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx
@@ -0,0 +1,264 @@
+/*
+ * 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 { FormattedRelative, I18nProvider } from '@kbn/i18n-react';
+import React, { PropsWithChildren, useCallback, useState } from 'react';
+
+import {
+ TableListView,
+ TableListViewKibanaDependencies,
+ TableListViewKibanaProvider,
+ type UserContentCommonSchema,
+} from '@kbn/content-management-table-list';
+import { ViewMode } from '@kbn/embeddable-plugin/public';
+import { reportPerformanceMetricEvent } from '@kbn/ebt-tools';
+import { toMountPoint, useExecutionContext } from '@kbn/kibana-react-plugin/public';
+import type { SavedObjectsFindOptionsReference, SimpleSavedObject } from '@kbn/core/public';
+
+import {
+ SAVED_OBJECT_DELETE_TIME,
+ SAVED_OBJECT_LOADED_TIME,
+ DASHBOARD_SAVED_OBJECT_TYPE,
+} from '../dashboard_constants';
+import {
+ dashboardListingTableStrings,
+ dashboardListingErrorStrings,
+} from './_dashboard_listing_strings';
+import { DashboardAttributes } from '../../common';
+import { pluginServices } from '../services/plugin_services';
+import { confirmCreateWithUnsaved } from './confirm_overlays';
+import { DashboardUnsavedListing } from './dashboard_unsaved_listing';
+import { DashboardApplicationService } from '../services/application/types';
+import { DashboardListingEmptyPrompt } from './dashboard_listing_empty_prompt';
+
+// because the type of `application.capabilities.advancedSettings` is so generic, the provider
+// requiring the `save` key to be part of it is causing type issues - so, creating a custom type
+type TableListViewApplicationService = DashboardApplicationService & {
+ capabilities: { advancedSettings: { save: boolean } };
+};
+
+const SAVED_OBJECTS_LIMIT_SETTING = 'savedObjects:listingLimit';
+const SAVED_OBJECTS_PER_PAGE_SETTING = 'savedObjects:perPage';
+
+interface DashboardSavedObjectUserContent extends UserContentCommonSchema {
+ attributes: {
+ title: string;
+ description?: string;
+ timeRestore: boolean;
+ };
+}
+
+const toTableListViewSavedObject = (
+ savedObject: SimpleSavedObject
+): DashboardSavedObjectUserContent => {
+ const { title, description, timeRestore } = savedObject.attributes;
+ return {
+ type: 'dashboard',
+ id: savedObject.id,
+ updatedAt: savedObject.updatedAt!,
+ references: savedObject.references,
+ attributes: {
+ title,
+ description,
+ timeRestore,
+ },
+ };
+};
+
+export type DashboardListingProps = PropsWithChildren<{
+ initialFilter?: string;
+ useSessionStorageIntegration?: boolean;
+ goToDashboard: (dashboardId?: string, viewMode?: ViewMode) => void;
+ getDashboardUrl: (dashboardId: string, usesTimeRestore: boolean) => string;
+}>;
+
+export const DashboardListing = ({
+ children,
+ initialFilter,
+ goToDashboard,
+ getDashboardUrl,
+ useSessionStorageIntegration,
+}: DashboardListingProps) => {
+ const {
+ application,
+ notifications,
+ overlays,
+ http,
+ savedObjectsTagging,
+ dashboardSessionStorage,
+ settings: { uiSettings },
+ notifications: { toasts },
+ coreContext: { executionContext },
+ dashboardCapabilities: { showWriteControls },
+ dashboardSavedObject: { findDashboards, savedObjectsClient },
+ } = pluginServices.getServices();
+
+ const [unsavedDashboardIds, setUnsavedDashboardIds] = useState(
+ dashboardSessionStorage.getDashboardIdsWithUnsavedChanges()
+ );
+
+ useExecutionContext(executionContext, {
+ type: 'application',
+ page: 'list',
+ });
+
+ const listingLimit = uiSettings.get(SAVED_OBJECTS_LIMIT_SETTING);
+ const initialPageSize = uiSettings.get(SAVED_OBJECTS_PER_PAGE_SETTING);
+
+ const createItem = useCallback(() => {
+ if (useSessionStorageIntegration && dashboardSessionStorage.dashboardHasUnsavedEdits()) {
+ confirmCreateWithUnsaved(() => {
+ dashboardSessionStorage.clearState();
+ goToDashboard();
+ }, goToDashboard);
+ return;
+ }
+ goToDashboard();
+ }, [dashboardSessionStorage, goToDashboard, useSessionStorageIntegration]);
+
+ const fetchItems = useCallback(
+ (
+ searchTerm: string,
+ {
+ references,
+ referencesToExclude,
+ }: {
+ references?: SavedObjectsFindOptionsReference[];
+ referencesToExclude?: SavedObjectsFindOptionsReference[];
+ } = {}
+ ) => {
+ const searchStartTime = window.performance.now();
+ return findDashboards
+ .findSavedObjects({
+ search: searchTerm,
+ size: listingLimit,
+ hasReference: references,
+ hasNoReference: referencesToExclude,
+ })
+ .then(({ total, hits }) => {
+ const searchEndTime = window.performance.now();
+ const searchDuration = searchEndTime - searchStartTime;
+ reportPerformanceMetricEvent(pluginServices.getServices().analytics, {
+ eventName: SAVED_OBJECT_LOADED_TIME,
+ duration: searchDuration,
+ meta: {
+ saved_object_type: DASHBOARD_SAVED_OBJECT_TYPE,
+ },
+ });
+ return {
+ total,
+ hits: hits.map(toTableListViewSavedObject),
+ };
+ });
+ },
+ [findDashboards, listingLimit]
+ );
+
+ const deleteItems = useCallback(
+ async (dashboardsToDelete: Array<{ id: string }>) => {
+ try {
+ const deleteStartTime = window.performance.now();
+
+ await Promise.all(
+ dashboardsToDelete.map(({ id }) => {
+ dashboardSessionStorage.clearState(id);
+ return savedObjectsClient.delete(DASHBOARD_SAVED_OBJECT_TYPE, id);
+ })
+ );
+
+ const deleteDuration = window.performance.now() - deleteStartTime;
+ reportPerformanceMetricEvent(pluginServices.getServices().analytics, {
+ eventName: SAVED_OBJECT_DELETE_TIME,
+ duration: deleteDuration,
+ meta: {
+ saved_object_type: DASHBOARD_SAVED_OBJECT_TYPE,
+ total: dashboardsToDelete.length,
+ },
+ });
+ } catch (error) {
+ toasts.addError(error, {
+ title: dashboardListingErrorStrings.getErrorDeletingDashboardToast(),
+ });
+ }
+
+ setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges());
+ },
+ [savedObjectsClient, dashboardSessionStorage, toasts]
+ );
+
+ const editItem = useCallback(
+ ({ id }: { id: string | undefined }) => goToDashboard(id, ViewMode.EDIT),
+ [goToDashboard]
+ );
+ const emptyPrompt = (
+
+ );
+
+ const { getEntityName, getTableListTitle, getEntityNamePlural } = dashboardListingTableStrings;
+
+ return (
+
+
+
+ getDetailViewLink={({ id, attributes: { timeRestore } }) =>
+ getDashboardUrl(id, timeRestore)
+ }
+ deleteItems={!showWriteControls ? undefined : deleteItems}
+ createItem={!showWriteControls ? undefined : createItem}
+ editItem={!showWriteControls ? undefined : editItem}
+ entityNamePlural={getEntityNamePlural()}
+ tableListTitle={getTableListTitle()}
+ headingId="dashboardListingHeading"
+ initialPageSize={initialPageSize}
+ initialFilter={initialFilter}
+ entityName={getEntityName()}
+ listingLimit={listingLimit}
+ emptyPrompt={emptyPrompt}
+ findItems={fetchItems}
+ id="dashboard"
+ >
+ <>
+ {children}
+
+ setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges())
+ }
+ />
+ >
+
+
+
+ );
+};
+
+// eslint-disable-next-line import/no-default-export
+export default DashboardListing;
diff --git a/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.test.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.test.tsx
new file mode 100644
index 0000000000000..886d43a1db6d9
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.test.tsx
@@ -0,0 +1,111 @@
+/*
+ * 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 { act } from 'react-dom/test-utils';
+import { mount, ReactWrapper } from 'enzyme';
+
+import { I18nProvider } from '@kbn/i18n-react';
+
+import {
+ DashboardListingEmptyPrompt,
+ DashboardListingEmptyPromptProps,
+} from './dashboard_listing_empty_prompt';
+import { pluginServices } from '../services/plugin_services';
+import { confirmDiscardUnsavedChanges } from './confirm_overlays';
+
+jest.mock('./confirm_overlays', () => {
+ const originalModule = jest.requireActual('./confirm_overlays');
+ return {
+ __esModule: true,
+ ...originalModule,
+ confirmDiscardUnsavedChanges: jest.fn(),
+ };
+});
+
+const makeDefaultProps = (): DashboardListingEmptyPromptProps => ({
+ createItem: jest.fn(),
+ unsavedDashboardIds: [],
+ goToDashboard: jest.fn(),
+ setUnsavedDashboardIds: jest.fn(),
+ useSessionStorageIntegration: true,
+});
+
+function mountWith({
+ props: incomingProps,
+}: {
+ props?: Partial;
+}) {
+ const props = { ...makeDefaultProps(), ...incomingProps };
+ const wrappingComponent: React.FC<{
+ children: React.ReactNode;
+ }> = ({ children }) => {
+ return {children};
+ };
+ const component = mount(, { wrappingComponent });
+ return { component, props };
+}
+
+test('renders readonly empty prompt when showWriteControls is off', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = false;
+
+ let component: ReactWrapper;
+ await act(async () => {
+ ({ component } = mountWith({}));
+ });
+
+ component!.update();
+ expect(component!.find('EuiLink').length).toBe(0);
+});
+
+test('renders empty prompt with link when showWriteControls is on', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = true;
+
+ let component: ReactWrapper;
+ await act(async () => {
+ ({ component } = mountWith({}));
+ });
+
+ component!.update();
+ expect(component!.find('EuiLink').length).toBe(1);
+});
+
+test('renders continue button when no dashboards exist but one is in progress', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = true;
+ let component: ReactWrapper;
+ let props: DashboardListingEmptyPromptProps;
+ await act(async () => {
+ ({ component, props } = mountWith({
+ props: { unsavedDashboardIds: ['newDashboard'], useSessionStorageIntegration: true },
+ }));
+ });
+ component!.update();
+ await act(async () => {
+ // EuiButton is used for the Continue button
+ const continueButton = component!.find('EuiButton');
+ expect(continueButton.length).toBe(1);
+ continueButton.find('button').simulate('click');
+ });
+ expect(props!.goToDashboard).toHaveBeenCalled();
+});
+
+test('renders discard button when no dashboards exist but one is in progress', async () => {
+ pluginServices.getServices().dashboardCapabilities.showWriteControls = true;
+ let component: ReactWrapper;
+ await act(async () => {
+ ({ component } = mountWith({
+ props: { unsavedDashboardIds: ['coolId'], useSessionStorageIntegration: true },
+ }));
+ });
+ component!.update();
+ await act(async () => {
+ // EuiButtonEmpty is used for the discard button
+ component!.find('EuiButtonEmpty').simulate('click');
+ });
+ expect(confirmDiscardUnsavedChanges).toHaveBeenCalled();
+});
diff --git a/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.tsx
new file mode 100644
index 0000000000000..a518c520bcbd8
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_listing_empty_prompt.tsx
@@ -0,0 +1,157 @@
+/*
+ * 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 {
+ EuiLink,
+ EuiButton,
+ EuiFlexItem,
+ EuiFlexGroup,
+ EuiButtonEmpty,
+ EuiEmptyPrompt,
+} from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n-react';
+import React, { useCallback, useMemo } from 'react';
+
+import {
+ noItemsStrings,
+ getNewDashboardTitle,
+ dashboardUnsavedListingStrings,
+} from './_dashboard_listing_strings';
+import { DashboardListingProps } from './dashboard_listing';
+import { pluginServices } from '../services/plugin_services';
+import { confirmDiscardUnsavedChanges } from './confirm_overlays';
+import { DASHBOARD_PANELS_UNSAVED_ID } from '../services/dashboard_session_storage/dashboard_session_storage_service';
+
+export interface DashboardListingEmptyPromptProps {
+ createItem: () => void;
+ unsavedDashboardIds: string[];
+ goToDashboard: DashboardListingProps['goToDashboard'];
+ setUnsavedDashboardIds: React.Dispatch>;
+ useSessionStorageIntegration: DashboardListingProps['useSessionStorageIntegration'];
+}
+
+export const DashboardListingEmptyPrompt = ({
+ useSessionStorageIntegration,
+ setUnsavedDashboardIds,
+ unsavedDashboardIds,
+ goToDashboard,
+ createItem,
+}: DashboardListingEmptyPromptProps) => {
+ const {
+ application,
+ dashboardSessionStorage,
+ dashboardCapabilities: { showWriteControls },
+ } = pluginServices.getServices();
+
+ const isEditingFirstDashboard = useMemo(
+ () => useSessionStorageIntegration && unsavedDashboardIds.length === 1,
+ [unsavedDashboardIds.length, useSessionStorageIntegration]
+ );
+
+ const getEmptyAction = useCallback(() => {
+ if (!isEditingFirstDashboard) {
+ return (
+
+ {noItemsStrings.getCreateNewDashboardText()}
+
+ );
+ }
+ return (
+
+
+
+ confirmDiscardUnsavedChanges(() => {
+ dashboardSessionStorage.clearState(DASHBOARD_PANELS_UNSAVED_ID);
+ setUnsavedDashboardIds(dashboardSessionStorage.getDashboardIdsWithUnsavedChanges());
+ })
+ }
+ data-test-subj="discardDashboardPromptButton"
+ aria-label={dashboardUnsavedListingStrings.getDiscardAriaLabel(getNewDashboardTitle())}
+ >
+ {dashboardUnsavedListingStrings.getDiscardTitle()}
+
+
+
+ goToDashboard()}
+ aria-label={dashboardUnsavedListingStrings.getEditAriaLabel(getNewDashboardTitle())}
+ >
+ {dashboardUnsavedListingStrings.getEditTitle()}
+
+
+
+ );
+ }, [
+ dashboardSessionStorage,
+ isEditingFirstDashboard,
+ setUnsavedDashboardIds,
+ goToDashboard,
+ createItem,
+ ]);
+
+ if (!showWriteControls) {
+ return (
+
+ {noItemsStrings.getReadonlyTitle()}
+
+ }
+ body={{noItemsStrings.getReadonlyBody()}
}
+ />
+ );
+ }
+
+ return (
+
+ {isEditingFirstDashboard
+ ? noItemsStrings.getReadEditInProgressTitle()
+ : noItemsStrings.getReadEditTitle()}
+
+ }
+ body={
+ <>
+ {noItemsStrings.getReadEditDashboardDescription()}
+ {!isEditingFirstDashboard && (
+
+
+ application.navigateToApp('home', {
+ path: '#/tutorial_directory/sampleData',
+ })
+ }
+ >
+ {noItemsStrings.getSampleDataLinkText()}
+
+ ),
+ }}
+ />
+
+ )}
+ >
+ }
+ actions={getEmptyAction()}
+ />
+ );
+};
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.test.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.test.tsx
similarity index 88%
rename from src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.test.tsx
rename to src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.test.tsx
index 34a78c5181b92..6ae8050b0df51 100644
--- a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.test.tsx
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.test.tsx
@@ -12,18 +12,19 @@ import { I18nProvider } from '@kbn/i18n-react';
import { waitFor } from '@testing-library/react';
import { findTestSubject } from '@elastic/eui/lib/test';
+import { pluginServices } from '../services/plugin_services';
import { DashboardUnsavedListing, DashboardUnsavedListingProps } from './dashboard_unsaved_listing';
-import { DASHBOARD_PANELS_UNSAVED_ID } from '../../services/dashboard_session_storage/dashboard_session_storage_service';
-import { pluginServices } from '../../services/plugin_services';
+import { DASHBOARD_PANELS_UNSAVED_ID } from '../services/dashboard_session_storage/dashboard_session_storage_service';
+import { ViewMode } from '@kbn/embeddable-plugin/public';
const makeDefaultProps = (): DashboardUnsavedListingProps => ({
- redirectTo: jest.fn(),
+ goToDashboard: jest.fn(),
unsavedDashboardIds: ['dashboardUnsavedOne', 'dashboardUnsavedTwo', 'dashboardUnsavedThree'],
refreshUnsavedDashboards: jest.fn(),
});
-function mountWith({ props: incomingProps }: { props?: DashboardUnsavedListingProps }) {
- const props = incomingProps ?? makeDefaultProps();
+function mountWith({ props: incomingProps }: { props?: Partial }) {
+ const props = { ...makeDefaultProps(), ...incomingProps };
const wrappingComponent: React.FC<{
children: React.ReactNode;
}> = ({ children }) => {
@@ -62,11 +63,7 @@ describe('Unsaved listing', () => {
expect(getEditButton().length).toEqual(1);
});
getEditButton().simulate('click');
- expect(props.redirectTo).toHaveBeenCalledWith({
- destination: 'dashboard',
- id: 'dashboardUnsavedOne',
- editMode: true,
- });
+ expect(props.goToDashboard).toHaveBeenCalledWith('dashboardUnsavedOne', ViewMode.EDIT);
});
it('Redirects to new dashboard when continue editing clicked', async () => {
@@ -79,11 +76,7 @@ describe('Unsaved listing', () => {
expect(getEditButton().length).toBe(1);
});
getEditButton().simulate('click');
- expect(props.redirectTo).toHaveBeenCalledWith({
- destination: 'dashboard',
- id: undefined,
- editMode: true,
- });
+ expect(props.goToDashboard).toHaveBeenCalledWith(undefined, ViewMode.EDIT);
});
it('Shows a warning then clears changes when delete unsaved changes is pressed', async () => {
diff --git a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.tsx b/src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.tsx
similarity index 92%
rename from src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.tsx
rename to src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.tsx
index 2cf39d8ccb0d0..f4b7f91db77d3 100644
--- a/src/plugins/dashboard/public/dashboard_app/listing/dashboard_unsaved_listing.tsx
+++ b/src/plugins/dashboard/public/dashboard_listing/dashboard_unsaved_listing.tsx
@@ -17,12 +17,13 @@ import {
} from '@elastic/eui';
import React, { useCallback, useEffect, useState } from 'react';
-import type { DashboardRedirect } from '../types';
-import { DashboardAttributes } from '../../../common';
-import { pluginServices } from '../../services/plugin_services';
+import { ViewMode } from '@kbn/embeddable-plugin/public';
+
+import { DashboardAttributes } from '../../common';
+import { pluginServices } from '../services/plugin_services';
import { confirmDiscardUnsavedChanges } from './confirm_overlays';
-import { dashboardUnsavedListingStrings, getNewDashboardTitle } from '../_dashboard_app_strings';
-import { DASHBOARD_PANELS_UNSAVED_ID } from '../../services/dashboard_session_storage/dashboard_session_storage_service';
+import { dashboardUnsavedListingStrings, getNewDashboardTitle } from './_dashboard_listing_strings';
+import { DASHBOARD_PANELS_UNSAVED_ID } from '../services/dashboard_session_storage/dashboard_session_storage_service';
const DashboardUnsavedItem = ({
id,
@@ -104,13 +105,13 @@ interface UnsavedItemMap {
}
export interface DashboardUnsavedListingProps {
- refreshUnsavedDashboards: () => void;
- redirectTo: DashboardRedirect;
unsavedDashboardIds: string[];
+ refreshUnsavedDashboards: () => void;
+ goToDashboard: (dashboardId?: string, viewMode?: ViewMode) => void;
}
export const DashboardUnsavedListing = ({
- redirectTo,
+ goToDashboard,
unsavedDashboardIds,
refreshUnsavedDashboards,
}: DashboardUnsavedListingProps) => {
@@ -123,9 +124,9 @@ export const DashboardUnsavedListing = ({
const onOpen = useCallback(
(id?: string) => {
- redirectTo({ destination: 'dashboard', id, editMode: true });
+ goToDashboard(id, ViewMode.EDIT);
},
- [redirectTo]
+ [goToDashboard]
);
const onDiscard = useCallback(
diff --git a/src/plugins/dashboard/public/dashboard_listing/index.tsx b/src/plugins/dashboard/public/dashboard_listing/index.tsx
new file mode 100644
index 0000000000000..92febf2904bdd
--- /dev/null
+++ b/src/plugins/dashboard/public/dashboard_listing/index.tsx
@@ -0,0 +1,36 @@
+/*
+ * 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, { Suspense } from 'react';
+import { EuiEmptyPrompt, EuiLoadingSpinner } from '@elastic/eui';
+
+import { servicesReady } from '../plugin';
+import { DashboardListingProps } from './dashboard_listing';
+
+const ListingTableLoadingIndicator = () => {
+ return } />;
+};
+
+const LazyDashboardListing = React.lazy(() =>
+ (async () => {
+ const modulePromise = import('./dashboard_listing');
+ const [module] = await Promise.all([modulePromise, servicesReady]);
+
+ return {
+ default: module.DashboardListing,
+ };
+ })().then((module) => module)
+);
+
+export const DashboardListingTable = (props: DashboardListingProps) => {
+ return (
+ }>
+
+
+ );
+};
diff --git a/src/plugins/dashboard/public/index.ts b/src/plugins/dashboard/public/index.ts
index 4179de9e4f899..af7c9a307957d 100644
--- a/src/plugins/dashboard/public/index.ts
+++ b/src/plugins/dashboard/public/index.ts
@@ -23,6 +23,8 @@ export {
} from './dashboard_container';
export type { DashboardSetup, DashboardStart, DashboardFeatureFlagConfig } from './plugin';
+export { DashboardListingTable } from './dashboard_listing';
+
export {
type DashboardAppLocator,
type DashboardAppLocatorParams,
diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx
index 3c4031072ca92..093e879280d6f 100644
--- a/src/plugins/dashboard/public/plugin.tsx
+++ b/src/plugins/dashboard/public/plugin.tsx
@@ -62,8 +62,8 @@ import {
LEGACY_DASHBOARD_APP_ID,
SEARCH_SESSION_ID,
} from './dashboard_constants';
-import { PlaceholderEmbeddableFactory } from './placeholder_embeddable';
import { DashboardMountContextProps } from './dashboard_app/types';
+import { PlaceholderEmbeddableFactory } from './placeholder_embeddable';
import type { FindDashboardsService } from './services/dashboard_saved_object/types';
export interface DashboardFeatureFlagConfig {
@@ -114,6 +114,9 @@ export interface DashboardStart {
findDashboardsService: () => Promise;
}
+export let resolveServicesReady: () => void;
+export const servicesReady = new Promise((resolve) => (resolveServicesReady = resolve));
+
export class DashboardPlugin
implements
Plugin
@@ -133,6 +136,7 @@ export class DashboardPlugin
) {
const { registry, pluginServices } = await import('./services/plugin_services');
pluginServices.setRegistry(registry.start({ coreStart, startPlugins, initContext }));
+ resolveServicesReady();
}
public setup(
diff --git a/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object.stub.ts b/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object.stub.ts
index 5c3148743a322..4e9fbdb31dca4 100644
--- a/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object.stub.ts
+++ b/src/plugins/dashboard/public/services/dashboard_saved_object/dashboard_saved_object.stub.ts
@@ -37,6 +37,7 @@ export const dashboardSavedObjectServiceFactory: DashboardSavedObjectServiceFact
description: `dashboard${i} desc`,
title: `dashboard${i} - ${search} - title`,
},
+ references: [] as FindDashboardSavedObjectsResponse['hits'][0]['references'],
} as FindDashboardSavedObjectsResponse['hits'][0]);
}
return Promise.resolve({
diff --git a/src/plugins/data/server/saved_objects/query.ts b/src/plugins/data/server/saved_objects/query.ts
index c32a13e85888a..cf75c28743d4f 100644
--- a/src/plugins/data/server/saved_objects/query.ts
+++ b/src/plugins/data/server/saved_objects/query.ts
@@ -8,6 +8,7 @@
import { SavedObjectsType } from '@kbn/core/server';
import { savedQueryMigrations } from './migrations/query';
+import { SCHEMA_QUERY_V8_8_0 } from './schemas/query';
export const querySavedObjectType: SavedObjectsType = {
name: 'query',
@@ -29,21 +30,14 @@ export const querySavedObjectType: SavedObjectsType = {
},
},
mappings: {
+ dynamic: false,
properties: {
title: { type: 'text' },
description: { type: 'text' },
- query: {
- dynamic: false,
- properties: {
- language: { type: 'keyword' },
- },
- },
- filters: {
- dynamic: false,
- properties: {},
- },
- timefilter: { dynamic: false, properties: {} },
},
},
migrations: savedQueryMigrations,
+ schemas: {
+ '8.8.0': SCHEMA_QUERY_V8_8_0,
+ },
};
diff --git a/src/plugins/data/server/saved_objects/schemas/query.ts b/src/plugins/data/server/saved_objects/schemas/query.ts
new file mode 100644
index 0000000000000..c460a06b9727a
--- /dev/null
+++ b/src/plugins/data/server/saved_objects/schemas/query.ts
@@ -0,0 +1,32 @@
+/*
+ * 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 } from '@kbn/config-schema';
+
+// As per `SavedQueryAttributes`
+export const SCHEMA_QUERY_V8_8_0 = schema.object({
+ title: schema.string(),
+ description: schema.string({ defaultValue: '' }),
+ query: schema.object({
+ language: schema.string(),
+ query: schema.oneOf([schema.string(), schema.object({}, { unknowns: 'allow' })]),
+ }),
+ filters: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))),
+ timefilter: schema.maybe(
+ schema.object({
+ from: schema.string(),
+ to: schema.string(),
+ refreshInterval: schema.maybe(
+ schema.object({
+ value: schema.number(),
+ pause: schema.boolean(),
+ })
+ ),
+ })
+ ),
+});
diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.test.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.test.ts
index 173453e9e2420..f83200f56f27c 100644
--- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.test.ts
+++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.test.ts
@@ -6,48 +6,41 @@
* Side Public License, v 1.
*/
-import { elasticsearchServiceMock } from '@kbn/core/server/mocks';
+import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server';
+import { createCollectorFetchContextMock } from '@kbn/usage-collection-plugin/server/mocks';
import { getSavedObjectsCounts } from './get_saved_object_counts';
-function mockGetSavedObjectsCounts(params: TBody) {
- const esClient = elasticsearchServiceMock.createClusterClient().asInternalUser;
- // @ts-expect-error arbitrary type
- esClient.search.mockResponse(params);
- return esClient;
-}
+const soEmptyResponse = { total: 0, saved_objects: [], per_page: 0, page: 1 };
describe('getSavedObjectsCounts', () => {
+ const fetchContextMock = createCollectorFetchContextMock();
+ const soClient = fetchContextMock.soClient as jest.Mocked;
+
+ beforeEach(() => {
+ soClient.find.mockReset();
+ });
+
test('should not fail if no body returned', async () => {
- const esClient = mockGetSavedObjectsCounts({});
+ soClient.find.mockResolvedValueOnce(soEmptyResponse);
- const results = await getSavedObjectsCounts(esClient, '.kibana', ['type-a']);
+ const results = await getSavedObjectsCounts(soClient, ['type-a']);
// Make sure ES.search is triggered (we'll test the actual params in other specific tests)
- expect(esClient.search).toHaveBeenCalledTimes(1);
+ expect(soClient.find).toHaveBeenCalledTimes(1);
expect(results).toStrictEqual({ total: 0, per_type: [], non_expected_types: [], others: 0 });
});
test('should match all and request the `missing` bucket (size + 1) when `exclusive === false`', async () => {
- const esClient = mockGetSavedObjectsCounts({});
- await getSavedObjectsCounts(esClient, '.kibana', ['type-a', 'type_2']);
- expect(esClient.search).toHaveBeenCalledWith({
- index: '.kibana',
- ignore_unavailable: true,
- filter_path: [
- 'aggregations.types.buckets',
- 'aggregations.types.sum_other_doc_count',
- 'hits.total',
- ],
- body: {
- size: 0,
- track_total_hits: true,
- query: { match_all: {} },
- aggs: {
- types: {
- terms: {
- field: 'type',
- size: 3,
- missing: 'missing_so_type',
- },
+ soClient.find.mockResolvedValueOnce(soEmptyResponse);
+ await getSavedObjectsCounts(soClient, ['type-a', 'type_2']);
+ expect(soClient.find).toHaveBeenCalledWith({
+ type: ['type-a', 'type_2'],
+ perPage: 0,
+ aggs: {
+ types: {
+ terms: {
+ field: 'type',
+ size: 3,
+ missing: 'missing_so_type',
},
},
},
@@ -55,22 +48,12 @@ describe('getSavedObjectsCounts', () => {
});
test('should apply the terms query and aggregation with the size matching the length of the list when `exclusive === true`', async () => {
- const esClient = mockGetSavedObjectsCounts({});
- await getSavedObjectsCounts(esClient, '.kibana', ['type_one', 'type_two'], true);
- expect(esClient.search).toHaveBeenCalledWith({
- index: '.kibana',
- ignore_unavailable: true,
- filter_path: [
- 'aggregations.types.buckets',
- 'aggregations.types.sum_other_doc_count',
- 'hits.total',
- ],
- body: {
- size: 0,
- track_total_hits: true,
- query: { terms: { type: ['type_one', 'type_two'] } },
- aggs: { types: { terms: { field: 'type', size: 2 } } },
- },
+ soClient.find.mockResolvedValueOnce(soEmptyResponse);
+ await getSavedObjectsCounts(soClient, ['type_one', 'type_two'], true);
+ expect(soClient.find).toHaveBeenCalledWith({
+ type: ['type_one', 'type_two'],
+ perPage: 0,
+ aggs: { types: { terms: { field: 'type', size: 2 } } },
});
});
@@ -80,39 +63,13 @@ describe('getSavedObjectsCounts', () => {
{ key: 'type-two', doc_count: 2 },
];
- const esClient = mockGetSavedObjectsCounts({
- hits: { total: { value: 13 } },
- aggregations: { types: { buckets, sum_other_doc_count: 10 } },
- });
-
- const results = await getSavedObjectsCounts(esClient, '.kibana', [
- 'type_one',
- 'type-two',
- 'type-3',
- ]);
- expect(results).toStrictEqual({
+ soClient.find.mockResolvedValueOnce({
+ ...soEmptyResponse,
total: 13,
- per_type: [
- { key: 'type_one', doc_count: 1 },
- { key: 'type-two', doc_count: 2 },
- ],
- non_expected_types: [],
- others: 10,
- });
- });
-
- test('supports ES returning total as a number (just in case)', async () => {
- const buckets = [
- { key: 'type_one', doc_count: 1 },
- { key: 'type-two', doc_count: 2 },
- ];
-
- const esClient = mockGetSavedObjectsCounts({
- hits: { total: 13 },
aggregations: { types: { buckets, sum_other_doc_count: 10 } },
});
- const results = await getSavedObjectsCounts(esClient, '.kibana', ['type_one', 'type-two']);
+ const results = await getSavedObjectsCounts(soClient, ['type_one', 'type-two', 'type-3']);
expect(results).toStrictEqual({
total: 13,
per_type: [
@@ -132,12 +89,13 @@ describe('getSavedObjectsCounts', () => {
{ key: 'type-four', doc_count: 2 },
];
- const esClient = mockGetSavedObjectsCounts({
- hits: { total: { value: 13 } },
+ soClient.find.mockResolvedValueOnce({
+ ...soEmptyResponse,
+ total: 13,
aggregations: { types: { buckets, sum_other_doc_count: 6 } },
});
- const results = await getSavedObjectsCounts(esClient, '.kibana', ['type_one', 'type-two']);
+ const results = await getSavedObjectsCounts(soClient, ['type_one', 'type-two']);
expect(results).toStrictEqual({
total: 13,
per_type: [
diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.ts
index 812933eeb3e69..cdca68e5d6006 100644
--- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.ts
+++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/get_saved_object_counts/get_saved_object_counts.ts
@@ -7,7 +7,7 @@
*/
import { estypes } from '@elastic/elasticsearch';
-import { ElasticsearchClient } from '@kbn/core/server';
+import type { SavedObjectsClientContract } from '@kbn/core/server';
const MISSING_TYPE_KEY = 'missing_so_type';
@@ -39,40 +39,28 @@ export interface SavedObjectsCounts {
* It also returns a break-down of the document count for all the built-in SOs in Kibana (or the types specified in `soTypes`).
* Finally, it completes the information with an `others` counter, that indicates the number of documents that do not match the SO type breakdown.
*
- * @param esClient The {@link ElasticsearchClient} to use when performing the aggregation.
- * @param kibanaIndex The index where SOs are stored. Typically '.kibana'.
+ * @param soClient The {@link SavedObjectsClientContract} to use when performing the aggregation.
* @param soTypes The SO types we want to know about.
* @param exclusive If `true`, the results will only contain the breakdown for the specified `soTypes`. Otherwise, it'll also return `missing` and `others` bucket.
* @returns {@link SavedObjectsCounts}
*/
export async function getSavedObjectsCounts(
- esClient: ElasticsearchClient,
- kibanaIndex: string, // Typically '.kibana'. We might need a way to obtain it from the SavedObjects client (or the SavedObjects client to provide a way to run aggregations?)
+ soClient: SavedObjectsClientContract,
soTypes: string[],
exclusive: boolean = false
): Promise {
- const body = await esClient.search({
- index: kibanaIndex,
- ignore_unavailable: true,
- filter_path: [
- 'aggregations.types.buckets',
- 'aggregations.types.sum_other_doc_count',
- 'hits.total',
- ],
- body: {
- size: 0,
- track_total_hits: true,
- query: exclusive ? { terms: { type: soTypes } } : { match_all: {} },
- aggs: {
- types: {
- terms: {
- field: 'type',
- // If `exclusive == true`, we only care about the strict length of the provided SO types.
- // Otherwise, we want to account for the `missing` bucket (size and missing option).
- ...(exclusive
- ? { size: soTypes.length }
- : { missing: MISSING_TYPE_KEY, size: soTypes.length + 1 }),
- },
+ const body = await soClient.find({
+ type: soTypes,
+ perPage: 0,
+ aggs: {
+ types: {
+ terms: {
+ field: 'type',
+ // If `exclusive == true`, we only care about the strict length of the provided SO types.
+ // Otherwise, we want to account for the `missing` bucket (size and missing option).
+ ...(exclusive
+ ? { size: soTypes.length }
+ : { missing: MISSING_TYPE_KEY, size: soTypes.length + 1 }),
},
},
},
@@ -93,7 +81,7 @@ export async function getSavedObjectsCounts(
});
return {
- total: (typeof body.hits?.total === 'number' ? body.hits?.total : body.hits?.total?.value) ?? 0,
+ total: body.total,
per_type: perType,
non_expected_types: nonExpectedTypes,
others: body.aggregations?.types?.sum_other_doc_count ?? 0,
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 65003ff99c22a..cdf2ca35d6ecc 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
@@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
-import { loggingSystemMock, elasticsearchServiceMock } from '@kbn/core/server/mocks';
+import { loggingSystemMock } from '@kbn/core/server/mocks';
import {
Collector,
createCollectorFetchContextMock,
@@ -52,7 +52,8 @@ describe('kibana_usage', () => {
});
describe('getKibanaSavedObjectCounts', () => {
- const esClient = elasticsearchServiceMock.createClusterClient().asInternalUser;
+ const fetchContextMock = createCollectorFetchContextMock();
+ const soClient = fetchContextMock.soClient;
test('Get all the saved objects equal to 0 because no results were found', async () => {
getSavedObjectsCountsMock.mockResolvedValueOnce({
@@ -61,7 +62,7 @@ describe('getKibanaSavedObjectCounts', () => {
non_expected_types: [],
others: 0,
});
- const results = await getKibanaSavedObjectCounts(esClient, '.kibana');
+ const results = await getKibanaSavedObjectCounts(soClient);
expect(results).toStrictEqual({
dashboard: { total: 0 },
visualization: { total: 0 },
@@ -83,7 +84,7 @@ describe('getKibanaSavedObjectCounts', () => {
others: 0,
});
- const results = await getKibanaSavedObjectCounts(esClient, '.kibana');
+ const results = await getKibanaSavedObjectCounts(soClient);
expect(results).toStrictEqual({
dashboard: { total: 1 },
visualization: { total: 0 },
@@ -93,8 +94,7 @@ describe('getKibanaSavedObjectCounts', () => {
});
expect(getSavedObjectsCountsMock).toHaveBeenCalledWith(
- esClient,
- '.kibana',
+ soClient,
['dashboard', 'visualization', 'search', 'index-pattern', 'graph-workspace'],
true
);
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 dbff86fb23ad7..9a128888f05d5 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
@@ -6,9 +6,9 @@
* Side Public License, v 1.
*/
-import type { ElasticsearchClient } from '@kbn/core/server';
import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/server';
import { snakeCase } from 'lodash';
+import { SavedObjectsClientContract } from '@kbn/core/server';
import { getSavedObjectsCounts } from './get_saved_object_counts';
interface KibanaSavedObjectCounts {
@@ -26,10 +26,9 @@ interface KibanaUsage extends KibanaSavedObjectCounts {
const TYPES = ['dashboard', 'visualization', 'search', 'index-pattern', 'graph-workspace'];
export async function getKibanaSavedObjectCounts(
- esClient: ElasticsearchClient,
- kibanaIndex: string
+ soClient: SavedObjectsClientContract
): Promise {
- const { per_type: buckets } = await getSavedObjectsCounts(esClient, kibanaIndex, TYPES, true);
+ const { per_type: buckets } = await getSavedObjectsCounts(soClient, TYPES, true);
const allZeros = Object.fromEntries(
TYPES.map((type) => [snakeCase(type), { total: 0 }])
@@ -80,10 +79,10 @@ export function registerKibanaUsageCollector(
},
},
},
- async fetch({ esClient }) {
+ async fetch({ soClient }) {
return {
index: kibanaIndex,
- ...(await getKibanaSavedObjectCounts(esClient, kibanaIndex)),
+ ...(await getKibanaSavedObjectCounts(soClient)),
};
},
})
diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.test.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.test.ts
index 25ac79f88e523..53168be3c34b6 100644
--- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.test.ts
+++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.test.ts
@@ -17,10 +17,8 @@ describe('saved_objects_count_collector', () => {
const usageCollectionMock = createUsageCollectionSetupMock();
const fetchContextMock = createCollectorFetchContextMock();
- const kibanaIndex = '.kibana-tests';
-
beforeAll(() =>
- registerSavedObjectsCountUsageCollector(usageCollectionMock, kibanaIndex, () =>
+ registerSavedObjectsCountUsageCollector(usageCollectionMock, () =>
Promise.resolve(['type_one', 'type_two', 'type-three', 'type-four'])
)
);
@@ -81,8 +79,7 @@ describe('saved_objects_count_collector', () => {
});
expect(getSavedObjectsCountsMock).toHaveBeenCalledWith(
- fetchContextMock.esClient,
- kibanaIndex,
+ fetchContextMock.soClient,
['type_one', 'type_two', 'type-three', 'type-four'],
false
);
diff --git a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.ts b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.ts
index 376a036a0f24a..49bfb7819389d 100644
--- a/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.ts
+++ b/src/plugins/kibana_usage_collection/server/collectors/saved_objects_counts/saved_objects_count_collector.ts
@@ -23,7 +23,6 @@ interface SavedObjectsCountUsage {
export function registerSavedObjectsCountUsageCollector(
usageCollection: UsageCollectionSetup,
- kibanaIndex: string,
getAllSavedObjectTypes: () => Promise
) {
usageCollection.registerCollector(
@@ -68,14 +67,14 @@ export function registerSavedObjectsCountUsageCollector(
},
},
},
- async fetch({ esClient }) {
+ async fetch({ soClient }) {
const allRegisteredSOTypes = await getAllSavedObjectTypes();
const {
total,
per_type: buckets,
non_expected_types: nonRegisteredTypes,
others,
- } = await getSavedObjectsCounts(esClient, kibanaIndex, allRegisteredSOTypes, false);
+ } = await getSavedObjectsCounts(soClient, allRegisteredSOTypes, false);
return {
total,
by_type: buckets.map(({ key: type, doc_count: count }) => ({ type, count })),
diff --git a/src/plugins/kibana_usage_collection/server/plugin.ts b/src/plugins/kibana_usage_collection/server/plugin.ts
index 784ab3ef4af62..8787d085c692e 100644
--- a/src/plugins/kibana_usage_collection/server/plugin.ts
+++ b/src/plugins/kibana_usage_collection/server/plugin.ts
@@ -148,7 +148,7 @@ export class KibanaUsageCollectionPlugin implements Plugin {
.getAllTypes()
.map(({ name }) => name);
};
- registerSavedObjectsCountUsageCollector(usageCollection, kibanaIndex, getAllSavedObjectTypes);
+ registerSavedObjectsCountUsageCollector(usageCollection, getAllSavedObjectTypes);
registerManagementUsageCollector(usageCollection, getUiSettingsClient);
registerUiMetricUsageCollector(usageCollection, registerType, getSavedObjectsClient);
registerApplicationUsageCollector(
diff --git a/src/plugins/kibana_usage_collection/tsconfig.json b/src/plugins/kibana_usage_collection/tsconfig.json
index 271032000d510..d56cb860cd463 100644
--- a/src/plugins/kibana_usage_collection/tsconfig.json
+++ b/src/plugins/kibana_usage_collection/tsconfig.json
@@ -18,6 +18,7 @@
"@kbn/logging",
"@kbn/core-test-helpers-kbn-server",
"@kbn/core-usage-data-server",
+ "@kbn/core-saved-objects-api-server",
],
"exclude": [
"target/**/*",
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 71c2a3d250a51..6bede7391b146 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -1088,6 +1088,8 @@
"@kbn/security-test-endpoints-plugin/*": ["x-pack/test/security_functional/plugins/test_endpoints/*"],
"@kbn/securitysolution-autocomplete": ["packages/kbn-securitysolution-autocomplete"],
"@kbn/securitysolution-autocomplete/*": ["packages/kbn-securitysolution-autocomplete/*"],
+ "@kbn/securitysolution-data-table": ["x-pack/packages/kbn-securitysolution-data-table"],
+ "@kbn/securitysolution-data-table/*": ["x-pack/packages/kbn-securitysolution-data-table/*"],
"@kbn/securitysolution-ecs": ["packages/kbn-securitysolution-ecs"],
"@kbn/securitysolution-ecs/*": ["packages/kbn-securitysolution-ecs/*"],
"@kbn/securitysolution-es-utils": ["packages/kbn-securitysolution-es-utils"],
diff --git a/x-pack/packages/kbn-securitysolution-data-table/.storybook/main.js b/x-pack/packages/kbn-securitysolution-data-table/.storybook/main.js
new file mode 100644
index 0000000000000..86b48c32f103e
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/.storybook/main.js
@@ -0,0 +1,8 @@
+/*
+ * 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.
+ */
+
+module.exports = require('@kbn/storybook').defaultConfig;
diff --git a/x-pack/packages/kbn-securitysolution-data-table/README.md b/x-pack/packages/kbn-securitysolution-data-table/README.md
new file mode 100644
index 0000000000000..1cea501e31e30
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/README.md
@@ -0,0 +1,35 @@
+# Security Solutions's Data Table
+
+## Motivation
+
+The idea behind this package is to have a reusable data table component, embedding the features
+available to alerts table in security solution plugin.
+
+## How to use this
+
+Standalone examples will follow. In the meantime:
+
+Consult the following file to get the idea of what is necessary to reuse the component
+
+`x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx`
+
+The following file:
+`kibana/x-pack/plugins/security_solution/public/common/store/reducer.ts`
+
+showcases the redux store setup for the package.
+
+## The most important public api members
+
+- DataTableComponent itself
+- dataTableReducer
+
+### Extras
+
+Be sure to check out provided helpers
+
+## Storybook
+
+General look of the component can be checked visually running the following storybook:
+`yarn storybook security_solution_data_table`
+
+Note that all the interactions are mocked.
\ No newline at end of file
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/constants.ts b/x-pack/packages/kbn-securitysolution-data-table/common/constants.ts
new file mode 100644
index 0000000000000..b2e623eebddb6
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/constants.ts
@@ -0,0 +1,501 @@
+/*
+ * 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.
+ */
+
+/**
+ * as const
+ *
+ * The const assertion ensures that type widening does not occur
+ * https://mariusschulz.com/blog/literal-type-widening-in-typescript
+ * Please follow this convention when adding to this file
+ */
+
+export const APP_ID = 'securitySolution' as const;
+export const APP_UI_ID = 'securitySolutionUI' as const;
+export const CASES_FEATURE_ID = 'securitySolutionCases' as const;
+export const SERVER_APP_ID = 'siem' as const;
+export const APP_NAME = 'Security' as const;
+export const APP_ICON = 'securityAnalyticsApp' as const;
+export const APP_ICON_SOLUTION = 'logoSecurity' as const;
+export const APP_PATH = `/app/security` as const;
+export const ADD_DATA_PATH = `/app/integrations/browse/security`;
+export const ADD_THREAT_INTELLIGENCE_DATA_PATH = `/app/integrations/browse/threat_intel`;
+export const DEFAULT_BYTES_FORMAT = 'format:bytes:defaultPattern' as const;
+export const DEFAULT_DATE_FORMAT = 'dateFormat' as const;
+export const DEFAULT_DATE_FORMAT_TZ = 'dateFormat:tz' as const;
+export const DEFAULT_DARK_MODE = 'theme:darkMode' as const;
+export const DEFAULT_INDEX_KEY = 'securitySolution:defaultIndex' as const;
+export const DEFAULT_NUMBER_FORMAT = 'format:number:defaultPattern' as const;
+export const DEFAULT_DATA_VIEW_ID = 'security-solution' as const;
+export const DEFAULT_TIME_FIELD = '@timestamp' as const;
+export const DEFAULT_TIME_RANGE = 'timepicker:timeDefaults' as const;
+export const DEFAULT_REFRESH_RATE_INTERVAL = 'timepicker:refreshIntervalDefaults' as const;
+export const DEFAULT_APP_TIME_RANGE = 'securitySolution:timeDefaults' as const;
+export const DEFAULT_APP_REFRESH_INTERVAL = 'securitySolution:refreshIntervalDefaults' as const;
+export const DEFAULT_ALERTS_INDEX = '.alerts-security.alerts' as const;
+export const DEFAULT_SIGNALS_INDEX = '.siem-signals' as const;
+export const DEFAULT_PREVIEW_INDEX = '.preview.alerts-security.alerts' as const;
+export const DEFAULT_LISTS_INDEX = '.lists' as const;
+export const DEFAULT_ITEMS_INDEX = '.items' as const;
+// The DEFAULT_MAX_SIGNALS value exists also in `x-pack/plugins/cases/common/constants.ts`
+// If either changes, engineer should ensure both values are updated
+export const DEFAULT_MAX_SIGNALS = 100 as const;
+export const DEFAULT_SEARCH_AFTER_PAGE_SIZE = 100 as const;
+export const DEFAULT_ANOMALY_SCORE = 'securitySolution:defaultAnomalyScore' as const;
+export const DEFAULT_MAX_TABLE_QUERY_SIZE = 10000 as const;
+export const DEFAULT_FROM = 'now/d' as const;
+export const DEFAULT_TO = 'now/d' as const;
+export const DEFAULT_INTERVAL_PAUSE = true as const;
+export const DEFAULT_INTERVAL_TYPE = 'manual' as const;
+export const DEFAULT_INTERVAL_VALUE = 300000 as const; // ms
+export const DEFAULT_TIMEPICKER_QUICK_RANGES = 'timepicker:quickRanges' as const;
+export const SCROLLING_DISABLED_CLASS_NAME = 'scrolling-disabled' as const;
+export const FULL_SCREEN_TOGGLED_CLASS_NAME = 'fullScreenToggled' as const;
+export const NO_ALERT_INDEX = 'no-alert-index-049FC71A-4C2C-446F-9901-37XMC5024C51' as const;
+export const ENDPOINT_METADATA_INDEX = 'metrics-endpoint.metadata-*' as const;
+export const ENDPOINT_METRICS_INDEX = '.ds-metrics-endpoint.metrics-*' as const;
+export const DEFAULT_RULE_REFRESH_INTERVAL_ON = true as const;
+export const DEFAULT_RULE_REFRESH_INTERVAL_VALUE = 60000 as const; // ms
+export const DEFAULT_RULE_NOTIFICATION_QUERY_SIZE = 100 as const;
+export const SECURITY_FEATURE_ID = 'Security' as const;
+export const SECURITY_TAG_NAME = 'Security Solution' as const;
+export const DEFAULT_SPACE_ID = 'default' as const;
+export const DEFAULT_RELATIVE_DATE_THRESHOLD = 24 as const;
+
+// Document path where threat indicator fields are expected. Fields are used
+// to enrich signals, and are copied to threat.enrichments.
+export const DEFAULT_INDICATOR_SOURCE_PATH = 'threat.indicator' as const;
+export const ENRICHMENT_DESTINATION_PATH = 'threat.enrichments' as const;
+export const DEFAULT_THREAT_INDEX_KEY = 'securitySolution:defaultThreatIndex' as const;
+export const DEFAULT_THREAT_INDEX_VALUE = ['logs-ti_*'] as const;
+export const DEFAULT_THREAT_MATCH_QUERY = '@timestamp >= "now-30d/d"' as const;
+
+export enum SecurityPageName {
+ administration = 'administration',
+ alerts = 'alerts',
+ blocklist = 'blocklist',
+ /*
+ * Warning: Computed values are not permitted in an enum with string valued members
+ * All Cases page names must match `CasesDeepLinkId` in x-pack/plugins/cases/public/common/navigation/deep_links.ts
+ */
+ case = 'cases', // must match `CasesDeepLinkId.cases`
+ caseConfigure = 'cases_configure', // must match `CasesDeepLinkId.casesConfigure`
+ caseCreate = 'cases_create', // must match `CasesDeepLinkId.casesCreate`
+ /*
+ * Warning: Computed values are not permitted in an enum with string valued members
+ * All cloud security posture page names must match `CloudSecurityPosturePageId` in x-pack/plugins/cloud_security_posture/public/common/navigation/types.ts
+ */
+ cloudSecurityPostureBenchmarks = 'cloud_security_posture-benchmarks',
+ cloudSecurityPostureDashboard = 'cloud_security_posture-dashboard',
+ cloudSecurityPostureFindings = 'cloud_security_posture-findings',
+ cloudSecurityPostureRules = 'cloud_security_posture-rules',
+ dashboardsLanding = 'dashboards',
+ dataQuality = 'data_quality',
+ detections = 'detections',
+ detectionAndResponse = 'detection_response',
+ endpoints = 'endpoints',
+ eventFilters = 'event_filters',
+ exceptions = 'exceptions',
+ exploreLanding = 'explore',
+ hostIsolationExceptions = 'host_isolation_exceptions',
+ hosts = 'hosts',
+ hostsAnomalies = 'hosts-anomalies',
+ hostsRisk = 'hosts-risk',
+ hostsEvents = 'hosts-events',
+ investigate = 'investigate',
+ kubernetes = 'kubernetes',
+ landing = 'get_started',
+ network = 'network',
+ networkAnomalies = 'network-anomalies',
+ networkDns = 'network-dns',
+ networkEvents = 'network-events',
+ networkHttp = 'network-http',
+ networkTls = 'network-tls',
+ noPage = '',
+ overview = 'overview',
+ policies = 'policy',
+ responseActionsHistory = 'response_actions_history',
+ rules = 'rules',
+ rulesCreate = 'rules-create',
+ sessions = 'sessions',
+ /*
+ * Warning: Computed values are not permitted in an enum with string valued members
+ * All threat intelligence page names must match `TIPageId` in x-pack/plugins/threat_intelligence/public/common/navigation/types.ts
+ */
+ threatIntelligenceIndicators = 'threat_intelligence-indicators',
+ timelines = 'timelines',
+ timelinesTemplates = 'timelines-templates',
+ trustedApps = 'trusted_apps',
+ uncommonProcesses = 'uncommon_processes',
+ users = 'users',
+ usersAnomalies = 'users-anomalies',
+ usersAuthentications = 'users-authentications',
+ usersEvents = 'users-events',
+ usersRisk = 'users-risk',
+ entityAnalytics = 'entity-analytics',
+}
+
+export const EXPLORE_PATH = '/explore' as const;
+export const DASHBOARDS_PATH = '/dashboards' as const;
+export const MANAGE_PATH = '/manage' as const;
+export const TIMELINES_PATH = '/timelines' as const;
+export const CASES_PATH = '/cases' as const;
+export const OVERVIEW_PATH = '/overview' as const;
+export const LANDING_PATH = '/get_started' as const;
+export const DATA_QUALITY_PATH = '/data_quality' as const;
+export const DETECTION_RESPONSE_PATH = '/detection_response' as const;
+export const DETECTIONS_PATH = '/detections' as const;
+export const ALERTS_PATH = '/alerts' as const;
+export const RULES_PATH = '/rules' as const;
+export const RULES_CREATE_PATH = `${RULES_PATH}/create` as const;
+export const EXCEPTIONS_PATH = '/exceptions' as const;
+export const EXCEPTION_LIST_DETAIL_PATH = `${EXCEPTIONS_PATH}/details/:detailName` as const;
+export const HOSTS_PATH = '/hosts' as const;
+export const USERS_PATH = '/users' as const;
+export const KUBERNETES_PATH = '/kubernetes' as const;
+export const NETWORK_PATH = '/network' as const;
+export const MANAGEMENT_PATH = '/administration' as const;
+export const THREAT_INTELLIGENCE_PATH = '/threat_intelligence' as const;
+export const ENDPOINTS_PATH = `${MANAGEMENT_PATH}/endpoints` as const;
+export const POLICIES_PATH = `${MANAGEMENT_PATH}/policy` as const;
+export const TRUSTED_APPS_PATH = `${MANAGEMENT_PATH}/trusted_apps` as const;
+export const EVENT_FILTERS_PATH = `${MANAGEMENT_PATH}/event_filters` as const;
+export const HOST_ISOLATION_EXCEPTIONS_PATH =
+ `${MANAGEMENT_PATH}/host_isolation_exceptions` as const;
+export const BLOCKLIST_PATH = `${MANAGEMENT_PATH}/blocklist` as const;
+export const RESPONSE_ACTIONS_HISTORY_PATH = `${MANAGEMENT_PATH}/response_actions_history` as const;
+export const ENTITY_ANALYTICS_PATH = '/entity_analytics' as const;
+export const APP_OVERVIEW_PATH = `${APP_PATH}${OVERVIEW_PATH}` as const;
+export const APP_LANDING_PATH = `${APP_PATH}${LANDING_PATH}` as const;
+export const APP_DETECTION_RESPONSE_PATH = `${APP_PATH}${DETECTION_RESPONSE_PATH}` as const;
+export const APP_MANAGEMENT_PATH = `${APP_PATH}${MANAGEMENT_PATH}` as const;
+
+export const APP_ALERTS_PATH = `${APP_PATH}${ALERTS_PATH}` as const;
+export const APP_RULES_PATH = `${APP_PATH}${RULES_PATH}` as const;
+export const APP_EXCEPTIONS_PATH = `${APP_PATH}${EXCEPTIONS_PATH}` as const;
+
+export const APP_HOSTS_PATH = `${APP_PATH}${HOSTS_PATH}` as const;
+export const APP_USERS_PATH = `${APP_PATH}${USERS_PATH}` as const;
+export const APP_NETWORK_PATH = `${APP_PATH}${NETWORK_PATH}` as const;
+export const APP_KUBERNETES_PATH = `${APP_PATH}${KUBERNETES_PATH}` as const;
+export const APP_TIMELINES_PATH = `${APP_PATH}${TIMELINES_PATH}` as const;
+export const APP_CASES_PATH = `${APP_PATH}${CASES_PATH}` as const;
+export const APP_ENDPOINTS_PATH = `${APP_PATH}${ENDPOINTS_PATH}` as const;
+export const APP_POLICIES_PATH = `${APP_PATH}${POLICIES_PATH}` as const;
+export const APP_TRUSTED_APPS_PATH = `${APP_PATH}${TRUSTED_APPS_PATH}` as const;
+export const APP_EVENT_FILTERS_PATH = `${APP_PATH}${EVENT_FILTERS_PATH}` as const;
+export const APP_HOST_ISOLATION_EXCEPTIONS_PATH =
+ `${APP_PATH}${HOST_ISOLATION_EXCEPTIONS_PATH}` as const;
+export const APP_BLOCKLIST_PATH = `${APP_PATH}${BLOCKLIST_PATH}` as const;
+export const APP_RESPONSE_ACTIONS_HISTORY_PATH =
+ `${APP_PATH}${RESPONSE_ACTIONS_HISTORY_PATH}` as const;
+export const APP_ENTITY_ANALYTICS_PATH = `${APP_PATH}${ENTITY_ANALYTICS_PATH}` as const;
+export const APP_DATA_QUALITY_PATH = `${APP_PATH}${DATA_QUALITY_PATH}` as const;
+
+// cloud logs to exclude from default index pattern
+export const EXCLUDE_ELASTIC_CLOUD_INDICES = ['-*elastic-cloud-logs-*'];
+
+/** The comma-delimited list of Elasticsearch indices from which the SIEM app collects events */
+export const INCLUDE_INDEX_PATTERN = [
+ 'apm-*-transaction*',
+ 'auditbeat-*',
+ 'endgame-*',
+ 'filebeat-*',
+ 'logs-*',
+ 'packetbeat-*',
+ 'traces-apm*',
+ 'winlogbeat-*',
+];
+/** The comma-delimited list of Elasticsearch indices from which the SIEM app collects events, and the exclude index pattern */
+export const DEFAULT_INDEX_PATTERN = [...INCLUDE_INDEX_PATTERN, ...EXCLUDE_ELASTIC_CLOUD_INDICES];
+
+/** This Kibana Advanced Setting enables the grouped navigation in Security Solution */
+export const ENABLE_GROUPED_NAVIGATION = 'securitySolution:enableGroupedNav' as const;
+
+/** This Kibana Advanced Setting enables the `Security news` feed widget */
+export const ENABLE_NEWS_FEED_SETTING = 'securitySolution:enableNewsFeed' as const;
+
+/** This Kibana Advanced Setting enables the warnings for CCS read permissions */
+export const ENABLE_CCS_READ_WARNING_SETTING = 'securitySolution:enableCcsWarning' as const;
+
+/** This Kibana Advanced Setting sets the auto refresh interval for the detections all rules table */
+export const DEFAULT_RULES_TABLE_REFRESH_SETTING = 'securitySolution:rulesTableRefresh' as const;
+
+/** This Kibana Advanced Setting specifies the URL of the News feed widget */
+export const NEWS_FEED_URL_SETTING = 'securitySolution:newsFeedUrl' as const;
+
+/** The default value for News feed widget */
+export const NEWS_FEED_URL_SETTING_DEFAULT = 'https://feeds.elastic.co/security-solution' as const;
+
+/** This Kibana Advanced Setting specifies the URLs of `IP Reputation Links`*/
+export const IP_REPUTATION_LINKS_SETTING = 'securitySolution:ipReputationLinks' as const;
+
+/** The default value for `IP Reputation Links` */
+export const IP_REPUTATION_LINKS_SETTING_DEFAULT = `[
+ { "name": "virustotal.com", "url_template": "https://www.virustotal.com/gui/search/{{ip}}" },
+ { "name": "talosIntelligence.com", "url_template": "https://talosintelligence.com/reputation_center/lookup?search={{ip}}" }
+]`;
+
+/** This Kibana Advanced Setting shows related integrations on the Rules Table */
+export const SHOW_RELATED_INTEGRATIONS_SETTING =
+ 'securitySolution:showRelatedIntegrations' as const;
+
+/** This Kibana Advanced Setting enables extended rule execution logging to Event Log */
+export const EXTENDED_RULE_EXECUTION_LOGGING_ENABLED_SETTING =
+ 'securitySolution:extendedRuleExecutionLoggingEnabled' as const;
+
+/** This Kibana Advanced Setting sets minimum log level starting from which execution logs will be written to Event Log */
+export const EXTENDED_RULE_EXECUTION_LOGGING_MIN_LEVEL_SETTING =
+ 'securitySolution:extendedRuleExecutionLoggingMinLevel' as const;
+
+/**
+ * Id for the notifications alerting type
+ * @deprecated Once we are confident all rules relying on side-car actions SO's have been migrated to SO references we should remove this function
+ */
+export const LEGACY_NOTIFICATIONS_ID = `siem.notifications` as const;
+
+/**
+ * Internal actions route
+ */
+export const UPDATE_OR_CREATE_LEGACY_ACTIONS = '/internal/api/detection/legacy/notifications';
+
+/**
+ * Exceptions management routes
+ */
+
+export const SHARED_EXCEPTION_LIST_URL = `/api${EXCEPTIONS_PATH}/shared` as const;
+
+/**
+ * Detection engine routes
+ */
+export const DETECTION_ENGINE_URL = '/api/detection_engine' as const;
+export const DETECTION_ENGINE_PRIVILEGES_URL = `${DETECTION_ENGINE_URL}/privileges` as const;
+export const DETECTION_ENGINE_INDEX_URL = `${DETECTION_ENGINE_URL}/index` as const;
+
+export const DETECTION_ENGINE_RULES_URL = `${DETECTION_ENGINE_URL}/rules` as const;
+export const DETECTION_ENGINE_RULES_URL_FIND = `${DETECTION_ENGINE_RULES_URL}/_find` as const;
+export const DETECTION_ENGINE_TAGS_URL = `${DETECTION_ENGINE_URL}/tags` as const;
+export const DETECTION_ENGINE_RULES_BULK_ACTION =
+ `${DETECTION_ENGINE_RULES_URL}/_bulk_action` as const;
+export const DETECTION_ENGINE_RULES_PREVIEW = `${DETECTION_ENGINE_RULES_URL}/preview` as const;
+export const DETECTION_ENGINE_RULES_BULK_DELETE =
+ `${DETECTION_ENGINE_RULES_URL}/_bulk_delete` as const;
+export const DETECTION_ENGINE_RULES_BULK_CREATE =
+ `${DETECTION_ENGINE_RULES_URL}/_bulk_create` as const;
+export const DETECTION_ENGINE_RULES_BULK_UPDATE =
+ `${DETECTION_ENGINE_RULES_URL}/_bulk_update` as const;
+
+export const INTERNAL_RISK_SCORE_URL = '/internal/risk_score' as const;
+export const DEV_TOOL_PREBUILT_CONTENT =
+ `${INTERNAL_RISK_SCORE_URL}/prebuilt_content/dev_tool/{console_id}` as const;
+export const devToolPrebuiltContentUrl = (spaceId: string, consoleId: string) =>
+ `/s/${spaceId}${INTERNAL_RISK_SCORE_URL}/prebuilt_content/dev_tool/${consoleId}` as const;
+export const PREBUILT_SAVED_OBJECTS_BULK_CREATE = `${INTERNAL_RISK_SCORE_URL}/prebuilt_content/saved_objects/_bulk_create/{template_name}`;
+export const prebuiltSavedObjectsBulkCreateUrl = (templateName: string) =>
+ `${INTERNAL_RISK_SCORE_URL}/prebuilt_content/saved_objects/_bulk_create/${templateName}` as const;
+export const PREBUILT_SAVED_OBJECTS_BULK_DELETE = `${INTERNAL_RISK_SCORE_URL}/prebuilt_content/saved_objects/_bulk_delete/{template_name}`;
+export const prebuiltSavedObjectsBulkDeleteUrl = (templateName: string) =>
+ `${INTERNAL_RISK_SCORE_URL}/prebuilt_content/saved_objects/_bulk_delete/${templateName}` as const;
+export const RISK_SCORE_CREATE_INDEX = `${INTERNAL_RISK_SCORE_URL}/indices/create`;
+export const RISK_SCORE_DELETE_INDICES = `${INTERNAL_RISK_SCORE_URL}/indices/delete`;
+export const RISK_SCORE_CREATE_STORED_SCRIPT = `${INTERNAL_RISK_SCORE_URL}/stored_scripts/create`;
+export const RISK_SCORE_DELETE_STORED_SCRIPT = `${INTERNAL_RISK_SCORE_URL}/stored_scripts/delete`;
+/**
+ * Internal detection engine routes
+ */
+export const INTERNAL_DETECTION_ENGINE_URL = '/internal/detection_engine' as const;
+export const DETECTION_ENGINE_ALERTS_INDEX_URL =
+ `${INTERNAL_DETECTION_ENGINE_URL}/signal/index` as const;
+
+/**
+ * Telemetry detection endpoint for any previews requested of what data we are
+ * providing through UI/UX and for e2e tests.
+ * curl http//localhost:5601/internal/security_solution/telemetry
+ * to see the contents
+ */
+export const SECURITY_TELEMETRY_URL = `/internal/security_solution/telemetry` as const;
+
+export const TIMELINE_RESOLVE_URL = '/api/timeline/resolve' as const;
+export const TIMELINE_URL = '/api/timeline' as const;
+export const TIMELINES_URL = '/api/timelines' as const;
+export const TIMELINE_FAVORITE_URL = '/api/timeline/_favorite' as const;
+export const TIMELINE_DRAFT_URL = `${TIMELINE_URL}/_draft` as const;
+export const TIMELINE_EXPORT_URL = `${TIMELINE_URL}/_export` as const;
+export const TIMELINE_IMPORT_URL = `${TIMELINE_URL}/_import` as const;
+export const TIMELINE_PREPACKAGED_URL = `${TIMELINE_URL}/_prepackaged` as const;
+
+export const NOTE_URL = '/api/note' as const;
+export const PINNED_EVENT_URL = '/api/pinned_event' as const;
+export const SOURCERER_API_URL = '/internal/security_solution/sourcerer' as const;
+export const RISK_SCORE_INDEX_STATUS_API_URL = '/internal/risk_score/index_status' as const;
+
+/**
+ * Default signals index key for kibana.dev.yml
+ */
+export const SIGNALS_INDEX_KEY = 'signalsIndex' as const;
+
+export const DETECTION_ENGINE_SIGNALS_URL = `${DETECTION_ENGINE_URL}/signals` as const;
+export const DETECTION_ENGINE_SIGNALS_STATUS_URL =
+ `${DETECTION_ENGINE_SIGNALS_URL}/status` as const;
+export const DETECTION_ENGINE_QUERY_SIGNALS_URL = `${DETECTION_ENGINE_SIGNALS_URL}/search` as const;
+export const DETECTION_ENGINE_SIGNALS_MIGRATION_URL =
+ `${DETECTION_ENGINE_SIGNALS_URL}/migration` as const;
+export const DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL =
+ `${DETECTION_ENGINE_SIGNALS_URL}/migration_status` as const;
+export const DETECTION_ENGINE_SIGNALS_FINALIZE_MIGRATION_URL =
+ `${DETECTION_ENGINE_SIGNALS_URL}/finalize_migration` as const;
+
+export const ALERTS_AS_DATA_URL = '/internal/rac/alerts' as const;
+export const ALERTS_AS_DATA_FIND_URL = `${ALERTS_AS_DATA_URL}/find` as const;
+
+/**
+ * Common naming convention for an unauthenticated user
+ */
+export const UNAUTHENTICATED_USER = 'Unauthenticated' as const;
+
+/*
+ Licensing requirements
+ */
+export const MINIMUM_ML_LICENSE = 'platinum' as const;
+
+/*
+ Machine Learning constants
+ */
+export const ML_GROUP_ID = 'security' as const;
+export const LEGACY_ML_GROUP_ID = 'siem' as const;
+export const ML_GROUP_IDS = [ML_GROUP_ID, LEGACY_ML_GROUP_ID] as const;
+
+export const NOTIFICATION_THROTTLE_NO_ACTIONS = 'no_actions' as const;
+export const NOTIFICATION_THROTTLE_RULE = 'rule' as const;
+
+export const showAllOthersBucket: string[] = [
+ 'destination.ip',
+ 'event.action',
+ 'event.category',
+ 'event.dataset',
+ 'event.module',
+ 'signal.rule.threat.tactic.name',
+ 'source.ip',
+ 'destination.ip',
+ 'user.name',
+];
+
+export const RISKY_HOSTS_INDEX_PREFIX = 'ml_host_risk_score_' as const;
+
+export const RISKY_USERS_INDEX_PREFIX = 'ml_user_risk_score_' as const;
+
+export const TRANSFORM_STATES = {
+ ABORTING: 'aborting',
+ FAILED: 'failed',
+ INDEXING: 'indexing',
+ STARTED: 'started',
+ STOPPED: 'stopped',
+ STOPPING: 'stopping',
+ WAITING: 'waiting',
+};
+
+export const WARNING_TRANSFORM_STATES = new Set([
+ TRANSFORM_STATES.ABORTING,
+ TRANSFORM_STATES.FAILED,
+ TRANSFORM_STATES.STOPPED,
+ TRANSFORM_STATES.STOPPING,
+]);
+
+export const STARTED_TRANSFORM_STATES = new Set([
+ TRANSFORM_STATES.INDEXING,
+ TRANSFORM_STATES.STARTED,
+]);
+
+/**
+ * How many rules to update at a time is set to 50 from errors coming from
+ * the slow environments such as cloud when the rule updates are > 100 we were
+ * seeing timeout issues.
+ *
+ * Since there is not timeout options at the alerting API level right now, we are
+ * at the mercy of the Elasticsearch server client/server default timeouts and what
+ * we are doing could be considered a workaround to not being able to increase the timeouts.
+ *
+ * However, other bad effects and saturation of connections beyond 50 makes this a "noisy neighbor"
+ * if we don't limit its number of connections as we increase the number of rules that can be
+ * installed at a time.
+ *
+ * Lastly, we saw weird issues where Chrome on upstream 408 timeouts will re-call the REST route
+ * which in turn could create additional connections we want to avoid.
+ *
+ * See file import_rules_route.ts for another area where 50 was chosen, therefore I chose
+ * 50 here to mimic it as well. If you see this re-opened or what similar to it, consider
+ * reducing the 50 above to a lower number.
+ *
+ * See the original ticket here:
+ * https://github.com/elastic/kibana/issues/94418
+ */
+export const MAX_RULES_TO_UPDATE_IN_PARALLEL = 50;
+
+export const LIMITED_CONCURRENCY_ROUTE_TAG_PREFIX = `${APP_ID}:limitedConcurrency`;
+
+/**
+ * Max number of rules to display on UI in table, max number of rules that can be edited in a single bulk edit API request
+ * We limit number of rules in bulk edit API, because rulesClient doesn't support bulkGet of rules by ids.
+ * Given this limitation, current implementation fetches each rule separately through rulesClient.resolve method.
+ * As max number of rules displayed on a page is 100, max 100 rules can be bulk edited by passing their ids to API.
+ * We decided add this limit(number of ids less than 100) in bulk edit API as well, to prevent a huge number of single rule fetches
+ */
+export const RULES_TABLE_MAX_PAGE_SIZE = 100;
+
+/**
+ * Local storage keys we use to store the state of our new features tours we currently show in the app.
+ *
+ * NOTE: As soon as we want to show tours for new features in the upcoming release,
+ * we will need to update these constants with the corresponding version.
+ */
+export const NEW_FEATURES_TOUR_STORAGE_KEYS = {
+ RULE_MANAGEMENT_PAGE: 'securitySolution.rulesManagementPage.newFeaturesTour.v8.6',
+};
+
+export const RULE_DETAILS_EXECUTION_LOG_TABLE_SHOW_METRIC_COLUMNS_STORAGE_KEY =
+ 'securitySolution.ruleDetails.ruleExecutionLog.showMetrics.v8.2';
+
+// TODO: https://github.com/elastic/kibana/pull/142950
+/**
+ * Error codes that can be thrown during _bulk_action API dry_run call and be processed and displayed to end user
+ */
+export enum BulkActionsDryRunErrCode {
+ IMMUTABLE = 'IMMUTABLE',
+ MACHINE_LEARNING_AUTH = 'MACHINE_LEARNING_AUTH',
+ MACHINE_LEARNING_INDEX_PATTERN = 'MACHINE_LEARNING_INDEX_PATTERN',
+}
+
+export const RISKY_HOSTS_DOC_LINK =
+ 'https://www.elastic.co/guide/en/security/current/host-risk-score.html';
+export const RISKY_USERS_DOC_LINK =
+ 'https://www.elastic.co/guide/en/security/current/user-risk-score.html';
+
+export const MAX_NUMBER_OF_NEW_TERMS_FIELDS = 3;
+
+export const BULK_ADD_TO_TIMELINE_LIMIT = 2000;
+
+export const DEFAULT_DETECTION_PAGE_FILTERS = [
+ {
+ title: 'Status',
+ fieldName: 'kibana.alert.workflow_status',
+ selectedOptions: ['open'],
+ hideActionBar: true,
+ },
+ {
+ title: 'Severity',
+ fieldName: 'kibana.alert.severity',
+ selectedOptions: [],
+ hideActionBar: true,
+ },
+ {
+ title: 'User',
+ fieldName: 'user.name',
+ },
+ {
+ title: 'Host',
+ fieldName: 'host.name',
+ },
+];
diff --git a/x-pack/plugins/security_solution/common/types/data_table/index.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts
similarity index 91%
rename from x-pack/plugins/security_solution/common/types/data_table/index.ts
rename to x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts
index 0a9c23aebf729..92d84d8026a1d 100644
--- a/x-pack/plugins/security_solution/common/types/data_table/index.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/data_table/index.ts
@@ -5,13 +5,10 @@
* 2.0.
*/
+import { Direction } from '@kbn/timelines-plugin/common';
import * as runtimeTypes from 'io-ts';
-import type { VIEW_SELECTION } from '../../constants';
-export enum Direction {
- asc = 'asc',
- desc = 'desc',
-}
+export { Direction };
export type SortDirectionTable = 'none' | 'asc' | 'desc' | Direction;
export interface SortColumnTable {
@@ -21,8 +18,6 @@ export interface SortColumnTable {
sortDirection: SortDirectionTable;
}
-export type { TableById } from '../../../public/common/store/data_table/types';
-
export enum TableId {
usersPageEvents = 'users-page-events',
hostsPageEvents = 'hosts-page-events',
@@ -67,10 +62,16 @@ const TableIdLiteralRt = runtimeTypes.union([
runtimeTypes.literal(TableId.test),
runtimeTypes.literal(TableId.rulePreview),
runtimeTypes.literal(TableId.kubernetesPageSessions),
+ runtimeTypes.literal(TableId.alertsOnCasePage),
]);
export type TableIdLiteral = runtimeTypes.TypeOf;
+export const VIEW_SELECTION = {
+ gridView: 'gridView',
+ eventRenderedView: 'eventRenderedView',
+} as const;
+
export type ViewSelectionTypes = keyof typeof VIEW_SELECTION;
export type ViewSelection = typeof VIEW_SELECTION[ViewSelectionTypes];
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/types/detail_panel.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/detail_panel.ts
new file mode 100644
index 0000000000000..075f7e5ad7183
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/detail_panel.ts
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+type EmptyObject = Record;
+
+export enum FlowTargetSourceDest {
+ destination = 'destination',
+ source = 'source',
+}
+
+export type ExpandedEventType =
+ | {
+ panelView?: 'eventDetail';
+ params?: {
+ eventId: string;
+ indexName: string;
+ refetch?: () => void;
+ };
+ }
+ | EmptyObject;
+
+export type ExpandedHostType =
+ | {
+ panelView?: 'hostDetail';
+ params?: {
+ hostName: string;
+ };
+ }
+ | EmptyObject;
+
+export type ExpandedNetworkType =
+ | {
+ panelView?: 'networkDetail';
+ params?: {
+ ip: string;
+ flowTarget: FlowTargetSourceDest;
+ };
+ }
+ | EmptyObject;
+
+export type ExpandedUserType =
+ | {
+ panelView?: 'userDetail';
+ params?: {
+ userName: string;
+ };
+ }
+ | EmptyObject;
+
+export type ExpandedDetailType =
+ | ExpandedEventType
+ | ExpandedHostType
+ | ExpandedNetworkType
+ | ExpandedUserType;
+
+export enum TimelineTabs {
+ query = 'query',
+ graph = 'graph',
+ notes = 'notes',
+ pinned = 'pinned',
+ eql = 'eql',
+ session = 'session',
+}
+
+export type ExpandedDetailTimeline = {
+ [tab in TimelineTabs]?: ExpandedDetailType;
+};
+
+export type ExpandedDetail = Partial>;
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/types/header_actions/index.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/header_actions/index.ts
new file mode 100644
index 0000000000000..f8dea6bf3612b
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/header_actions/index.ts
@@ -0,0 +1,107 @@
+/*
+ * 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 type { EuiDataGridCellValueElementProps, EuiDataGridColumn } from '@elastic/eui';
+import type { IFieldSubType } from '@kbn/es-query';
+import type { FieldBrowserOptions } from '@kbn/triggers-actions-ui-plugin/public';
+import type { ComponentType, JSXElementConstructor } from 'react';
+import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import { BrowserFields } from '@kbn/rule-registry-plugin/common';
+import { TimelineNonEcsData } from '@kbn/timelines-plugin/common';
+import { OnRowSelected } from '../../../components/data_table/types';
+import type { SortColumnTable } from '../data_table';
+import { SetEventsDeleted, SetEventsLoading } from '..';
+
+export type ColumnHeaderType = 'not-filtered' | 'text-filter';
+
+/** Uniquely identifies a column */
+export type ColumnId = string;
+
+/** The specification of a column header */
+export type ColumnHeaderOptions = Pick<
+ EuiDataGridColumn,
+ | 'actions'
+ | 'defaultSortDirection'
+ | 'display'
+ | 'displayAsText'
+ | 'id'
+ | 'initialWidth'
+ | 'isSortable'
+ | 'schema'
+ | 'isExpandable'
+ | 'isResizable'
+> & {
+ aggregatable?: boolean;
+ category?: string;
+ columnHeaderType: ColumnHeaderType;
+ description?: string | null;
+ esTypes?: string[];
+ example?: string | number | null;
+ format?: string;
+ linkField?: string;
+ placeholder?: string;
+ subType?: IFieldSubType;
+ type?: string;
+};
+
+export interface HeaderActionProps {
+ width: number;
+ browserFields: BrowserFields;
+ columnHeaders: ColumnHeaderOptions[];
+ fieldBrowserOptions?: FieldBrowserOptions;
+ isEventViewer?: boolean;
+ isSelectAllChecked: boolean;
+ onSelectAll: ({ isSelected }: { isSelected: boolean }) => void;
+ showEventsSelect: boolean;
+ showSelectAllCheckbox: boolean;
+ sort: SortColumnTable[];
+ tabType: string;
+ timelineId: string;
+}
+
+export type HeaderCellRender = ComponentType | ComponentType;
+
+type GenericActionRowCellRenderProps = Pick<
+ EuiDataGridCellValueElementProps,
+ 'rowIndex' | 'columnId'
+>;
+
+export type RowCellRender =
+ | JSXElementConstructor
+ | ((props: GenericActionRowCellRenderProps) => JSX.Element)
+ | JSXElementConstructor
+ | ((props: ActionProps) => JSX.Element);
+
+export interface ActionProps {
+ action?: RowCellRender;
+ ariaRowindex: number;
+ checked: boolean;
+ columnId: string;
+ columnValues: string;
+ data: TimelineNonEcsData[];
+ disabled?: boolean;
+ ecsData: Ecs;
+ eventId: string;
+ eventIdToNoteIds?: Readonly>;
+ index: number;
+ isEventPinned?: boolean;
+ isEventViewer?: boolean;
+ loadingEventIds: Readonly;
+ onEventDetailsPanelOpened: () => void;
+ onRowSelected: OnRowSelected;
+ onRuleChange?: () => void;
+ refetch?: () => void;
+ rowIndex: number;
+ setEventsDeleted: SetEventsDeleted;
+ setEventsLoading: SetEventsLoading;
+ showCheckboxes: boolean;
+ showNotes?: boolean;
+ tabType?: string;
+ timelineId: string;
+ toggleShowNotes?: () => void;
+ width?: number;
+}
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/types/index.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/index.ts
new file mode 100644
index 0000000000000..8a10f51754c9b
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/index.ts
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+
+export * from './data_table';
+export * from './header_actions';
+export * from './session_view';
+
+export const FILTER_OPEN = 'open' as const;
+export const FILTER_CLOSED = 'closed' as const;
+export const FILTER_ACKNOWLEDGED = 'acknowledged' as const;
+
+export type SetEventsLoading = (params: { eventIds: string[]; isLoading: boolean }) => void;
+export type SetEventsDeleted = (params: { eventIds: string[]; isDeleted: boolean }) => void;
+
+export { TimelineTabs } from './detail_panel';
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/types/risk_scores.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/risk_scores.ts
new file mode 100644
index 0000000000000..810f868e047cb
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/risk_scores.ts
@@ -0,0 +1,18 @@
+/*
+ * 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.
+ */
+
+export interface ESProcessorConfig {
+ on_failure?: Processor[];
+ ignore_failure?: boolean;
+ if?: string;
+ tag?: string;
+ [key: string]: unknown;
+}
+
+export interface Processor {
+ [typeName: string]: ESProcessorConfig;
+}
diff --git a/x-pack/packages/kbn-securitysolution-data-table/common/types/session_view/index.ts b/x-pack/packages/kbn-securitysolution-data-table/common/types/session_view/index.ts
new file mode 100644
index 0000000000000..105e5cc6b1d84
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/common/types/session_view/index.ts
@@ -0,0 +1,13 @@
+/*
+ * 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.
+ */
+
+export interface SessionViewConfig {
+ sessionEntityId: string;
+ jumpToEntityId?: string;
+ jumpToCursor?: string;
+ investigatedAlertId?: string;
+}
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/default_headers.ts b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/default_headers.ts
similarity index 91%
rename from x-pack/plugins/security_solution/public/common/components/data_table/column_headers/default_headers.ts
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/default_headers.ts
index 8d1736cc172c3..20a36c0803cec 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/default_headers.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/default_headers.ts
@@ -5,8 +5,7 @@
* 2.0.
*/
-import type { ColumnHeaderType } from '../../../../../common/types';
-import type { ColumnHeaderOptions } from '../../../../../common/types/timeline';
+import type { ColumnHeaderOptions, ColumnHeaderType } from '../../../common/types';
import { DEFAULT_TABLE_COLUMN_MIN_WIDTH, DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH } from '../constants';
export const defaultColumnHeaderType: ColumnHeaderType = 'not-filtered';
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.test.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.test.tsx
similarity index 99%
rename from x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.test.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.test.tsx
index 34f3320513b47..b6a4ae9cd0c67 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.test.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.test.tsx
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+
import { mount } from 'enzyme';
import { set } from '@kbn/safer-lodash-set/fp';
import { omit } from 'lodash/fp';
@@ -18,9 +19,9 @@ import {
allowSorting,
} from './helpers';
import { DEFAULT_TABLE_COLUMN_MIN_WIDTH, DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH } from '../constants';
-import type { ColumnHeaderOptions } from '../../../../../common/types';
-import { mockBrowserFields } from '../../../containers/source/mock';
+import type { ColumnHeaderOptions } from '../../../common/types';
import { defaultHeaders } from '../../../store/data_table/defaults';
+import { mockBrowserFields } from '../../../mock/mock_source';
window.matchMedia = jest.fn().mockImplementation((query) => {
return {
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx
similarity index 83%
rename from x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx
index a39a0fc3664c8..95adca844984c 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/helpers.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/helpers.tsx
@@ -5,18 +5,15 @@
* 2.0.
*/
+import { i18n } from '@kbn/i18n';
import type { EuiDataGridColumnActions } from '@elastic/eui';
import { keyBy } from 'lodash/fp';
import React from 'react';
-import { eventRenderedViewColumns } from '../../../../detections/configurations/security_solution_detections/columns';
-import type {
- BrowserField,
- BrowserFields,
-} from '../../../../../common/search_strategy/index_fields';
-import type { ColumnHeaderOptions } from '../../../../../common/types/timeline';
+import { BrowserField, BrowserFields } from '@kbn/timelines-plugin/common';
import { DEFAULT_TABLE_COLUMN_MIN_WIDTH, DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH } from '../constants';
import { defaultColumnHeaderType } from '../../../store/data_table/defaults';
+import { ColumnHeaderOptions } from '../../../common/types';
const defaultActions: EuiDataGridColumnActions = {
showSortAsc: true,
@@ -152,6 +149,48 @@ export const getSchema = (type: string | undefined): BUILT_IN_SCHEMA | undefined
}
};
+const eventRenderedViewColumns: ColumnHeaderOptions[] = [
+ {
+ columnHeaderType: defaultColumnHeaderType,
+ id: '@timestamp',
+ displayAsText: i18n.translate(
+ 'securitySolutionDataTable.EventRenderedView.timestampTitle.column',
+ {
+ defaultMessage: 'Timestamp',
+ }
+ ),
+ initialWidth: DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH + 50,
+ actions: false,
+ isExpandable: false,
+ isResizable: false,
+ },
+ {
+ columnHeaderType: defaultColumnHeaderType,
+ displayAsText: i18n.translate('securitySolutionDataTable.EventRenderedView.ruleTitle.column', {
+ defaultMessage: 'Rule',
+ }),
+ id: 'kibana.alert.rule.name',
+ initialWidth: DEFAULT_TABLE_COLUMN_MIN_WIDTH + 50,
+ linkField: 'kibana.alert.rule.uuid',
+ actions: false,
+ isExpandable: false,
+ isResizable: false,
+ },
+ {
+ columnHeaderType: defaultColumnHeaderType,
+ id: 'eventSummary',
+ displayAsText: i18n.translate(
+ 'securitySolutionDataTable.EventRenderedView.eventSummary.column',
+ {
+ defaultMessage: 'Event Summary',
+ }
+ ),
+ actions: false,
+ isExpandable: false,
+ isResizable: false,
+ },
+];
+
/** Enriches the column headers with field details from the specified browserFields */
export const getColumnHeaders = (
headers: ColumnHeaderOptions[],
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/translations.ts b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/translations.ts
similarity index 82%
rename from x-pack/plugins/security_solution/public/common/components/data_table/column_headers/translations.ts
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/translations.ts
index c7e32ef1d15da..48aeb0d0f0d9e 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/column_headers/translations.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/column_headers/translations.ts
@@ -8,7 +8,7 @@
import { i18n } from '@kbn/i18n';
export const REMOVE_COLUMN = i18n.translate(
- 'xpack.securitySolution.columnHeaders.flyout.pane.removeColumnButtonLabel',
+ 'securitySolutionDataTable.columnHeaders.flyout.pane.removeColumnButtonLabel',
{
defaultMessage: 'Remove column',
}
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/constants.ts b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/constants.ts
similarity index 59%
rename from x-pack/plugins/security_solution/public/common/components/data_table/constants.ts
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/constants.ts
index 3658382879300..a1e5bdbc9bc8e 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/constants.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/constants.ts
@@ -10,3 +10,12 @@ export const DEFAULT_TABLE_COLUMN_MIN_WIDTH = 180; // px
/** The default minimum width of a column of type `date` */
export const DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH = 190; // px
+
+/** The default minimum width of a column (when a width for the column type is not specified) */
+export const DEFAULT_COLUMN_MIN_WIDTH = 180; // px
+
+/** The minimum width of a resized column */
+export const RESIZED_COLUMN_MIN_WITH = 70; // px
+
+/** The default minimum width of a column of type `date` */
+export const DEFAULT_DATE_COLUMN_MIN_WIDTH = 190; // px
diff --git a/x-pack/packages/kbn-securitysolution-data-table/components/data_table/data_table.stories.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/data_table.stories.tsx
new file mode 100644
index 0000000000000..29b50a59af86a
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/data_table.stories.tsx
@@ -0,0 +1,107 @@
+/*
+ * 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 { CellActionsProvider } from '@kbn/cell-actions';
+import { I18nProvider } from '@kbn/i18n-react';
+import { CellValueElementProps } from '@kbn/timelines-plugin/common';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import React from 'react';
+import { DragDropContext, DropResult, ResponderProvided } from 'react-beautiful-dnd';
+// eslint-disable-next-line @kbn/eslint/module_migration
+import { ThemeProvider } from 'styled-components';
+import { Provider as ReduxStoreProvider } from 'react-redux';
+import { euiDarkVars } from '@kbn/ui-theme';
+import { Store } from 'redux';
+import { createStore as createReduxStore } from 'redux';
+import type { Action } from '@kbn/ui-actions-plugin/public';
+import { EuiButtonEmpty } from '@elastic/eui';
+import { mockGlobalState } from '../../mock/global_state';
+import { getMappedNonEcsValue } from './utils';
+import { TableId } from '../..';
+import { mockTimelineData } from '../../mock/mock_timeline_data';
+import { DataTableComponent } from '.';
+
+export default {
+ component: DataTableComponent,
+ title: 'DataTableComponent',
+};
+
+const createStore = (state: any) => createReduxStore(() => state, state);
+
+interface Props {
+ children?: React.ReactNode;
+ store?: Store;
+ onDragEnd?: (result: DropResult, provided: ResponderProvided) => void;
+ cellActions?: Action[];
+}
+
+const StoryCellRenderer: React.FC = ({ columnId, data }) => (
+ <>
+ {getMappedNonEcsValue({
+ data,
+ fieldName: columnId,
+ })?.reduce((x) => x[0]) ?? ''}
+ >
+);
+
+const StoryProviders: React.FC = ({ children, onDragEnd = () => {}, cellActions = [] }) => {
+ const store = createStore(mockGlobalState);
+ const queryClient = new QueryClient();
+
+ return (
+
+
+ ({ eui: euiDarkVars, darkMode: true })}>
+
+ Promise.resolve(cellActions)}>
+ {children}
+
+
+
+
+
+ );
+};
+
+const MockFieldBrowser = () => {
+ return (
+ window.alert('Not implemented')}
+ >
+ Field Browser
+
+ );
+};
+
+export function Example() {
+ return (
+
+ {},
+ onChangePage: () => {},
+ }}
+ loadPage={() => {}}
+ rowRenderers={[]}
+ totalItems={mockTimelineData.length}
+ getFieldBrowser={() => }
+ />
+
+ );
+}
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/helpers.test.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.test.tsx
similarity index 98%
rename from x-pack/plugins/security_solution/public/common/components/data_table/helpers.test.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.test.tsx
index db337d3bdaf8f..597f661aa3650 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/helpers.test.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.test.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import type { ColumnHeaderOptions } from '../../../../common/types';
+import type { ColumnHeaderOptions } from '../../common/types';
import {
hasCellActions,
mapSortDirectionToDirection,
@@ -14,7 +14,7 @@ import {
} from './helpers';
import { euiThemeVars } from '@kbn/ui-theme';
-import { mockDnsEvent } from '../../mock';
+import { mockDnsEvent } from '../../mock/mock_timeline_data';
describe('helpers', () => {
describe('mapSortDirectionToDirection', () => {
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/helpers.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx
similarity index 91%
rename from x-pack/plugins/security_solution/public/common/components/data_table/helpers.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx
index a31c40d45dace..38c1384b3468b 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/helpers.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/helpers.tsx
@@ -10,9 +10,12 @@ import { isEmpty } from 'lodash/fp';
import type { EuiDataGridCellValueElementProps } from '@elastic/eui';
import type { EuiTheme } from '@kbn/kibana-react-plugin/common';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
-import type { SortColumnTable } from '../../../../common/types';
-import type { TimelineItem, TimelineNonEcsData } from '../../../../common/search_strategy';
-import type { ColumnHeaderOptions, SortDirection } from '../../../../common/types/timeline';
+import {
+ ColumnHeaderOptions,
+ TimelineItem,
+ TimelineNonEcsData,
+} from '@kbn/timelines-plugin/common';
+import type { SortColumnTable, SortDirectionTable } from '../../common/types';
/**
* Creates mapping of eventID -> fieldData for given fieldsToKeep. Used to store additional field
@@ -42,7 +45,7 @@ export const isEventBuildingBlockType = (event: Ecs): boolean =>
!isEmpty(event.kibana?.alert?.building_block_type);
/** Maps (Redux) `SortDirection` to the `direction` values used by `EuiDataGrid` */
-export const mapSortDirectionToDirection = (sortDirection: SortDirection): 'asc' | 'desc' => {
+export const mapSortDirectionToDirection = (sortDirection: SortDirectionTable): 'asc' | 'desc' => {
switch (sortDirection) {
case 'asc': // fall through
case 'desc':
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/index.test.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.test.tsx
similarity index 88%
rename from x-pack/plugins/security_solution/public/common/components/data_table/index.test.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.test.tsx
index 86cf4eabeba1b..28217ff931d43 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/index.test.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.test.tsx
@@ -13,12 +13,14 @@ import { DataTableComponent } from '.';
import { REMOVE_COLUMN } from './column_headers/translations';
import { useMountAppended } from '../../utils/use_mount_appended';
import type { EuiDataGridColumn } from '@elastic/eui';
-import { defaultHeaders, mockGlobalState, mockTimelineData, TestProviders } from '../../mock';
-import { mockBrowserFields } from '../../containers/source/mock';
-import { getMappedNonEcsValue } from '../../../timelines/components/timeline/body/data_driven_columns';
-import type { CellValueElementProps } from '../../../../common/types';
-import { TableId } from '../../../../common/types';
-import { SecurityCellActionsTrigger } from '../cell_actions';
+import { TableId } from '../../common/types';
+import { defaultHeaders } from '../../mock/header';
+import { mockGlobalState } from '../../mock/global_state';
+import { mockTimelineData } from '../../mock/mock_timeline_data';
+import { TestProviders } from '../../mock/test_providers';
+import { CellValueElementProps } from '@kbn/timelines-plugin/common';
+import { mockBrowserFields } from '../../mock/mock_source';
+import { getMappedNonEcsValue } from './utils';
const mockDispatch = jest.fn();
jest.mock('react-redux', () => ({
@@ -41,20 +43,6 @@ jest.mock('./column_headers/helpers', () => ({
getColumnHeaders: () => mockGetColumnHeaders(),
}));
-jest.mock('@kbn/kibana-react-plugin/public', () => {
- const originalModule = jest.requireActual('@kbn/kibana-react-plugin/public');
- return {
- ...originalModule,
- useKibana: () => ({
- services: {
- triggersActionsUi: {
- getFieldBrowser: jest.fn(),
- },
- },
- }),
- };
-});
-
jest.mock('../../hooks/use_selector', () => ({
useShallowEqualSelector: () => mockGlobalState.dataTable.tableById['table-test'],
useDeepEqualSelector: () => mockGlobalState.dataTable.tableById['table-test'],
@@ -104,6 +92,7 @@ describe('DataTable', () => {
onChangeItemsPerPage: jest.fn(),
onChangePage: jest.fn(),
},
+ getFieldBrowser: jest.fn(),
};
beforeEach(() => {
@@ -178,13 +167,17 @@ describe('DataTable', () => {
const data = mockTimelineData.slice(0, 1);
const wrapper = mount(
-
+
);
wrapper.update();
expect(mockUseDataGridColumnsCellActions).toHaveBeenCalledWith({
- triggerId: SecurityCellActionsTrigger.DEFAULT,
+ triggerId: 'mockCellActionsTrigger',
fields: [
{
name: '@timestamp',
@@ -200,10 +193,10 @@ describe('DataTable', () => {
});
});
- test('does not render cell actions if disableCellActions is true', () => {
+ test('does not render cell actions if cellActionsTriggerId is not specified', () => {
const wrapper = mount(
-
+
);
wrapper.update();
@@ -219,7 +212,11 @@ describe('DataTable', () => {
mockUseDataGridColumnsCellActions.mockReturnValueOnce([]);
const wrapper = mount(
-
+
);
wrapper.update();
@@ -237,7 +234,11 @@ describe('DataTable', () => {
mockUseDataGridColumnsCellActions.mockReturnValueOnce([[() => ]]);
const wrapper = mount(
-
+
);
wrapper.update();
diff --git a/x-pack/plugins/security_solution/public/common/components/data_table/index.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.tsx
similarity index 88%
rename from x-pack/plugins/security_solution/public/common/components/data_table/index.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.tsx
index a48bf61f4ac93..0f1e34099997f 100644
--- a/x-pack/plugins/security_solution/public/common/components/data_table/index.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/data_table/index.tsx
@@ -5,6 +5,8 @@
* 2.0.
*/
+/* eslint-disable @kbn/eslint/module_migration */
+
import type {
EuiDataGridRefProps,
EuiDataGridColumn,
@@ -14,6 +16,7 @@ import type {
EuiDataGridControlColumn,
EuiDataGridPaginationProps,
EuiDataGridRowHeightsOptions,
+ EuiDataGridProps,
} from '@elastic/eui';
import { EuiDataGrid, EuiProgress } from '@elastic/eui';
import { getOr } from 'lodash/fp';
@@ -23,44 +26,60 @@ import { useDispatch } from 'react-redux';
import styled, { ThemeContext } from 'styled-components';
import type { EuiTheme } from '@kbn/kibana-react-plugin/common';
-import type { FieldBrowserOptions } from '@kbn/triggers-actions-ui-plugin/public';
+import type {
+ FieldBrowserOptions,
+ FieldBrowserProps,
+} from '@kbn/triggers-actions-ui-plugin/public';
import { i18n } from '@kbn/i18n';
import {
- useDataGridColumnsSecurityCellActions,
- SecurityCellActionsTrigger,
- type UseDataGridColumnsSecurityCellActionsProps,
-} from '../cell_actions';
-import type {
+ BrowserFields,
CellValueElementProps,
ColumnHeaderOptions,
RowRenderer,
-} from '../../../../common/types/timeline';
-
-import type { TimelineItem } from '../../../../common/search_strategy/timeline';
+ TimelineItem,
+} from '@kbn/timelines-plugin/common';
+import { useDataGridColumnsCellActions } from '@kbn/cell-actions';
+import { DataTableModel, DataTableState } from '../../store/data_table/types';
import { getColumnHeader, getColumnHeaders } from './column_headers/helpers';
import { addBuildingBlockStyle, mapSortDirectionToDirection, mapSortingColumns } from './helpers';
-import type { BrowserFields } from '../../../../common/search_strategy/index_fields';
import { REMOVE_COLUMN } from './column_headers/translations';
import { dataTableActions, dataTableSelectors } from '../../store/data_table';
import type { BulkActionsProp } from '../toolbar/bulk_actions/types';
-import { useKibana } from '../../lib/kibana';
import { getPageRowIndex } from './pagination';
import { UnitCount } from '../toolbar/unit';
import { useShallowEqualSelector } from '../../hooks/use_selector';
import { tableDefaults } from '../../store/data_table/defaults';
-const DATA_TABLE_ARIA_LABEL = i18n.translate('xpack.securitySolution.dataTable.ariaLabel', {
+const DATA_TABLE_ARIA_LABEL = i18n.translate('securitySolutionDataTable.dataTable.ariaLabel', {
defaultMessage: 'Alerts',
});
-export interface DataTableProps {
+type GetFieldBrowser = (props: FieldBrowserProps) => void;
+
+type NonCustomizableGridProps =
+ | 'id'
+ | 'data-test-subj'
+ | 'aria-label'
+ | 'aria-labelledby'
+ | 'columns'
+ | 'columnVisibility'
+ | 'gridStyle'
+ | 'leadingControlColumns'
+ | 'toolbarVisibility'
+ | 'rowCount'
+ | 'renderCellValue'
+ | 'sorting'
+ | 'onColumnResize'
+ | 'pagination'
+ | 'rowHeightsOptions';
+
+interface BaseDataTableProps {
additionalControls?: React.ReactNode;
browserFields: BrowserFields;
bulkActions?: BulkActionsProp;
data: TimelineItem[];
- disableCellActions?: boolean;
fieldBrowserOptions?: FieldBrowserOptions;
id: string;
leadingControlColumns: EuiDataGridControlColumn[];
@@ -73,8 +92,12 @@ export interface DataTableProps {
totalItems: number;
rowHeightsOptions?: EuiDataGridRowHeightsOptions;
isEventRenderedView?: boolean;
+ getFieldBrowser: GetFieldBrowser;
+ cellActionsTriggerId?: string;
}
+export type DataTableProps = BaseDataTableProps & Omit;
+
const ES_LIMIT_COUNT = 9999;
const gridStyle = (isEventRenderedView: boolean | undefined = false): EuiDataGridStyle => ({
@@ -115,7 +138,6 @@ export const DataTableComponent = React.memo(
browserFields,
bulkActions = true,
data,
- disableCellActions = false,
fieldBrowserOptions,
hasCrudPermissions,
id,
@@ -128,12 +150,14 @@ export const DataTableComponent = React.memo(
totalItems,
rowHeightsOptions,
isEventRenderedView = false,
+ getFieldBrowser,
+ cellActionsTriggerId,
+ ...otherProps
}) => {
- const {
- triggersActionsUi: { getFieldBrowser },
- } = useKibana().services;
const getDataTable = dataTableSelectors.getTableByIdSelector();
- const dataTable = useShallowEqualSelector((state) => getDataTable(state, id) ?? tableDefaults);
+ const dataTable = useShallowEqualSelector(
+ (state) => getDataTable(state, id) ?? tableDefaults
+ );
const { columns, selectedEventIds, showCheckboxes, sort, isLoading, defaultColumns } =
dataTable;
@@ -303,8 +327,8 @@ export const DataTableComponent = React.memo(
[dispatch, id]
);
- const columnsCellActionsProps = useMemo(() => {
- const fields = disableCellActions
+ const columnsCellActionsProps = useMemo(() => {
+ const fields = !cellActionsTriggerId
? []
: columnHeaders.map((column) => ({
name: column.id,
@@ -317,16 +341,16 @@ export const DataTableComponent = React.memo(
}));
return {
- triggerId: SecurityCellActionsTrigger.DEFAULT,
+ triggerId: cellActionsTriggerId || '',
fields,
metadata: {
scopeId: id,
},
dataGridRef,
};
- }, [disableCellActions, columnHeaders, data, id]);
+ }, [columnHeaders, cellActionsTriggerId, id, data]);
- const columnsCellActions = useDataGridColumnsSecurityCellActions(columnsCellActionsProps);
+ const columnsCellActions = useDataGridColumnsCellActions(columnsCellActionsProps);
const columnsWithCellActions: EuiDataGridColumn[] = useMemo(
() =>
@@ -417,6 +441,7 @@ export const DataTableComponent = React.memo(
<>
ES_LIMIT_COUNT}>
{
+ const item = data.find((d) => d.field === fieldName);
+ if (item != null && item.value != null) {
+ return item.value;
+ }
+ return undefined;
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/bulk_actions/types.ts b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/bulk_actions/types.ts
new file mode 100644
index 0000000000000..ab556f1908919
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/bulk_actions/types.ts
@@ -0,0 +1,39 @@
+/*
+ * 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 { TimelineItem } from '@kbn/timelines-plugin/common';
+
+export type AlertWorkflowStatus = 'open' | 'closed' | 'acknowledged';
+
+export interface CustomBulkAction {
+ key: string;
+ label: string;
+ disableOnQuery?: boolean;
+ disabledLabel?: string;
+ onClick: (items?: TimelineItem[]) => void;
+ ['data-test-subj']?: string;
+}
+
+export type CustomBulkActionProp = Omit & {
+ onClick: (eventIds: string[]) => void;
+};
+
+export interface BulkActionsObjectProp {
+ alertStatusActions?: boolean;
+ onAlertStatusActionSuccess?: OnUpdateAlertStatusSuccess;
+ onAlertStatusActionFailure?: OnUpdateAlertStatusError;
+ customBulkActions?: CustomBulkAction[];
+}
+
+export type OnUpdateAlertStatusSuccess = (
+ updated: number,
+ conflicts: number,
+ status: AlertWorkflowStatus
+) => void;
+export type OnUpdateAlertStatusError = (status: AlertWorkflowStatus, error: Error) => void;
+
+export type BulkActionsProp = boolean | BulkActionsObjectProp;
diff --git a/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/index.ts b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/index.ts
new file mode 100644
index 0000000000000..ca28e59d4bf51
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/index.ts
@@ -0,0 +1,11 @@
+/*
+ * 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 * as i18n from './translations';
+
+export * from './styles';
+export const defaultUnit = (n: number) => i18n.ALERTS_UNIT(n);
diff --git a/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/styles.tsx b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/styles.tsx
new file mode 100644
index 0000000000000..c135ac935337e
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/styles.tsx
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ */
+
+// eslint-disable-next-line @kbn/eslint/module_migration
+import styled from 'styled-components';
+
+export const UnitCount = styled.span`
+ font-size: ${({ theme }) => theme.eui.euiFontSizeXS};
+ font-weight: ${({ theme }) => theme.eui.euiFontWeightSemiBold};
+ border-right: ${({ theme }) => theme.eui.euiBorderThin};
+ margin-right: ${({ theme }) => theme.eui.euiSizeS};
+ padding-right: ${({ theme }) => theme.eui.euiSizeM};
+`;
diff --git a/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/translations.ts b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/translations.ts
new file mode 100644
index 0000000000000..0ec18a9e509cd
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/components/toolbar/unit/translations.ts
@@ -0,0 +1,14 @@
+/*
+ * 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 { i18n } from '@kbn/i18n';
+
+export const ALERTS_UNIT = (totalCount: number) =>
+ i18n.translate('securitySolutionDataTable.eventsTab.unit', {
+ values: { totalCount },
+ defaultMessage: `{totalCount, plural, =1 {alert} other {alerts}}`,
+ });
diff --git a/x-pack/packages/kbn-securitysolution-data-table/hooks/use_selector.tsx b/x-pack/packages/kbn-securitysolution-data-table/hooks/use_selector.tsx
new file mode 100644
index 0000000000000..55db6d7f4dfdd
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/hooks/use_selector.tsx
@@ -0,0 +1,16 @@
+/*
+ * 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 { shallowEqual, useSelector } from 'react-redux';
+
+export type TypedUseSelectorHook = (
+ selector: (state: TState) => TSelected,
+ equalityFn?: (left: TSelected, right: TSelected) => boolean
+) => TSelected;
+
+export const useShallowEqualSelector: TypedUseSelectorHook = (selector) =>
+ useSelector(selector, shallowEqual);
diff --git a/x-pack/packages/kbn-securitysolution-data-table/index.ts b/x-pack/packages/kbn-securitysolution-data-table/index.ts
new file mode 100644
index 0000000000000..0f58e52fba4db
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/index.ts
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+export { DataTableComponent } from './components/data_table';
+
+export { dataTableActions, dataTableSelectors } from './store/data_table';
+export { getTableByIdSelector } from './store/data_table/selectors';
+export { dataTableReducer } from './store/data_table/reducer';
+export {
+ tableDefaults,
+ defaultColumnHeaderType,
+ defaultHeaders,
+} from './store/data_table/defaults';
+
+export type { TableState, DataTableState, TableById } from './store/data_table/types';
+export type { DataTableModel, SubsetDataTableModel } from './store/data_table/model';
+
+export {
+ Direction,
+ tableEntity,
+ FILTER_OPEN,
+ TimelineTabs,
+ TableId,
+ TableEntityType,
+} from './common/types';
+export type {
+ TableIdLiteral,
+ ViewSelection,
+ SortDirectionTable,
+ SortColumnTable,
+} from './common/types';
+
+export { getColumnHeaders } from './components/data_table/column_headers/helpers';
+export {
+ getEventIdToDataMapping,
+ addBuildingBlockStyle,
+ isEventBuildingBlockType,
+} from './components/data_table/helpers';
+export { getPageRowIndex } from './components/data_table/pagination';
diff --git a/x-pack/packages/kbn-securitysolution-data-table/jest.config.js b/x-pack/packages/kbn-securitysolution-data-table/jest.config.js
new file mode 100644
index 0000000000000..439c6c690765b
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/jest.config.js
@@ -0,0 +1,12 @@
+/*
+ * 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.
+ */
+
+module.exports = {
+ preset: '@kbn/test',
+ roots: ['/x-pack/packages/kbn-securitysolution-data-table'],
+ rootDir: '../../..',
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/kibana.jsonc b/x-pack/packages/kbn-securitysolution-data-table/kibana.jsonc
new file mode 100644
index 0000000000000..5298db752359f
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/kibana.jsonc
@@ -0,0 +1,5 @@
+{
+ "type": "shared-common",
+ "id": "@kbn/securitysolution-data-table",
+ "owner": "@elastic/security-threat-hunting-investigations"
+}
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/library_load_event.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/library_load_event.ts
new file mode 100644
index 0000000000000..a7cd3ec96d22f
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/library_load_event.ts
@@ -0,0 +1,63 @@
+/*
+ * 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 type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+
+export const demoEndpointLibraryLoadEvent: Ecs = {
+ file: {
+ path: ['C:\\Windows\\System32\\bcrypt.dll'],
+ hash: {
+ md5: ['00439016776de367bad087d739a03797'],
+ sha1: ['2c4ba5c1482987d50a182bad915f52cd6611ee63'],
+ sha256: ['e70f5d8f87aab14e3160227d38387889befbe37fa4f8f5adc59eff52804b35fd'],
+ },
+ name: ['bcrypt.dll'],
+ },
+ host: {
+ os: {
+ full: ['Windows Server 2019 Datacenter 1809 (10.0.17763.1697)'],
+ name: ['Windows'],
+ version: ['1809 (10.0.17763.1697)'],
+ family: ['windows'],
+ kernel: ['1809 (10.0.17763.1697)'],
+ platform: ['windows'],
+ },
+ mac: ['aa:bb:cc:dd:ee:ff'],
+ name: ['win2019-endpoint-1'],
+ architecture: ['x86_64'],
+ ip: ['10.1.2.3'],
+ id: ['d8ad572e-d224-4044-a57d-f5a84c0dfe5d'],
+ },
+ event: {
+ category: ['library'],
+ kind: ['event'],
+ created: ['2021-02-05T21:27:23.921Z'],
+ module: ['endpoint'],
+ action: ['load'],
+ type: ['start'],
+ id: ['LzzWB9jjGmCwGMvk++++Da5H'],
+ dataset: ['endpoint.events.library'],
+ },
+ process: {
+ name: ['sshd.exe'],
+ pid: [9644],
+ entity_id: [
+ 'MWQxNWNmOWUtM2RjNy01Yjk3LWY1ODYtNzQzZjdjMjUxOGIyLTk2NDQtMTMyNTcwMzQwNDEuNzgyMTczODAw',
+ ],
+ executable: ['C:\\Program Files\\OpenSSH-Win64\\sshd.exe'],
+ },
+ agent: {
+ type: ['endpoint'],
+ },
+ user: {
+ name: ['SYSTEM'],
+ domain: ['NT AUTHORITY'],
+ },
+ message: ['Endpoint DLL load event'],
+ timestamp: '2021-02-05T21:27:23.921Z',
+ _id: 'IAUYdHcBGrBB52F2zo8Q',
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/process_execution_malware_prevention_alert.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/process_execution_malware_prevention_alert.ts
new file mode 100644
index 0000000000000..252d3a8e76568
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/process_execution_malware_prevention_alert.ts
@@ -0,0 +1,80 @@
+/*
+ * 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 type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+
+export const demoEndpointProcessExecutionMalwarePreventionAlert: Ecs = {
+ process: {
+ hash: {
+ md5: ['177afc1eb0be88eb9983fb74111260c4'],
+ sha256: ['3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb'],
+ sha1: ['f573b85e9beb32121f1949217947b2adc6749e3d'],
+ },
+ entity_id: [
+ 'MWQxNWNmOWUtM2RjNy01Yjk3LWY1ODYtNzQzZjdjMjUxOGIyLTY5MjAtMTMyNDg5OTk2OTAuNDgzMzA3NzAw',
+ ],
+ executable: [
+ 'C:\\Users\\sean\\Downloads\\3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb.exe',
+ ],
+ name: [
+ 'C:\\Users\\sean\\Downloads\\3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb.exe',
+ ],
+ pid: [6920],
+ args: [
+ 'C:\\Users\\sean\\Downloads\\3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb.exe',
+ ],
+ },
+ host: {
+ os: {
+ full: ['Windows Server 2019 Datacenter 1809 (10.0.17763.1518)'],
+ name: ['Windows'],
+ version: ['1809 (10.0.17763.1518)'],
+ platform: ['windows'],
+ family: ['windows'],
+ kernel: ['1809 (10.0.17763.1518)'],
+ },
+ mac: ['aa:bb:cc:dd:ee:ff'],
+ architecture: ['x86_64'],
+ ip: ['10.1.2.3'],
+ id: ['d8ad572e-d224-4044-a57d-f5a84c0dfe5d'],
+ name: ['win2019-endpoint-1'],
+ },
+ file: {
+ mtime: ['2020-11-04T21:40:51.494Z'],
+ path: [
+ 'C:\\Users\\sean\\Downloads\\3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb.exe',
+ ],
+ owner: ['sean'],
+ hash: {
+ md5: ['177afc1eb0be88eb9983fb74111260c4'],
+ sha256: ['3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb'],
+ sha1: ['f573b85e9beb32121f1949217947b2adc6749e3d'],
+ },
+ name: ['3be13acde2f4dcded4fd8d518a513bfc9882407a6e384ffb17d12710db7d76fb.exe'],
+ extension: ['exe'],
+ size: [1604112],
+ },
+ event: {
+ category: ['malware', 'intrusion_detection', 'process'],
+ outcome: ['success'],
+ severity: [73],
+ code: ['malicious_file'],
+ action: ['execution'],
+ id: ['LsuMZVr+sdhvehVM++++Gp2Y'],
+ kind: ['alert'],
+ created: ['2020-11-04T21:41:30.533Z'],
+ module: ['endpoint'],
+ type: ['info', 'start', 'denied'],
+ dataset: ['endpoint.alerts'],
+ },
+ agent: {
+ type: ['endpoint'],
+ },
+ timestamp: '2020-11-04T21:41:30.533Z',
+ message: ['Malware Prevention Alert'],
+ _id: '0dA2lXUBn9bLIbfPkY7d',
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/registry_modification_event.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/registry_modification_event.ts
new file mode 100644
index 0000000000000..991df10dd77b0
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/endpoint/registry_modification_event.ts
@@ -0,0 +1,64 @@
+/*
+ * 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 type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+
+export const demoEndpointRegistryModificationEvent: Ecs = {
+ host: {
+ os: {
+ full: ['Windows Server 2019 Datacenter 1809 (10.0.17763.1697)'],
+ name: ['Windows'],
+ version: ['1809 (10.0.17763.1697)'],
+ family: ['windows'],
+ kernel: ['1809 (10.0.17763.1697)'],
+ platform: ['windows'],
+ },
+ mac: ['aa:bb:cc:dd:ee:ff'],
+ name: ['win2019-endpoint-1'],
+ architecture: ['x86_64'],
+ ip: ['10.1.2.3'],
+ id: ['d8ad572e-d224-4044-a57d-f5a84c0dfe5d'],
+ },
+ event: {
+ category: ['registry'],
+ kind: ['event'],
+ created: ['2021-02-04T13:44:31.559Z'],
+ module: ['endpoint'],
+ action: ['modification'],
+ type: ['change'],
+ id: ['LzzWB9jjGmCwGMvk++++CbOn'],
+ dataset: ['endpoint.events.registry'],
+ },
+ process: {
+ name: ['GoogleUpdate.exe'],
+ pid: [7408],
+ entity_id: [
+ 'MWQxNWNmOWUtM2RjNy01Yjk3LWY1ODYtNzQzZjdjMjUxOGIyLTc0MDgtMTMyNTY5MTk4NDguODY4NTI0ODAw',
+ ],
+ executable: ['C:\\Program Files (x86)\\Google\\Update\\GoogleUpdate.exe'],
+ },
+ registry: {
+ hive: ['HKLM'],
+ key: [
+ 'SOFTWARE\\WOW6432Node\\Google\\Update\\ClientState\\{430FD4D0-B729-4F61-AA34-91526481799D}\\CurrentState',
+ ],
+ path: [
+ 'HKLM\\SOFTWARE\\WOW6432Node\\Google\\Update\\ClientState\\{430FD4D0-B729-4F61-AA34-91526481799D}\\CurrentState\\StateValue',
+ ],
+ value: ['StateValue'],
+ },
+ agent: {
+ type: ['endpoint'],
+ },
+ user: {
+ name: ['SYSTEM'],
+ domain: ['NT AUTHORITY'],
+ },
+ message: ['Endpoint registry event'],
+ timestamp: '2021-02-04T13:44:31.559Z',
+ _id: '4cxLbXcBGrBB52F2uOfF',
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/timeline.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/timeline.ts
new file mode 100644
index 0000000000000..ebbe559b07719
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/demo_data/timeline.ts
@@ -0,0 +1,1117 @@
+/*
+ * 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 { TimelineItem } from '@kbn/timelines-plugin/common';
+
+export const demoTimelineData: TimelineItem[] = [
+ {
+ _id: '1',
+ data: [
+ { field: '@timestamp', value: ['2018-11-05T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'event.action', value: ['Action'] },
+ { field: 'host.name', value: ['apache'] },
+ { field: 'source.ip', value: ['192.168.0.1'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['john.dee'] },
+ ],
+ ecs: {
+ _id: '1',
+ timestamp: '2018-11-05T19:03:25.937Z',
+ host: { name: ['apache'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['1'],
+ action: ['Action'],
+ category: ['Access'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.1'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['1'], name: ['john.dee'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '3',
+ data: [
+ { field: '@timestamp', value: ['2018-11-07T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['1'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['nginx'] },
+ { field: 'source.ip', value: ['192.168.0.3'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['evan.davis'] },
+ ],
+ ecs: {
+ _id: '3',
+ timestamp: '2018-11-07T19:03:25.937Z',
+ host: { name: ['nginx'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['3'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [1],
+ },
+ source: { ip: ['192.168.0.3'], port: [443] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['3'], name: ['evan.davis'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '4',
+ data: [
+ { field: '@timestamp', value: ['2018-11-08T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['1'] },
+ { field: 'event.category', value: ['Attempted Administrator Privilege Gain'] },
+ { field: 'host.name', value: ['suricata'] },
+ { field: 'source.ip', value: ['192.168.0.3'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jenny.jones'] },
+ ],
+ ecs: {
+ _id: '4',
+ timestamp: '2018-11-08T19:03:25.937Z',
+ host: { name: ['suricata'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['4'],
+ category: ['Attempted Administrator Privilege Gain'],
+ type: ['Alert'],
+ module: ['suricata'],
+ severity: [1],
+ },
+ source: { ip: ['192.168.0.3'], port: [53] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ suricata: {
+ eve: {
+ flow_id: [4],
+ proto: [''],
+ alert: {
+ signature: [
+ 'ET EXPLOIT NETGEAR WNR2000v5 hidden_lang_avi Stack Overflow (CVE-2016-10174)',
+ ],
+ signature_id: [4],
+ },
+ },
+ },
+ user: { id: ['4'], name: ['jenny.jones'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '5',
+ data: [
+ { field: '@timestamp', value: ['2018-11-09T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.3'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['becky.davis'] },
+ ],
+ ecs: {
+ _id: '5',
+ timestamp: '2018-11-09T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['5'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.3'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['5'], name: ['becky.davis'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '6',
+ data: [
+ { field: '@timestamp', value: ['2018-11-10T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['braden.davis'] },
+ { field: 'source.ip', value: ['192.168.0.6'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ ],
+ ecs: {
+ _id: '6',
+ timestamp: '2018-11-10T19:03:25.937Z',
+ host: { name: ['braden.davis'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['6'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.6'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '8',
+ data: [
+ { field: '@timestamp', value: ['2018-11-12T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['2'] },
+ { field: 'event.category', value: ['Web Application Attack'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.8'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '8',
+ timestamp: '2018-11-12T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['8'],
+ category: ['Web Application Attack'],
+ type: ['Alert'],
+ module: ['suricata'],
+ severity: [2],
+ },
+ suricata: {
+ eve: {
+ flow_id: [8],
+ proto: [''],
+ alert: {
+ signature: ['ET WEB_SERVER Possible CVE-2014-6271 Attempt in HTTP Cookie'],
+ signature_id: [8],
+ },
+ },
+ },
+ source: { ip: ['192.168.0.8'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['8'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '7',
+ data: [
+ { field: '@timestamp', value: ['2018-11-11T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.7'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '7',
+ timestamp: '2018-11-11T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['7'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['apache'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.7'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['7'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '9',
+ data: [
+ { field: '@timestamp', value: ['2018-11-13T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.9'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '9',
+ timestamp: '2018-11-13T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['9'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.9'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['9'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '10',
+ data: [
+ { field: '@timestamp', value: ['2018-11-14T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.10'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '10',
+ timestamp: '2018-11-14T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['10'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.10'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['10'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '11',
+ data: [
+ { field: '@timestamp', value: ['2018-11-15T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.11'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '11',
+ timestamp: '2018-11-15T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['11'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.11'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['11'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '12',
+ data: [
+ { field: '@timestamp', value: ['2018-11-16T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.12'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['jone.doe'] },
+ ],
+ ecs: {
+ _id: '12',
+ timestamp: '2018-11-16T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['12'],
+ category: ['Access'],
+ type: ['HTTP Request'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.12'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['12'], name: ['jone.doe'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '2',
+ data: [
+ { field: '@timestamp', value: ['2018-11-06T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Authentication'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.2'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['joe.bob'] },
+ ],
+ ecs: {
+ _id: '2',
+ timestamp: '2018-11-06T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['2'],
+ category: ['Authentication'],
+ type: ['Authentication Success'],
+ module: ['authlog'],
+ severity: [3],
+ },
+ source: { ip: ['192.168.0.2'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['1'], name: ['joe.bob'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '13',
+ data: [
+ { field: '@timestamp', value: ['2018-13-12T19:03:25.937Z'] },
+ { field: 'event.severity', value: ['1'] },
+ { field: 'event.category', value: ['Web Application Attack'] },
+ { field: 'host.name', value: ['joe.computer'] },
+ { field: 'source.ip', value: ['192.168.0.8'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ ],
+ ecs: {
+ _id: '13',
+ timestamp: '2018-12-12T19:03:25.937Z',
+ host: { name: ['joe.computer'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['13'],
+ category: ['Web Application Attack'],
+ type: ['Alert'],
+ module: ['suricata'],
+ severity: [1],
+ },
+ suricata: {
+ eve: {
+ flow_id: [13],
+ proto: [''],
+ alert: {
+ signature: ['ET WEB_SERVER Possible Attempt in HTTP Cookie'],
+ signature_id: [13],
+ },
+ },
+ },
+ source: { ip: ['192.168.0.8'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '14',
+ data: [
+ { field: '@timestamp', value: ['2019-03-07T05:06:51.000Z'] },
+ { field: 'host.name', value: ['zeek-franfurt'] },
+ { field: 'source.ip', value: ['192.168.26.101'] },
+ { field: 'destination.ip', value: ['192.168.238.205'] },
+ ],
+ ecs: {
+ _id: '14',
+ timestamp: '2019-03-07T05:06:51.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.connection'],
+ },
+ host: {
+ id: ['37c81253e0fc4c46839c19b981be5177'],
+ name: ['zeek-franfurt'],
+ ip: ['207.154.238.205', '10.19.0.5', 'fe80::d82b:9aff:fe0d:1e12'],
+ },
+ source: { ip: ['185.176.26.101'], port: [44059] },
+ destination: { ip: ['207.154.238.205'], port: [11568] },
+ geo: { region_name: ['New York'], country_iso_code: ['US'] },
+ network: { transport: ['tcp'] },
+ zeek: {
+ session_id: ['C8DRTq362Fios6hw16'],
+ connection: {
+ local_resp: [false],
+ local_orig: [false],
+ missed_bytes: [0],
+ state: ['REJ'],
+ history: ['Sr'],
+ },
+ },
+ },
+ },
+ {
+ _id: '15',
+ data: [
+ { field: '@timestamp', value: ['2019-03-07T00:51:28.000Z'] },
+ { field: 'host.name', value: ['suricata-zeek-singapore'] },
+ { field: 'source.ip', value: ['192.168.35.240'] },
+ { field: 'destination.ip', value: ['192.168.67.3'] },
+ ],
+ ecs: {
+ _id: '15',
+ timestamp: '2019-03-07T00:51:28.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.dns'],
+ },
+ host: {
+ id: ['af3fddf15f1d47979ce817ba0df10c6e'],
+ name: ['suricata-zeek-singapore'],
+ ip: ['206.189.35.240', '10.15.0.5', 'fe80::98c7:eff:fe29:4455'],
+ },
+ source: { ip: ['206.189.35.240'], port: [57475] },
+ destination: { ip: ['67.207.67.3'], port: [53] },
+ geo: { region_name: ['New York'], country_iso_code: ['US'] },
+ network: { transport: ['udp'] },
+ zeek: {
+ session_id: ['CyIrMA1L1JtLqdIuol'],
+ dns: {
+ AA: [false],
+ RD: [false],
+ trans_id: [65252],
+ RA: [false],
+ TC: [false],
+ },
+ },
+ },
+ },
+ {
+ _id: '16',
+ data: [
+ { field: '@timestamp', value: ['2019-03-05T07:00:20.000Z'] },
+ { field: 'host.name', value: ['suricata-zeek-singapore'] },
+ { field: 'source.ip', value: ['192.168.35.240'] },
+ { field: 'destination.ip', value: ['192.168.164.26'] },
+ ],
+ ecs: {
+ _id: '16',
+ timestamp: '2019-03-05T07:00:20.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.http'],
+ },
+ host: {
+ id: ['af3fddf15f1d47979ce817ba0df10c6e'],
+ name: ['suricata-zeek-singapore'],
+ ip: ['206.189.35.240', '10.15.0.5', 'fe80::98c7:eff:fe29:4455'],
+ },
+ source: { ip: ['206.189.35.240'], port: [36220] },
+ destination: { ip: ['192.241.164.26'], port: [80] },
+ geo: { region_name: ['New York'], country_iso_code: ['US'] },
+ http: {
+ version: ['1.1'],
+ request: { body: { bytes: [0] } },
+ response: { status_code: [302], body: { bytes: [154] } },
+ },
+ zeek: {
+ session_id: ['CZLkpC22NquQJOpkwe'],
+
+ http: {
+ resp_mime_types: ['text/html'],
+ trans_depth: ['3'],
+ status_msg: ['Moved Temporarily'],
+ resp_fuids: ['FzeujEPP7GTHmYPsc'],
+ tags: [],
+ },
+ },
+ },
+ },
+ {
+ _id: '17',
+ data: [
+ { field: '@timestamp', value: ['2019-02-28T22:36:28.000Z'] },
+ { field: 'host.name', value: ['zeek-franfurt'] },
+ { field: 'source.ip', value: ['192.168.77.171'] },
+ ],
+ ecs: {
+ _id: '17',
+ timestamp: '2019-02-28T22:36:28.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.notice'],
+ },
+ host: {
+ id: ['37c81253e0fc4c46839c19b981be5177'],
+ name: ['zeek-franfurt'],
+ ip: ['207.154.238.205', '10.19.0.5', 'fe80::d82b:9aff:fe0d:1e12'],
+ },
+ source: { ip: ['8.42.77.171'] },
+ zeek: {
+ notice: {
+ suppress_for: [3600],
+ msg: ['8.42.77.171 scanned at least 15 unique ports of host 207.154.238.205 in 0m0s'],
+ note: ['Scan::Port_Scan'],
+ sub: ['remote'],
+ dst: ['207.154.238.205'],
+ dropped: [false],
+ peer_descr: ['bro'],
+ },
+ },
+ },
+ },
+ {
+ _id: '18',
+ data: [
+ { field: '@timestamp', value: ['2019-02-22T21:12:13.000Z'] },
+ { field: 'host.name', value: ['zeek-sensor-amsterdam'] },
+ { field: 'source.ip', value: ['192.168.66.184'] },
+ { field: 'destination.ip', value: ['192.168.95.15'] },
+ ],
+ ecs: {
+ _id: '18',
+ timestamp: '2019-02-22T21:12:13.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.ssl'],
+ },
+ host: { id: ['2ce8b1e7d69e4a1d9c6bcddc473da9d9'], name: ['zeek-sensor-amsterdam'] },
+ source: { ip: ['188.166.66.184'], port: [34514] },
+ destination: { ip: ['91.189.95.15'], port: [443] },
+ geo: { region_name: ['England'], country_iso_code: ['GB'] },
+ zeek: {
+ session_id: ['CmTxzt2OVXZLkGDaRe'],
+ ssl: {
+ cipher: ['TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'],
+ established: [false],
+ resumed: [false],
+ version: ['TLSv12'],
+ },
+ },
+ },
+ },
+ {
+ _id: '19',
+ data: [
+ { field: '@timestamp', value: ['2019-03-03T04:26:38.000Z'] },
+ { field: 'host.name', value: ['suricata-zeek-singapore'] },
+ ],
+ ecs: {
+ _id: '19',
+ timestamp: '2019-03-03T04:26:38.000Z',
+ event: {
+ module: ['zeek'],
+ dataset: ['zeek.files'],
+ },
+ host: {
+ id: ['af3fddf15f1d47979ce817ba0df10c6e'],
+ name: ['suricata-zeek-singapore'],
+ ip: ['206.189.35.240', '10.15.0.5', 'fe80::98c7:eff:fe29:4455'],
+ },
+ zeek: {
+ session_id: ['Cu0n232QMyvNtzb75j'],
+ files: {
+ session_ids: ['Cu0n232QMyvNtzb75j'],
+ timedout: [false],
+ local_orig: [false],
+ tx_host: ['5.101.111.50'],
+ source: ['HTTP'],
+ is_orig: [false],
+ overflow_bytes: [0],
+ sha1: ['fa5195a5dfacc9d1c68d43600f0e0262cad14dde'],
+ duration: [0],
+ depth: [0],
+ analyzers: ['MD5', 'SHA1'],
+ mime_type: ['text/plain'],
+ rx_host: ['206.189.35.240'],
+ total_bytes: [88722],
+ fuid: ['FePz1uVEVCZ3I0FQi'],
+ seen_bytes: [1198],
+ missing_bytes: [0],
+ md5: ['f7653f1951693021daa9e6be61226e32'],
+ },
+ },
+ },
+ },
+ {
+ _id: '20',
+ data: [
+ { field: '@timestamp', value: ['2019-03-13T05:42:11.815Z'] },
+ { field: 'event.category', value: ['audit-rule'] },
+ { field: 'host.name', value: ['zeek-sanfran'] },
+ { field: 'process.args', value: ['gpgconf', '--list-dirs', 'agent-socket'] },
+ ],
+ ecs: {
+ _id: '20',
+ timestamp: '2019-03-13T05:42:11.815Z',
+ event: {
+ action: ['executed'],
+ module: ['auditd'],
+ category: ['audit-rule'],
+ },
+ host: {
+ id: ['f896741c3b3b44bdb8e351a4ab6d2d7c'],
+ name: ['zeek-sanfran'],
+ ip: ['134.209.63.134', '10.46.0.5', 'fe80::a0d9:16ff:fecf:e70b'],
+ },
+ user: { name: ['alice'] },
+ process: {
+ pid: [5402],
+ name: ['gpgconf'],
+ ppid: [5401],
+ args: ['gpgconf', '--list-dirs', 'agent-socket'],
+ executable: ['/usr/bin/gpgconf'],
+ title: ['gpgconf --list-dirs agent-socket'],
+ working_directory: ['/'],
+ },
+ },
+ },
+ {
+ _id: '21',
+ data: [
+ { field: '@timestamp', value: ['2019-03-14T22:30:25.527Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'source.ip', value: ['192.168.77.171'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '21',
+ timestamp: '2019-03-14T22:30:25.527Z',
+ event: {
+ action: ['logged-in'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['14'],
+ data: { terminal: ['/dev/pts/0'], op: ['login'] },
+ summary: {
+ actor: { primary: ['alice'], secondary: ['alice'] },
+ object: { primary: ['/dev/pts/0'], secondary: ['8.42.77.171'], type: ['user-session'] },
+ how: ['/usr/sbin/sshd'],
+ },
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+ source: { ip: ['8.42.77.171'] },
+ user: { name: ['root'] },
+ process: {
+ pid: [17471],
+ executable: ['/usr/sbin/sshd'],
+ },
+ },
+ },
+ {
+ _id: '22',
+ data: [
+ { field: '@timestamp', value: ['2019-03-13T03:35:21.614Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['suricata-bangalore'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '22',
+ timestamp: '2019-03-13T03:35:21.614Z',
+ event: {
+ action: ['disposed-credentials'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['340'],
+ data: { acct: ['alice'], terminal: ['ssh'], op: ['PAM:setcred'] },
+ summary: {
+ actor: { primary: ['alice'], secondary: ['alice'] },
+ object: { primary: ['ssh'], secondary: ['8.42.77.171'], type: ['user-session'] },
+ how: ['/usr/sbin/sshd'],
+ },
+ },
+ host: {
+ id: ['0a63559c1acf4c419d979c4b4d8b83ff'],
+ name: ['suricata-bangalore'],
+ ip: ['139.59.11.147', '10.47.0.5', 'fe80::ec0b:1bff:fe29:80bd'],
+ },
+ user: { name: ['root'] },
+ process: {
+ pid: [21202],
+ executable: ['/usr/sbin/sshd'],
+ },
+ },
+ },
+ {
+ _id: '23',
+ data: [
+ { field: '@timestamp', value: ['2019-03-13T03:35:21.614Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['suricata-bangalore'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '23',
+ timestamp: '2019-03-13T03:35:21.614Z',
+ event: {
+ action: ['ended-session'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['340'],
+ data: { acct: ['alice'], terminal: ['ssh'], op: ['PAM:session_close'] },
+ summary: {
+ actor: { primary: ['alice'], secondary: ['alice'] },
+ object: { primary: ['ssh'], secondary: ['8.42.77.171'], type: ['user-session'] },
+ how: ['/usr/sbin/sshd'],
+ },
+ },
+ host: {
+ id: ['0a63559c1acf4c419d979c4b4d8b83ff'],
+ name: ['suricata-bangalore'],
+ ip: ['139.59.11.147', '10.47.0.5', 'fe80::ec0b:1bff:fe29:80bd'],
+ },
+ user: { name: ['root'] },
+ process: {
+ pid: [21202],
+ executable: ['/usr/sbin/sshd'],
+ },
+ },
+ },
+ {
+ _id: '24',
+ data: [
+ { field: '@timestamp', value: ['2019-03-18T23:17:01.645Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '24',
+ timestamp: '2019-03-18T23:17:01.645Z',
+ event: {
+ action: ['acquired-credentials'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['unset'],
+ data: { acct: ['root'], terminal: ['cron'], op: ['PAM:setcred'] },
+ summary: {
+ actor: { primary: ['unset'], secondary: ['root'] },
+ object: { primary: ['cron'], type: ['user-session'] },
+ how: ['/usr/sbin/cron'],
+ },
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+ user: { name: ['root'] },
+ process: {
+ pid: [9592],
+ executable: ['/usr/sbin/cron'],
+ },
+ },
+ },
+ {
+ _id: '25',
+ data: [
+ { field: '@timestamp', value: ['2019-03-19T01:17:01.336Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['siem-kibana'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '25',
+ timestamp: '2019-03-19T01:17:01.336Z',
+ event: {
+ action: ['started-session'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['2908'],
+ data: { acct: ['root'], terminal: ['cron'], op: ['PAM:session_open'] },
+ summary: {
+ actor: { primary: ['root'], secondary: ['root'] },
+ object: { primary: ['cron'], type: ['user-session'] },
+ how: ['/usr/sbin/cron'],
+ },
+ },
+ host: { id: ['aa7ca589f1b8220002f2fc61c64cfbf1'], name: ['siem-kibana'] },
+ user: { name: ['root'] },
+ process: {
+ pid: [725],
+ executable: ['/usr/sbin/cron'],
+ },
+ },
+ },
+ {
+ _id: '26',
+ data: [
+ { field: '@timestamp', value: ['2019-03-13T03:34:08.890Z'] },
+ { field: 'event.category', value: ['user-login'] },
+ { field: 'host.name', value: ['suricata-bangalore'] },
+ { field: 'user.name', value: ['alice'] },
+ ],
+ ecs: {
+ _id: '26',
+ timestamp: '2019-03-13T03:34:08.890Z',
+ event: {
+ action: ['was-authorized'],
+ module: ['auditd'],
+ category: ['user-login'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['338'],
+ data: { terminal: ['/dev/pts/0'] },
+ summary: {
+ actor: { primary: ['root'], secondary: ['alice'] },
+ object: { primary: ['/dev/pts/0'], type: ['user-session'] },
+ how: ['/sbin/pam_tally2'],
+ },
+ },
+ host: {
+ id: ['0a63559c1acf4c419d979c4b4d8b83ff'],
+ name: ['suricata-bangalore'],
+ ip: ['139.59.11.147', '10.47.0.5', 'fe80::ec0b:1bff:fe29:80bd'],
+ },
+ user: { name: ['alice'] },
+ process: {
+ pid: [21170],
+ executable: ['/sbin/pam_tally2'],
+ },
+ },
+ },
+ {
+ _id: '27',
+ data: [
+ { field: '@timestamp', value: ['2019-03-22T19:13:11.026Z'] },
+ { field: 'event.action', value: ['connected-to'] },
+ { field: 'event.category', value: ['audit-rule'] },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'destination.ip', value: ['192.168.216.34'] },
+ { field: 'user.name', value: ['alice'] },
+ ],
+ ecs: {
+ _id: '27',
+ timestamp: '2019-03-22T19:13:11.026Z',
+ event: {
+ action: ['connected-to'],
+ module: ['auditd'],
+ category: ['audit-rule'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['246'],
+ summary: {
+ actor: { primary: ['alice'], secondary: ['alice'] },
+ object: { primary: ['192.168.216.34'], secondary: ['80'], type: ['socket'] },
+ how: ['/usr/bin/wget'],
+ },
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+ destination: { ip: ['192.168.216.34'], port: [80] },
+ user: { name: ['alice'] },
+ process: {
+ pid: [1490],
+ name: ['wget'],
+ ppid: [1476],
+ executable: ['/usr/bin/wget'],
+ title: ['wget www.example.com'],
+ },
+ },
+ },
+ {
+ _id: '28',
+ data: [
+ { field: '@timestamp', value: ['2019-03-26T22:12:18.609Z'] },
+ { field: 'event.action', value: ['opened-file'] },
+ { field: 'event.category', value: ['audit-rule'] },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'user.name', value: ['root'] },
+ ],
+ ecs: {
+ _id: '28',
+ timestamp: '2019-03-26T22:12:18.609Z',
+ event: {
+ action: ['opened-file'],
+ module: ['auditd'],
+ category: ['audit-rule'],
+ },
+ auditd: {
+ result: ['success'],
+ session: ['242'],
+ summary: {
+ actor: { primary: ['unset'], secondary: ['root'] },
+ object: { primary: ['/proc/15990/attr/current'], type: ['file'] },
+ how: ['/lib/systemd/systemd-journald'],
+ },
+ },
+ file: {
+ path: ['/proc/15990/attr/current'],
+ device: ['00:00'],
+ inode: ['27672309'],
+ uid: ['0'],
+ owner: ['root'],
+ gid: ['0'],
+ group: ['root'],
+ mode: ['0666'],
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+
+ user: { name: ['root'] },
+ process: {
+ pid: [27244],
+ name: ['systemd-journal'],
+ ppid: [1],
+ executable: ['/lib/systemd/systemd-journald'],
+ title: ['/lib/systemd/systemd-journald'],
+ working_directory: ['/'],
+ },
+ },
+ },
+ {
+ _id: '29',
+ data: [
+ { field: '@timestamp', value: ['2019-04-08T21:18:57.000Z'] },
+ { field: 'event.action', value: ['user_login'] },
+ { field: 'event.category', value: null },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'user.name', value: ['Braden'] },
+ ],
+ ecs: {
+ _id: '29',
+ event: {
+ action: ['user_login'],
+ dataset: ['login'],
+ kind: ['event'],
+ module: ['system'],
+ outcome: ['failure'],
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+ source: {
+ ip: ['128.199.212.120'],
+ },
+ user: {
+ name: ['Braden'],
+ },
+ process: {
+ pid: [6278],
+ },
+ },
+ },
+ {
+ _id: '30',
+ data: [
+ { field: '@timestamp', value: ['2019-04-08T22:27:14.814Z'] },
+ { field: 'event.action', value: ['process_started'] },
+ { field: 'event.category', value: null },
+ { field: 'host.name', value: ['zeek-london'] },
+ { field: 'user.name', value: ['Evan'] },
+ ],
+ ecs: {
+ _id: '30',
+ event: {
+ action: ['process_started'],
+ dataset: ['login'],
+ kind: ['event'],
+ module: ['system'],
+ outcome: ['failure'],
+ },
+ host: {
+ id: ['7c21f5ed03b04d0299569d221fe18bbc'],
+ name: ['zeek-london'],
+ ip: ['46.101.3.136', '10.16.0.5', 'fe80::4066:42ff:fe19:b3b9'],
+ },
+ source: {
+ ip: ['128.199.212.120'],
+ },
+ user: {
+ name: ['Evan'],
+ },
+ process: {
+ pid: [6278],
+ },
+ },
+ },
+ {
+ _id: '31',
+ data: [
+ { field: '@timestamp', value: ['2018-11-05T19:03:25.937Z'] },
+ { field: 'message', value: ['I am a log file message'] },
+ { field: 'event.severity', value: ['3'] },
+ { field: 'event.category', value: ['Access'] },
+ { field: 'event.action', value: ['Action'] },
+ { field: 'host.name', value: ['apache'] },
+ { field: 'source.ip', value: ['192.168.0.1'] },
+ { field: 'destination.ip', value: ['192.168.0.3'] },
+ { field: 'destination.bytes', value: ['123456'] },
+ { field: 'user.name', value: ['john.dee'] },
+ ],
+ ecs: {
+ _id: '1',
+ timestamp: '2018-11-05T19:03:25.937Z',
+ host: { name: ['apache'], ip: ['192.168.0.1'] },
+ event: {
+ id: ['1'],
+ action: ['Action'],
+ category: ['Access'],
+ module: ['nginx'],
+ severity: [3],
+ },
+ message: ['I am a log file message'],
+ source: { ip: ['192.168.0.1'], port: [80] },
+ destination: { ip: ['192.168.0.3'], port: [6343] },
+ user: { id: ['1'], name: ['john.dee'] },
+ geo: { region_name: ['xx'], country_iso_code: ['xx'] },
+ },
+ },
+ {
+ _id: '32',
+ data: [],
+ ecs: {
+ _id: 'BuBP4W0BOpWiDweSoYSg',
+ timestamp: '2019-10-18T23:59:15.091Z',
+ threat: {
+ enrichments: [
+ {
+ indicator: {
+ provider: ['indicator_provider'],
+ reference: ['https://example.com'],
+ },
+ matched: {
+ atomic: ['192.168.1.1'],
+ field: ['source.ip'],
+ type: ['ip'],
+ },
+ feed: {
+ name: ['feed_name'],
+ },
+ },
+ ],
+ },
+ },
+ },
+];
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/global_state.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/global_state.ts
new file mode 100644
index 0000000000000..dda9d8b6c6d8d
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/global_state.ts
@@ -0,0 +1,57 @@
+/*
+ * 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 { TableId } from '../common/types';
+import { defaultHeaders } from './header';
+
+// FIXME add strong typings
+export const mockGlobalState: any = {
+ app: {
+ notesById: {},
+ errors: [
+ { id: 'error-id-1', title: 'title-1', message: ['error-message-1'] },
+ { id: 'error-id-2', title: 'title-2', message: ['error-message-2'] },
+ ],
+ },
+ dataTable: {
+ tableById: {
+ [TableId.test]: {
+ columns: defaultHeaders,
+ defaultColumns: defaultHeaders,
+ dataViewId: 'security-solution-default',
+ deletedEventIds: [],
+ expandedDetail: {},
+ filters: [],
+ indexNames: ['.alerts-security.alerts-default'],
+ isSelectAllChecked: false,
+ itemsPerPage: 25,
+ itemsPerPageOptions: [10, 25, 50, 100],
+ loadingEventIds: [],
+ selectedEventIds: {},
+ showCheckboxes: false,
+ sort: [
+ {
+ columnId: '@timestamp',
+ columnType: 'date',
+ esTypes: ['date'],
+ sortDirection: 'desc',
+ },
+ ],
+ graphEventId: '',
+ sessionViewConfig: null,
+ selectAll: false,
+ id: TableId.test,
+ title: '',
+ initialized: true,
+ updated: 1663882629000,
+ isLoading: false,
+ queryFields: [],
+ totalCount: 0,
+ },
+ },
+ },
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/header.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/header.ts
new file mode 100644
index 0000000000000..ce7ac9a08d031
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/header.ts
@@ -0,0 +1,144 @@
+/*
+ * 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 { defaultColumnHeaderType } from '@kbn/timelines-plugin/common/types';
+import type { ColumnHeaderOptions } from '../common/types';
+import {
+ DEFAULT_COLUMN_MIN_WIDTH,
+ DEFAULT_DATE_COLUMN_MIN_WIDTH,
+} from '../components/data_table/constants';
+
+export const defaultHeaders: ColumnHeaderOptions[] = [
+ {
+ category: 'base',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ 'Date/time when the event originated.\nFor log events this is the date/time when the event was generated, and not when it was read.\nRequired field for all events.',
+ example: '2016-05-23T08:05:34.853Z',
+ id: '@timestamp',
+ type: 'date',
+ esTypes: ['date'],
+ aggregatable: true,
+ initialWidth: DEFAULT_DATE_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'event',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ "Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events.",
+ example: '7',
+ id: 'event.severity',
+ type: 'number',
+ esTypes: ['long'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'event',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ 'Event category.\nThis contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution.',
+ example: 'user-management',
+ id: 'event.category',
+ type: 'string',
+ esTypes: ['keyword'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'event',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ 'The action captured by the event.\nThis describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer.',
+ example: 'user-password-change',
+ id: 'event.action',
+ type: 'string',
+ esTypes: ['keyword'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'host',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ 'Name of the host.\nIt can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.',
+ example: '',
+ id: 'host.name',
+ type: 'string',
+ esTypes: ['keyword'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'source',
+ columnHeaderType: defaultColumnHeaderType,
+ description: 'IP address of the source.\nCan be one or multiple IPv4 or IPv6 addresses.',
+ example: '',
+ id: 'source.ip',
+ type: 'ip',
+ esTypes: ['ip'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'destination',
+ columnHeaderType: defaultColumnHeaderType,
+ description: 'IP address of the destination.\nCan be one or multiple IPv4 or IPv6 addresses.',
+ example: '',
+ id: 'destination.ip',
+ type: 'ip',
+ esTypes: ['ip'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ aggregatable: true,
+ category: 'destination',
+ columnHeaderType: defaultColumnHeaderType,
+ description: 'Bytes sent from the source to the destination',
+ example: '123',
+ format: 'bytes',
+ id: 'destination.bytes',
+ type: 'number',
+ esTypes: ['long'],
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'user',
+ columnHeaderType: defaultColumnHeaderType,
+ description: 'Short name or login of the user.',
+ example: 'albert',
+ id: 'user.name',
+ type: 'string',
+ esTypes: ['keyword'],
+ aggregatable: true,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'base',
+ columnHeaderType: defaultColumnHeaderType,
+ description: 'Each document has an _id that uniquely identifies it',
+ example: 'Y-6TfmcB0WOhS6qyMv3s',
+ id: '_id',
+ type: 'string',
+ esTypes: [], // empty for _id
+ aggregatable: false,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+ {
+ category: 'base',
+ columnHeaderType: defaultColumnHeaderType,
+ description:
+ 'For log events the message field contains the log message.\nIn other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message.',
+ example: 'Hello World',
+ id: 'message',
+ type: 'string',
+ esTypes: ['text'],
+ aggregatable: false,
+ initialWidth: DEFAULT_COLUMN_MIN_WIDTH,
+ },
+];
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/mock_local_storage.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_local_storage.ts
new file mode 100644
index 0000000000000..00036d2030838
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_local_storage.ts
@@ -0,0 +1,27 @@
+/*
+ * 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 type { IStorage } from '@kbn/kibana-utils-plugin/public';
+
+export const localStorageMock = (): IStorage => {
+ let store: Record = {};
+
+ return {
+ getItem: (key: string) => {
+ return store[key] || null;
+ },
+ setItem: (key: string, value: unknown) => {
+ store[key] = value;
+ },
+ clear() {
+ store = {};
+ },
+ removeItem(key: string) {
+ delete store[key];
+ },
+ };
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/mock_source.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_source.ts
new file mode 100644
index 0000000000000..0cc791f288410
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_source.ts
@@ -0,0 +1,515 @@
+/*
+ * 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 type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
+import { BrowserFields } from '@kbn/timelines-plugin/common';
+import { DEFAULT_INDEX_PATTERN } from '../common/constants';
+
+export const mockBrowserFields: BrowserFields = {
+ agent: {
+ fields: {
+ 'agent.ephemeral_id': {
+ aggregatable: true,
+ category: 'agent',
+ description:
+ 'Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but `agent.id` does not.',
+ example: '8a4f500f',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'agent.ephemeral_id',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'agent.hostname': {
+ aggregatable: true,
+ category: 'agent',
+ description: null,
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'agent.hostname',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'agent.id': {
+ aggregatable: true,
+ category: 'agent',
+ description:
+ 'Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id.',
+ example: '8a4f500d',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'agent.id',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'agent.name': {
+ aggregatable: true,
+ category: 'agent',
+ description:
+ 'Name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty.',
+ example: 'foo',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'agent.name',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ },
+ },
+ auditd: {
+ fields: {
+ 'auditd.data.a0': {
+ aggregatable: true,
+ category: 'auditd',
+ description: null,
+ example: null,
+ format: '',
+ indexes: ['auditbeat'],
+ name: 'auditd.data.a0',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'auditd.data.a1': {
+ aggregatable: true,
+ category: 'auditd',
+ description: null,
+ example: null,
+ format: '',
+ indexes: ['auditbeat'],
+ name: 'auditd.data.a1',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'auditd.data.a2': {
+ aggregatable: true,
+ category: 'auditd',
+ description: null,
+ example: null,
+ format: '',
+ indexes: ['auditbeat'],
+ name: 'auditd.data.a2',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ },
+ },
+ base: {
+ fields: {
+ '@timestamp': {
+ aggregatable: true,
+ category: 'base',
+ description:
+ 'Date/time when the event originated. For log events this is the date/time when the event was generated, and not when it was read. Required field for all events.',
+ example: '2016-05-23T08:05:34.853Z',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: '@timestamp',
+ searchable: true,
+ type: 'date',
+ esTypes: ['date'],
+ readFromDocValues: true,
+ },
+ _id: {
+ category: 'base',
+ description: 'Each document has an _id that uniquely identifies it',
+ example: 'Y-6TfmcB0WOhS6qyMv3s',
+ name: '_id',
+ type: 'string',
+ esTypes: [],
+ searchable: true,
+ aggregatable: false,
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ },
+ message: {
+ category: 'base',
+ description:
+ 'For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message.',
+ example: 'Hello World',
+ name: 'message',
+ type: 'string',
+ esTypes: ['text'],
+ searchable: true,
+ aggregatable: false,
+ format: 'string',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ },
+ },
+ },
+ client: {
+ fields: {
+ 'client.address': {
+ aggregatable: true,
+ category: 'client',
+ description:
+ 'Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'client.address',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'client.bytes': {
+ aggregatable: true,
+ category: 'client',
+ description: 'Bytes sent from the client to the server.',
+ example: '184',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'client.bytes',
+ searchable: true,
+ type: 'number',
+ esTypes: ['long'],
+ },
+ 'client.domain': {
+ aggregatable: true,
+ category: 'client',
+ description: 'Client domain.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'client.domain',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'client.geo.country_iso_code': {
+ aggregatable: true,
+ category: 'client',
+ description: 'Country ISO code.',
+ example: 'CA',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'client.geo.country_iso_code',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ },
+ },
+ cloud: {
+ fields: {
+ 'cloud.account.id': {
+ aggregatable: true,
+ category: 'cloud',
+ description:
+ 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.',
+ example: '666777888999',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'cloud.account.id',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'cloud.availability_zone': {
+ aggregatable: true,
+ category: 'cloud',
+ description: 'Availability zone in which this host is running.',
+ example: 'us-east-1c',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'cloud.availability_zone',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ },
+ },
+ container: {
+ fields: {
+ 'container.id': {
+ aggregatable: true,
+ category: 'container',
+ description: 'Unique container id.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'container.id',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'container.image.name': {
+ aggregatable: true,
+ category: 'container',
+ description: 'Name of the image the container was built on.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'container.image.name',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'container.image.tag': {
+ aggregatable: true,
+ category: 'container',
+ description: 'Container image tag.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'container.image.tag',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ },
+ },
+ destination: {
+ fields: {
+ 'destination.address': {
+ aggregatable: true,
+ category: 'destination',
+ description:
+ 'Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'destination.address',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'destination.bytes': {
+ aggregatable: true,
+ category: 'destination',
+ description: 'Bytes sent from the destination to the source.',
+ example: '184',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'destination.bytes',
+ searchable: true,
+ type: 'number',
+ esTypes: ['long'],
+ },
+ 'destination.domain': {
+ aggregatable: true,
+ category: 'destination',
+ description: 'Destination domain.',
+ example: null,
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'destination.domain',
+ searchable: true,
+ type: 'string',
+ esTypes: ['keyword'],
+ },
+ 'destination.ip': {
+ aggregatable: true,
+ category: 'destination',
+ description:
+ 'IP address of the destination. Can be one or multiple IPv4 or IPv6 addresses.',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'destination.ip',
+ searchable: true,
+ type: 'ip',
+ esTypes: ['ip'],
+ },
+ 'destination.port': {
+ aggregatable: true,
+ category: 'destination',
+ description: 'Port of the destination.',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'destination.port',
+ searchable: true,
+ type: 'number',
+ esTypes: ['long'],
+ },
+ },
+ },
+ event: {
+ fields: {
+ 'event.end': {
+ category: 'event',
+ description:
+ 'event.end contains the date when the event ended or when the activity was last observed.',
+ example: null,
+ format: '',
+ indexes: DEFAULT_INDEX_PATTERN,
+ name: 'event.end',
+ searchable: true,
+ type: 'date',
+ esTypes: ['date'],
+ aggregatable: true,
+ },
+ 'event.action': {
+ category: 'event',
+ description:
+ 'The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer.',
+ example: 'user-password-change',
+ name: 'event.action',
+ type: 'string',
+ esTypes: ['keyword'],
+ searchable: true,
+ aggregatable: true,
+ format: 'string',
+ indexes: DEFAULT_INDEX_PATTERN,
+ },
+ 'event.category': {
+ category: 'event',
+ description:
+ 'This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories.',
+ example: 'authentication',
+ name: 'event.category',
+ type: 'string',
+ esTypes: ['keyword'],
+ searchable: true,
+ aggregatable: true,
+ format: 'string',
+ indexes: DEFAULT_INDEX_PATTERN,
+ },
+ 'event.severity': {
+ category: 'event',
+ description:
+ "The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`.",
+ example: 7,
+ name: 'event.severity',
+ type: 'number',
+ esTypes: ['long'],
+ format: 'number',
+ searchable: true,
+ aggregatable: true,
+ indexes: DEFAULT_INDEX_PATTERN,
+ },
+ },
+ },
+ host: {
+ fields: {
+ 'host.name': {
+ category: 'host',
+ description:
+ 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.',
+ name: 'host.name',
+ type: 'string',
+ esTypes: ['keyword'],
+ searchable: true,
+ aggregatable: true,
+ format: 'string',
+ indexes: DEFAULT_INDEX_PATTERN,
+ },
+ },
+ },
+ source: {
+ fields: {
+ 'source.ip': {
+ aggregatable: true,
+ category: 'source',
+ description: 'IP address of the source. Can be one or multiple IPv4 or IPv6 addresses.',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'source.ip',
+ searchable: true,
+ type: 'ip',
+ esTypes: ['ip'],
+ },
+ 'source.port': {
+ aggregatable: true,
+ category: 'source',
+ description: 'Port of the source.',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'source.port',
+ searchable: true,
+ type: 'number',
+ esTypes: ['long'],
+ },
+ },
+ },
+ user: {
+ fields: {
+ 'user.name': {
+ category: 'user',
+ description: 'Short name or login of the user.',
+ example: 'albert',
+ name: 'user.name',
+ type: 'string',
+ esTypes: ['keyword'],
+ searchable: true,
+ aggregatable: true,
+ format: 'string',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ },
+ },
+ },
+ nestedField: {
+ fields: {
+ 'nestedField.firstAttributes': {
+ aggregatable: false,
+ category: 'nestedField',
+ description: '',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'nestedField.firstAttributes',
+ searchable: true,
+ type: 'string',
+ subType: {
+ nested: {
+ path: 'nestedField',
+ },
+ },
+ },
+ 'nestedField.secondAttributes': {
+ aggregatable: false,
+ category: 'nestedField',
+ description: '',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'nestedField.secondAttributes',
+ searchable: true,
+ type: 'string',
+ subType: {
+ nested: {
+ path: 'nestedField',
+ },
+ },
+ },
+ 'nestedField.thirdAttributes': {
+ aggregatable: false,
+ category: 'nestedField',
+ description: '',
+ example: '',
+ format: '',
+ indexes: ['auditbeat', 'filebeat', 'packetbeat'],
+ name: 'nestedField.thirdAttributes',
+ searchable: true,
+ type: 'date',
+ subType: {
+ nested: {
+ path: 'nestedField',
+ },
+ },
+ },
+ },
+ },
+};
+
+export const mockRuntimeMappings: MappingRuntimeFields = {
+ '@a.runtime.field': {
+ script: {
+ source: 'emit("Radical dude: " + doc[\'host.name\'].value)',
+ },
+ type: 'keyword',
+ },
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/mock_timeline_data.ts b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_timeline_data.ts
new file mode 100644
index 0000000000000..e4e5e916136b8
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/mock_timeline_data.ts
@@ -0,0 +1,74 @@
+/*
+ * 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 type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+
+export { demoTimelineData as mockTimelineData } from './demo_data/timeline';
+export { demoEndpointRegistryModificationEvent as mockEndpointRegistryModificationEvent } from './demo_data/endpoint/registry_modification_event';
+export { demoEndpointLibraryLoadEvent as mockEndpointLibraryLoadEvent } from './demo_data/endpoint/library_load_event';
+export { demoEndpointProcessExecutionMalwarePreventionAlert as mockEndpointProcessExecutionMalwarePreventionAlert } from './demo_data/endpoint/process_execution_malware_prevention_alert';
+
+export const mockDnsEvent: Ecs = {
+ _id: 'VUTUqm0BgJt5sZM7nd5g',
+ destination: {
+ domain: ['ten.one.one.one'],
+ port: [53],
+ bytes: [137],
+ ip: ['10.1.1.1'],
+ geo: {
+ continent_name: ['Oceania'],
+ location: {
+ lat: [-33.494],
+ lon: [143.2104],
+ },
+ country_iso_code: ['AU'],
+ country_name: ['Australia'],
+ city_name: [''],
+ },
+ },
+ host: {
+ architecture: ['armv7l'],
+ id: ['host-id'],
+ os: {
+ family: ['debian'],
+ platform: ['raspbian'],
+ version: ['9 (stretch)'],
+ name: ['Raspbian GNU/Linux'],
+ kernel: ['4.19.57-v7+'],
+ },
+ name: ['iot.example.com'],
+ },
+ dns: {
+ question: {
+ name: ['lookup.example.com'],
+ type: ['A'],
+ },
+ response_code: ['NOERROR'],
+ resolved_ip: ['10.1.2.3'],
+ },
+ timestamp: '2019-10-08T10:05:23.241Z',
+ network: {
+ community_id: ['1:network-community_id'],
+ direction: ['outbound'],
+ bytes: [177],
+ transport: ['udp'],
+ protocol: ['dns'],
+ },
+ event: {
+ duration: [6937500],
+ category: ['network_traffic'],
+ dataset: ['dns'],
+ kind: ['event'],
+ end: ['2019-10-08T10:05:23.248Z'],
+ start: ['2019-10-08T10:05:23.241Z'],
+ },
+ source: {
+ port: [58732],
+ bytes: [40],
+ ip: ['10.9.9.9'],
+ },
+};
diff --git a/x-pack/packages/kbn-securitysolution-data-table/mock/test_providers.tsx b/x-pack/packages/kbn-securitysolution-data-table/mock/test_providers.tsx
new file mode 100644
index 0000000000000..33c86527f7505
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/mock/test_providers.tsx
@@ -0,0 +1,86 @@
+/*
+ * 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.
+ */
+
+/* eslint-disable @kbn/eslint/module_migration */
+
+import { euiDarkVars } from '@kbn/ui-theme';
+import { I18nProvider } from '@kbn/i18n-react';
+
+import React from 'react';
+import type { DropResult, ResponderProvided } from 'react-beautiful-dnd';
+import { DragDropContext } from 'react-beautiful-dnd';
+import { Provider as ReduxStoreProvider } from 'react-redux';
+import type { Store } from 'redux';
+import { ThemeProvider } from 'styled-components';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import { createStore as createReduxStore } from 'redux';
+
+import type { Action } from '@kbn/ui-actions-plugin/public';
+import { CellActionsProvider } from '@kbn/cell-actions';
+import { mockGlobalState } from './global_state';
+import { localStorageMock } from './mock_local_storage';
+
+interface Props {
+ children?: React.ReactNode;
+ store?: Store;
+ onDragEnd?: (result: DropResult, provided: ResponderProvided) => void;
+ cellActions?: Action[];
+}
+
+Object.defineProperty(window, 'localStorage', {
+ value: localStorageMock(),
+});
+window.scrollTo = jest.fn();
+
+const createStore = (state: any) => createReduxStore(() => {}, state);
+
+/** A utility for wrapping children in the providers required to run most tests */
+export const TestProvidersComponent: React.FC = ({
+ children,
+ store = createStore(mockGlobalState),
+ onDragEnd = jest.fn(),
+ cellActions = [],
+}) => {
+ const queryClient = new QueryClient();
+ return (
+
+
+ ({ eui: euiDarkVars, darkMode: true })}>
+
+ Promise.resolve(cellActions)}>
+ {children}
+
+
+
+
+
+ );
+};
+
+/**
+ * A utility for wrapping children in the providers required to run most tests
+ * WITH user privileges provider.
+ */
+const TestProvidersWithPrivilegesComponent: React.FC = ({
+ children,
+ store = createStore(mockGlobalState),
+ onDragEnd = jest.fn(),
+ cellActions = [],
+}) => (
+
+
+ ({ eui: euiDarkVars, darkMode: true })}>
+ Promise.resolve(cellActions)}>
+ {children}
+
+
+
+
+);
+
+export const TestProviders = React.memo(TestProvidersComponent);
+export const TestProvidersWithPrivileges = React.memo(TestProvidersWithPrivilegesComponent);
diff --git a/x-pack/packages/kbn-securitysolution-data-table/package.json b/x-pack/packages/kbn-securitysolution-data-table/package.json
new file mode 100644
index 0000000000000..53c640c3d9c6a
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "@kbn/securitysolution-data-table",
+ "private": true,
+ "version": "1.0.0",
+ "license": "Elastic License 2.0"
+}
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/actions.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/actions.ts
similarity index 92%
rename from x-pack/plugins/security_solution/public/common/store/data_table/actions.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/actions.ts
index 6ed2b5252e309..5d5e0fb31dddd 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/actions.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/actions.ts
@@ -6,10 +6,14 @@
*/
import actionCreatorFactory from 'typescript-fsa';
-import type { SessionViewConfig } from '../../../../common/types/session_view';
-import type { ExpandedDetailType } from '../../../../common/types/detail_panel';
-import type { TimelineNonEcsData } from '../../../../common/search_strategy';
-import type { ColumnHeaderOptions, SortColumnTable, ViewSelection } from '../../../../common/types';
+import { TimelineNonEcsData } from '@kbn/timelines-plugin/common';
+import type { ExpandedDetailType } from '../../common/types/detail_panel';
+import type {
+ ColumnHeaderOptions,
+ SessionViewConfig,
+ SortColumnTable,
+ ViewSelection,
+} from '../../common/types';
import type { InitialyzeDataTableSettings, DataTablePersistInput } from './types';
const actionCreator = actionCreatorFactory('x-pack/security_solution/data-table');
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/defaults.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts
similarity index 94%
rename from x-pack/plugins/security_solution/public/common/store/data_table/defaults.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts
index 7b7a07f6ba3c6..29e28af5da28c 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/defaults.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/defaults.ts
@@ -4,7 +4,8 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import type { ColumnHeaderOptions, ColumnHeaderType } from '../../../../common/types';
+
+import { ColumnHeaderOptions, ColumnHeaderType, VIEW_SELECTION } from '../../common/types';
import {
DEFAULT_TABLE_COLUMN_MIN_WIDTH,
DEFAULT_TABLE_DATE_COLUMN_MIN_WIDTH,
@@ -14,7 +15,6 @@ import * as i18n from './translations';
export const defaultColumnHeaderType: ColumnHeaderType = 'not-filtered';
-import { VIEW_SELECTION } from '../../../../common/constants';
export const defaultHeaders: ColumnHeaderOptions[] = [
{
columnHeaderType: defaultColumnHeaderType,
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/helpers.test.tsx b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.test.tsx
similarity index 94%
rename from x-pack/plugins/security_solution/public/common/store/data_table/helpers.test.tsx
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.test.tsx
index 733aa5a3990e3..d414003743c66 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/helpers.test.tsx
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.test.tsx
@@ -12,8 +12,7 @@ import {
updateDataTableColumnWidth,
} from './helpers';
import { mockGlobalState } from '../../mock/global_state';
-import type { SortColumnTable } from '../../../../common/types';
-import { TableId } from '../../../../common/types';
+import { SortColumnTable, TableId } from '../../common/types';
import type { DataTableModelSettings } from './model';
const id = 'foo';
@@ -69,7 +68,7 @@ describe('setInitializeDataTableSettings', () => {
describe('updateDataTableColumnOrder', () => {
test('it returns the columns in the new expected order', () => {
- const originalIdOrder = defaultTableById[TableId.test].columns.map((x) => x.id); // ['@timestamp', 'event.severity', 'event.category', '...']
+ const originalIdOrder = defaultTableById[TableId.test].columns.map((x: any) => x.id); // ['@timestamp', 'event.severity', 'event.category', '...']
// the new order swaps the positions of the first and second columns:
const newIdOrder = [originalIdOrder[1], originalIdOrder[0], ...originalIdOrder.slice(2)]; // ['event.severity', '@timestamp', 'event.category', '...']
@@ -94,7 +93,7 @@ describe('updateDataTableColumnOrder', () => {
});
test('it omits unknown column IDs when re-ordering columns', () => {
- const originalIdOrder = defaultTableById[TableId.test].columns.map((x) => x.id); // ['@timestamp', 'event.severity', 'event.category', '...']
+ const originalIdOrder = defaultTableById[TableId.test].columns.map((x: any) => x.id); // ['@timestamp', 'event.severity', 'event.category', '...']
const unknownColumId = 'does.not.exist';
const newIdOrder = [originalIdOrder[0], unknownColumId, ...originalIdOrder.slice(1)]; // ['@timestamp', 'does.not.exist', 'event.severity', 'event.category', '...']
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/helpers.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.ts
similarity index 97%
rename from x-pack/plugins/security_solution/public/common/store/data_table/helpers.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.ts
index 323352bcbbec4..035c865f1fc82 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/helpers.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/helpers.ts
@@ -9,9 +9,8 @@ import { omit, union } from 'lodash/fp';
import { isEmpty } from 'lodash';
import type { EuiDataGridColumn } from '@elastic/eui';
-import type { SessionViewConfig } from '../../../../common/types/session_view';
-import type { ExpandedDetail, ExpandedDetailType } from '../../../../common/types/detail_panel';
-import type { ColumnHeaderOptions, SortColumnTable } from '../../../../common/types';
+import type { ExpandedDetail, ExpandedDetailType } from '../../common/types/detail_panel';
+import type { ColumnHeaderOptions, SessionViewConfig, SortColumnTable } from '../../common/types';
import type { TableToggleDetailPanel } from './actions';
import type { DataTablePersistInput, TableById } from './types';
import type { DataTableModelSettings } from './model';
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/index.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/index.ts
similarity index 100%
rename from x-pack/plugins/security_solution/public/common/store/data_table/index.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/index.ts
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/inputs.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/inputs.ts
similarity index 100%
rename from x-pack/plugins/security_solution/public/common/store/data_table/inputs.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/inputs.ts
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/model.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts
similarity index 90%
rename from x-pack/plugins/security_solution/public/common/store/data_table/model.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts
index d9f1f6f30a159..b4aad728ff8ce 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/model.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/model.ts
@@ -7,10 +7,10 @@
import type { EuiDataGridColumn } from '@elastic/eui';
import type { Filter } from '@kbn/es-query';
-import type { ExpandedDetail } from '../../../../common/types/detail_panel';
-import type { SessionViewConfig } from '../../../../common/types/session_view';
-import type { TimelineNonEcsData } from '../../../../common/search_strategy';
-import type { ColumnHeaderOptions, SortColumnTable, ViewSelection } from '../../../../common/types';
+import { TimelineNonEcsData } from '@kbn/timelines-plugin/common';
+import { ExpandedDetail } from '../../common/types/detail_panel';
+import { ColumnHeaderOptions, SessionViewConfig, SortColumnTable } from '../../common/types';
+import { ViewSelection } from '../../common/types';
export interface DataTableModelSettings {
defaultColumns: Array<
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/reducer.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/reducer.ts
similarity index 99%
rename from x-pack/plugins/security_solution/public/common/store/data_table/reducer.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/reducer.ts
index 9ed7bbe38a726..f65292a2919e4 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/reducer.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/reducer.ts
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+
import { reducerWithInitialState } from 'typescript-fsa-reducers';
import {
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/selectors.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/selectors.ts
similarity index 99%
rename from x-pack/plugins/security_solution/public/common/store/data_table/selectors.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/selectors.ts
index db7470dae945d..665c1bae1a07f 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/selectors.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/selectors.ts
@@ -4,6 +4,7 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
+
import { getOr } from 'lodash/fp';
import { createSelector } from 'reselect';
import { tableDefaults, getDataTableManageDefaults } from './defaults';
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/translations.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/translations.ts
similarity index 80%
rename from x-pack/plugins/security_solution/public/common/store/data_table/translations.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/translations.ts
index e17e2a464b41a..17c735bac5a23 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/translations.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/translations.ts
@@ -8,14 +8,14 @@
import { i18n } from '@kbn/i18n';
export const LOADING_EVENTS = i18n.translate(
- 'xpack.securitySolution.dataTable.loadingEventsDataLabel',
+ 'securitySolutionDataTable.dataTable.loadingEventsDataLabel',
{
defaultMessage: 'Loading Events',
}
);
export const UNIT = (totalCount: number) =>
- i18n.translate('xpack.securitySolution.dataTable.unit', {
+ i18n.translate('securitySolutionDataTable.dataTable.unit', {
values: { totalCount },
defaultMessage: `{totalCount, plural, =1 {alert} other {alerts}}`,
});
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/types.ts b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts
similarity index 98%
rename from x-pack/plugins/security_solution/public/common/store/data_table/types.ts
rename to x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts
index 53dd7093b5912..4f1dc514f48f9 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/types.ts
+++ b/x-pack/packages/kbn-securitysolution-data-table/store/data_table/types.ts
@@ -6,7 +6,7 @@
*/
import type { EuiDataGridColumn } from '@elastic/eui';
-import type { ColumnHeaderOptions, SortColumnTable } from '../../../../common/types';
+import type { ColumnHeaderOptions, SortColumnTable } from '../../common/types';
import type { DataTableModel, DataTableModelSettings } from './model';
/** The state of all timelines is stored here */
diff --git a/x-pack/packages/kbn-securitysolution-data-table/tsconfig.json b/x-pack/packages/kbn-securitysolution-data-table/tsconfig.json
new file mode 100644
index 0000000000000..64d26b9c80257
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "extends": "../../../tsconfig.base.json",
+ "compilerOptions": {
+ "outDir": "target/types",
+ "types": ["jest", "node", "react"]
+ },
+ "include": ["**/*.ts", "**/*.tsx"],
+ "exclude": ["target/**/*"],
+ "kbn_references": [
+ "@kbn/cell-actions",
+ "@kbn/timelines-plugin",
+ "@kbn/es-query",
+ "@kbn/triggers-actions-ui-plugin",
+ "@kbn/securitysolution-ecs",
+ "@kbn/rule-registry-plugin",
+ "@kbn/safer-lodash-set",
+ "@kbn/i18n",
+ "@kbn/ui-theme",
+ "@kbn/kibana-react-plugin",
+ "@kbn/kibana-utils-plugin",
+ "@kbn/i18n-react",
+ "@kbn/ui-actions-plugin"
+ ]
+}
diff --git a/x-pack/packages/kbn-securitysolution-data-table/utils/use_mount_appended.ts b/x-pack/packages/kbn-securitysolution-data-table/utils/use_mount_appended.ts
new file mode 100644
index 0000000000000..d43b0455f47da
--- /dev/null
+++ b/x-pack/packages/kbn-securitysolution-data-table/utils/use_mount_appended.ts
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+// eslint-disable-next-line import/no-extraneous-dependencies
+import { mount } from 'enzyme';
+
+type WrapperOf any> = (...args: Parameters) => ReturnType;
+export type MountAppended = WrapperOf;
+
+export const useMountAppended = () => {
+ let root: HTMLElement;
+
+ beforeEach(() => {
+ root = document.createElement('div');
+ root.id = 'root';
+ document.body.appendChild(root);
+ });
+
+ afterEach(() => {
+ document.body.removeChild(root);
+ });
+
+ const mountAppended: MountAppended = (node, options) =>
+ mount(node, { ...options, attachTo: root });
+
+ return mountAppended;
+};
diff --git a/x-pack/packages/ml/agg_utils/tsconfig.json b/x-pack/packages/ml/agg_utils/tsconfig.json
index 53328adab80f2..fc8993c828529 100644
--- a/x-pack/packages/ml/agg_utils/tsconfig.json
+++ b/x-pack/packages/ml/agg_utils/tsconfig.json
@@ -17,7 +17,7 @@
"@kbn/ml-is-populated-object",
"@kbn/ml-string-hash",
"@kbn/data-views-plugin",
- "@kbn/ml-random-sampler-utils"
+ "@kbn/ml-random-sampler-utils",
],
"exclude": [
"target/**/*",
diff --git a/x-pack/plugins/actions/server/actions_client.test.ts b/x-pack/plugins/actions/server/actions_client.test.ts
index 6cf9d741d248e..3c4b1a876c522 100644
--- a/x-pack/plugins/actions/server/actions_client.test.ts
+++ b/x-pack/plugins/actions/server/actions_client.test.ts
@@ -580,6 +580,7 @@ describe('create()', () => {
verificationMode: 'full',
proxyVerificationMode: 'full',
},
+ enableFooterInEmail: true,
});
const localActionTypeRegistryParams = {
diff --git a/x-pack/plugins/actions/server/actions_config.mock.ts b/x-pack/plugins/actions/server/actions_config.mock.ts
index 26a626cd88bf4..95c6ec1c0cc11 100644
--- a/x-pack/plugins/actions/server/actions_config.mock.ts
+++ b/x-pack/plugins/actions/server/actions_config.mock.ts
@@ -27,6 +27,7 @@ const createActionsConfigMock = () => {
getMicrosoftGraphApiUrl: jest.fn().mockReturnValue(undefined),
validateEmailAddresses: jest.fn().mockReturnValue(undefined),
getMaxAttempts: jest.fn().mockReturnValue(3),
+ enableFooterInEmail: jest.fn().mockReturnValue(true),
};
return mocked;
};
diff --git a/x-pack/plugins/actions/server/actions_config.test.ts b/x-pack/plugins/actions/server/actions_config.test.ts
index 2c987ae7d48bd..e1b761ee30001 100644
--- a/x-pack/plugins/actions/server/actions_config.test.ts
+++ b/x-pack/plugins/actions/server/actions_config.test.ts
@@ -33,6 +33,7 @@ const defaultActionsConfig: ActionsConfig = {
proxyVerificationMode: 'full',
verificationMode: 'full',
},
+ enableFooterInEmail: true,
};
describe('ensureUriAllowed', () => {
diff --git a/x-pack/plugins/actions/server/actions_config.ts b/x-pack/plugins/actions/server/actions_config.ts
index 43dd35ba38021..78e62684ad898 100644
--- a/x-pack/plugins/actions/server/actions_config.ts
+++ b/x-pack/plugins/actions/server/actions_config.ts
@@ -53,6 +53,7 @@ export interface ActionsConfigurationUtilities {
addresses: string[],
options?: ValidateEmailAddressesOptions
): string | undefined;
+ enableFooterInEmail: () => boolean;
}
function allowListErrorMessage(field: AllowListingField, value: string) {
@@ -215,5 +216,6 @@ export function getActionsConfigurationUtilities(
DEFAULT_MAX_ATTEMPTS
);
},
+ enableFooterInEmail: () => config.enableFooterInEmail,
};
}
diff --git a/x-pack/plugins/actions/server/config.test.ts b/x-pack/plugins/actions/server/config.test.ts
index a1e6e96dcc69b..f5971a8650681 100644
--- a/x-pack/plugins/actions/server/config.test.ts
+++ b/x-pack/plugins/actions/server/config.test.ts
@@ -23,6 +23,7 @@ describe('config validation', () => {
"allowedHosts": Array [
"*",
],
+ "enableFooterInEmail": true,
"enabledActionTypes": Array [
"*",
],
@@ -57,6 +58,7 @@ describe('config validation', () => {
"allowedHosts": Array [
"*",
],
+ "enableFooterInEmail": true,
"enabledActionTypes": Array [
"*",
],
@@ -198,6 +200,7 @@ describe('config validation', () => {
"allowedHosts": Array [
"*",
],
+ "enableFooterInEmail": true,
"enabledActionTypes": Array [
"*",
],
diff --git a/x-pack/plugins/actions/server/config.ts b/x-pack/plugins/actions/server/config.ts
index bbac076783179..9a620d1452f23 100644
--- a/x-pack/plugins/actions/server/config.ts
+++ b/x-pack/plugins/actions/server/config.ts
@@ -125,6 +125,7 @@ export const configSchema = schema.object({
connectorTypeOverrides: schema.maybe(schema.arrayOf(connectorTypeSchema)),
})
),
+ enableFooterInEmail: schema.boolean({ defaultValue: true }),
});
export type ActionsConfig = TypeOf;
diff --git a/x-pack/plugins/actions/server/integration_tests/axios_utils_connection.test.ts b/x-pack/plugins/actions/server/integration_tests/axios_utils_connection.test.ts
index ddd128422f25b..04b8b412e3647 100644
--- a/x-pack/plugins/actions/server/integration_tests/axios_utils_connection.test.ts
+++ b/x-pack/plugins/actions/server/integration_tests/axios_utils_connection.test.ts
@@ -580,6 +580,7 @@ const BaseActionsConfig: ActionsConfig = {
maxResponseContentLength: ByteSizeValue.parse('1mb'),
responseTimeout: momentDuration(1000 * 30),
customHostSettings: undefined,
+ enableFooterInEmail: true,
};
function getACUfromConfig(config: Partial = {}): ActionsConfigurationUtilities {
diff --git a/x-pack/plugins/actions/server/integration_tests/axios_utils_proxy.test.ts b/x-pack/plugins/actions/server/integration_tests/axios_utils_proxy.test.ts
index 2be4e04aaba5b..d56818f2c6d3e 100644
--- a/x-pack/plugins/actions/server/integration_tests/axios_utils_proxy.test.ts
+++ b/x-pack/plugins/actions/server/integration_tests/axios_utils_proxy.test.ts
@@ -592,6 +592,7 @@ const BaseActionsConfig: ActionsConfig = {
maxResponseContentLength: ByteSizeValue.parse('1mb'),
responseTimeout: momentDuration(1000 * 30),
customHostSettings: undefined,
+ enableFooterInEmail: true,
};
function getACUfromConfig(config: Partial = {}): ActionsConfigurationUtilities {
diff --git a/x-pack/plugins/actions/server/lib/custom_host_settings.test.ts b/x-pack/plugins/actions/server/lib/custom_host_settings.test.ts
index 4bb0825a24ab0..f5cd9c268bd7e 100644
--- a/x-pack/plugins/actions/server/lib/custom_host_settings.test.ts
+++ b/x-pack/plugins/actions/server/lib/custom_host_settings.test.ts
@@ -73,6 +73,7 @@ describe('custom_host_settings', () => {
rejectUnauthorized: true,
maxResponseContentLength: new ByteSizeValue(1000000),
responseTimeout: moment.duration(60000),
+ enableFooterInEmail: true,
};
test('ensure it copies over the config parts that it does not touch', () => {
diff --git a/x-pack/plugins/actions/server/plugin.test.ts b/x-pack/plugins/actions/server/plugin.test.ts
index c0c89238edb5d..0136410920c66 100644
--- a/x-pack/plugins/actions/server/plugin.test.ts
+++ b/x-pack/plugins/actions/server/plugin.test.ts
@@ -46,6 +46,7 @@ describe('Actions Plugin', () => {
rejectUnauthorized: true,
maxResponseContentLength: new ByteSizeValue(1000000),
responseTimeout: moment.duration(60000),
+ enableFooterInEmail: true,
});
plugin = new ActionsPlugin(context);
coreSetup = coreMock.createSetup();
@@ -218,6 +219,7 @@ describe('Actions Plugin', () => {
rejectUnauthorized: true,
maxResponseContentLength: new ByteSizeValue(1000000),
responseTimeout: moment.duration('60s'),
+ enableFooterInEmail: true,
...overrides,
};
}
@@ -273,6 +275,7 @@ describe('Actions Plugin', () => {
rejectUnauthorized: true,
maxResponseContentLength: new ByteSizeValue(1000000),
responseTimeout: moment.duration(60000),
+ enableFooterInEmail: true,
});
plugin = new ActionsPlugin(context);
coreSetup = coreMock.createSetup();
@@ -341,6 +344,7 @@ describe('Actions Plugin', () => {
rejectUnauthorized: true,
maxResponseContentLength: new ByteSizeValue(1000000),
responseTimeout: moment.duration('60s'),
+ enableFooterInEmail: true,
...overrides,
};
}
diff --git a/x-pack/plugins/aiops/kibana.jsonc b/x-pack/plugins/aiops/kibana.jsonc
index a343af521ed80..019c77cc155fa 100644
--- a/x-pack/plugins/aiops/kibana.jsonc
+++ b/x-pack/plugins/aiops/kibana.jsonc
@@ -11,7 +11,8 @@
"charts",
"data",
"lens",
- "licensing"
+ "licensing",
+ "unifiedFieldList",
],
"requiredBundles": [
"fieldFormats",
diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_analysis.tsx b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_analysis.tsx
index f1bcdb18fbaec..7ddef239cf2f4 100644
--- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_analysis.tsx
+++ b/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_analysis.tsx
@@ -5,8 +5,9 @@
* 2.0.
*/
-import React, { useEffect, useMemo, useState, type FC } from 'react';
+import React, { useEffect, useMemo, useState, FC } from 'react';
import { isEqual, uniq } from 'lodash';
+import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import {
EuiButton,
@@ -25,7 +26,6 @@ import { useFetchStream } from '@kbn/aiops-utils';
import type { WindowParameters } from '@kbn/aiops-utils';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
-import type { Query } from '@kbn/es-query';
import { useAiopsAppContext } from '../../hooks/use_aiops_app_context';
import { initialState, streamReducer } from '../../../common/api/stream_reducer';
@@ -67,7 +67,7 @@ interface ExplainLogRateSpikesAnalysisProps {
/** Window parameters for the analysis */
windowParameters: WindowParameters;
/** The search query to be applied to the analysis as a filter */
- searchQuery: Query['query'];
+ searchQuery: estypes.QueryDslQueryContainer;
/** Sample probability to be applied to random sampler aggregations */
sampleProbability: number;
}
@@ -215,6 +215,7 @@ export const ExplainLogRateSpikesAnalysis: FC
return p + c.groupItemsSortedByUniqueness.length;
}, 0);
const foundGroups = groupTableItems.length > 0 && groupItemCount > 0;
+ const timeRangeMs = { from: earliest, to: latest };
// Disable the grouping switch toggle only if no groups were found,
// the toggle wasn't enabled already and no fields were selected to be skipped.
@@ -326,14 +327,18 @@ export const ExplainLogRateSpikesAnalysis: FC
significantTerms={data.significantTerms}
groupTableItems={groupTableItems}
loading={isRunning}
- dataViewId={dataView.id}
+ dataView={dataView}
+ timeRangeMs={timeRangeMs}
+ searchQuery={searchQuery}
/>
) : null}
{showSpikeAnalysisTable && !groupResults ? (
) : null}
diff --git a/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_content.tsx b/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_content.tsx
new file mode 100644
index 0000000000000..e3ea0d5bb01c0
--- /dev/null
+++ b/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_content.tsx
@@ -0,0 +1,191 @@
+/*
+ * 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 React, { FC, useMemo, useState, useCallback } from 'react';
+import {
+ FieldStats,
+ FieldStatsProps,
+ FieldStatsServices,
+ FieldStatsState,
+ FieldTopValuesBucketParams,
+ FieldTopValuesBucket,
+} from '@kbn/unified-field-list-plugin/public';
+import { isDefined } from '@kbn/ml-is-defined';
+import type { DataView, DataViewField } from '@kbn/data-plugin/common';
+import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker';
+import moment from 'moment';
+import { FormattedMessage } from '@kbn/i18n-react';
+import { EuiHorizontalRule, euiPaletteColorBlind, EuiSpacer, EuiText } from '@elastic/eui';
+
+const DEFAULT_COLOR = euiPaletteColorBlind()[0];
+const HIGHLIGHTED_FIELD_PROPS = {
+ color: 'accent',
+ textProps: {
+ color: 'accent',
+ },
+};
+
+function getPercentValue(
+ currentValue: number,
+ totalCount: number,
+ digitsRequired: boolean
+): number {
+ const percentageString =
+ totalCount > 0
+ ? `${(Math.round((currentValue / totalCount) * 1000) / 10).toFixed(digitsRequired ? 1 : 0)}`
+ : '';
+ return Number(percentageString);
+}
+
+interface FieldStatsContentProps {
+ dataView: DataView;
+ field: DataViewField;
+ fieldName: string;
+ fieldValue: string | number;
+ fieldStatsServices: FieldStatsServices;
+ timeRangeMs?: TimeRangeMs;
+ dslQuery?: FieldStatsProps['dslQuery'];
+}
+
+export const FieldStatsContent: FC = ({
+ dataView: currentDataView,
+ field,
+ fieldName,
+ fieldValue,
+ fieldStatsServices,
+ timeRangeMs,
+ dslQuery,
+}) => {
+ const [fieldStatsState, setFieldStatsState] = useState();
+
+ // Format timestamp to ISO formatted date strings
+ const timeRange = useMemo(() => {
+ // Use the provided timeRange if available
+ if (timeRangeMs) {
+ return {
+ from: moment(timeRangeMs.from).toISOString(),
+ to: moment(timeRangeMs.to).toISOString(),
+ };
+ }
+
+ const now = moment();
+ return { from: now.toISOString(), to: now.toISOString() };
+ }, [timeRangeMs]);
+
+ const onStateChange = useCallback((nextState: FieldStatsState) => {
+ setFieldStatsState(nextState);
+ }, []);
+
+ const individualStatForDisplay = useMemo((): {
+ needToDisplayIndividualStat: boolean;
+ percentage: string;
+ } => {
+ const defaultIndividualStatForDisplay = {
+ needToDisplayIndividualStat: false,
+ percentage: '< 1%',
+ };
+ if (fieldStatsState === undefined) return defaultIndividualStatForDisplay;
+
+ const { topValues: currentTopValues, sampledValues } = fieldStatsState;
+
+ const idxToHighlight =
+ currentTopValues?.buckets && Array.isArray(currentTopValues.buckets)
+ ? currentTopValues.buckets.findIndex((value) => value.key === fieldValue)
+ : null;
+
+ const needToDisplayIndividualStat =
+ idxToHighlight === -1 && fieldName !== undefined && fieldValue !== undefined;
+
+ if (needToDisplayIndividualStat) {
+ defaultIndividualStatForDisplay.needToDisplayIndividualStat = true;
+
+ const buckets =
+ currentTopValues?.buckets && Array.isArray(currentTopValues.buckets)
+ ? currentTopValues.buckets
+ : [];
+ let lowestPercentage: number | undefined;
+
+ // Taken from the unifiedFieldList plugin
+ const digitsRequired = buckets.some(
+ (bucket) => !Number.isInteger(bucket.count / (sampledValues ?? 5000))
+ );
+
+ buckets.forEach((bucket) => {
+ const currentPercentage = getPercentValue(
+ bucket.count,
+ sampledValues ?? 5000,
+ digitsRequired
+ );
+
+ if (lowestPercentage === undefined || currentPercentage < lowestPercentage) {
+ lowestPercentage = currentPercentage;
+ }
+ });
+
+ defaultIndividualStatForDisplay.percentage = `< ${lowestPercentage ?? 1}%`;
+ }
+
+ return defaultIndividualStatForDisplay;
+ }, [fieldStatsState, fieldName, fieldValue]);
+
+ const overrideFieldTopValueBar = useCallback(
+ (fieldTopValuesBucketParams: FieldTopValuesBucketParams) => {
+ if (fieldTopValuesBucketParams.type === 'other') {
+ return { color: 'primary' };
+ }
+ return fieldValue === fieldTopValuesBucketParams.fieldValue ? HIGHLIGHTED_FIELD_PROPS : {};
+ },
+ [fieldValue]
+ );
+
+ const showFieldStats = timeRange && isDefined(currentDataView) && field;
+
+ if (!showFieldStats) return null;
+ const formatter = currentDataView.getFormatterForField(field);
+
+ return (
+ <>
+
+ {individualStatForDisplay.needToDisplayIndividualStat ? (
+ <>
+
+
+
+
+
+
+ >
+ ) : null}
+ >
+ );
+};
diff --git a/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_popover.tsx b/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_popover.tsx
new file mode 100644
index 0000000000000..ba0d1c29e8965
--- /dev/null
+++ b/x-pack/plugins/aiops/public/components/field_stats_popover/field_stats_popover.tsx
@@ -0,0 +1,89 @@
+/*
+ * 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 { EuiButtonIcon, EuiToolTip } from '@elastic/eui';
+import React, { useCallback, useMemo, useState } from 'react';
+import { i18n } from '@kbn/i18n';
+import { isDefined } from '@kbn/ml-is-defined';
+import {
+ FieldPopover,
+ FieldPopoverHeader,
+ FieldStatsServices,
+ FieldStatsProps,
+} from '@kbn/unified-field-list-plugin/public';
+import type { DataView } from '@kbn/data-views-plugin/common';
+import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker';
+import { useEuiTheme } from '../../hooks/use_eui_theme';
+import { FieldStatsContent } from './field_stats_content';
+
+export function FieldStatsPopover({
+ dataView,
+ dslQuery,
+ fieldName,
+ fieldValue,
+ fieldStatsServices,
+ timeRangeMs,
+}: {
+ dataView: DataView;
+ dslQuery?: FieldStatsProps['dslQuery'];
+ fieldName: string;
+ fieldValue: string | number;
+ fieldStatsServices: FieldStatsServices;
+ timeRangeMs?: TimeRangeMs;
+}) {
+ const [infoIsOpen, setInfoOpen] = useState(false);
+ const euiTheme = useEuiTheme();
+
+ const closePopover = useCallback(() => setInfoOpen(false), []);
+
+ const fieldForStats = useMemo(
+ () => (isDefined(fieldName) ? dataView.getFieldByName(fieldName) : undefined),
+ [fieldName, dataView]
+ );
+
+ const trigger = (
+
+ ) => {
+ setInfoOpen(!infoIsOpen);
+ }}
+ aria-label={i18n.translate('xpack.aiops.fieldContextPopover.topFieldValuesAriaLabel', {
+ defaultMessage: 'Show top field values',
+ })}
+ data-test-subj={'aiopsContextPopoverButton'}
+ style={{ marginLeft: euiTheme.euiSizeXS }}
+ />
+
+ );
+
+ if (!fieldForStats) return null;
+
+ return (
+ }
+ renderContent={() => (
+
+ )}
+ />
+ );
+}
diff --git a/x-pack/plugins/aiops/public/components/field_stats_popover/index.ts b/x-pack/plugins/aiops/public/components/field_stats_popover/index.ts
new file mode 100644
index 0000000000000..c982a7dd397ea
--- /dev/null
+++ b/x-pack/plugins/aiops/public/components/field_stats_popover/index.ts
@@ -0,0 +1,8 @@
+/*
+ * 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.
+ */
+
+export { FieldStatsPopover } from './field_stats_popover';
diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table.tsx b/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table.tsx
index afbe7b693bfda..1a5b7460b62fe 100644
--- a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table.tsx
+++ b/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table.tsx
@@ -7,6 +7,7 @@
import React, { FC, useCallback, useMemo, useState } from 'react';
import { sortBy } from 'lodash';
+import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import {
useEuiBackgroundColor,
@@ -19,16 +20,22 @@ import {
EuiToolTip,
} from '@elastic/eui';
+import { FieldStatsServices } from '@kbn/unified-field-list-plugin/public';
+
+import type { DataView } from '@kbn/data-views-plugin/public';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import type { SignificantTerm } from '@kbn/ml-agg-utils';
+import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker';
import { useEuiTheme } from '../../hooks/use_eui_theme';
import { MiniHistogram } from '../mini_histogram';
+import { useAiopsAppContext } from '../../hooks/use_aiops_app_context';
import { getFailedTransactionsCorrelationImpactLabel } from './get_failed_transactions_correlation_impact_label';
import { useSpikeAnalysisTableRowContext } from './spike_analysis_table_row_provider';
+import { FieldStatsPopover } from '../field_stats_popover';
import { useCopyToClipboardAction } from './use_copy_to_clipboard_action';
import { useViewInDiscoverAction } from './use_view_in_discover_action';
@@ -43,19 +50,24 @@ const DEFAULT_SORT_DIRECTION = 'asc';
interface SpikeAnalysisTableProps {
significantTerms: SignificantTerm[];
- dataViewId?: string;
+ dataView: DataView;
loading: boolean;
isExpandedRow?: boolean;
+ searchQuery: estypes.QueryDslQueryContainer;
+ timeRangeMs: TimeRangeMs;
}
export const SpikeAnalysisTable: FC = ({
significantTerms,
- dataViewId,
+ dataView,
loading,
isExpandedRow,
+ searchQuery,
+ timeRangeMs,
}) => {
const euiTheme = useEuiTheme();
const primaryBackgroundColor = useEuiBackgroundColor('primary');
+ const dataViewId = dataView.id;
const {
pinnedSignificantTerm,
@@ -69,6 +81,18 @@ export const SpikeAnalysisTable: FC = ({
const [sortField, setSortField] = useState(DEFAULT_SORT_FIELD);
const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>(DEFAULT_SORT_DIRECTION);
+ const { data, uiSettings, fieldFormats, charts } = useAiopsAppContext();
+
+ const fieldStatsServices: FieldStatsServices = useMemo(() => {
+ return {
+ uiSettings,
+ dataViews: data.dataViews,
+ data,
+ fieldFormats,
+ charts,
+ };
+ }, [uiSettings, data, fieldFormats, charts]);
+
const copyToClipBoardAction = useCopyToClipboardAction();
const viewInDiscoverAction = useViewInDiscoverAction(dataViewId);
@@ -79,8 +103,21 @@ export const SpikeAnalysisTable: FC = ({
name: i18n.translate('xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldNameLabel', {
defaultMessage: 'Field name',
}),
+ render: (_, { fieldName, fieldValue }) => (
+ <>
+
+ {fieldName}
+ >
+ ),
sortable: true,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiopsSpikeAnalysisTableColumnFieldValue',
@@ -91,7 +128,7 @@ export const SpikeAnalysisTable: FC = ({
render: (_, { fieldValue }) => String(fieldValue),
sortable: true,
textOnly: true,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiopsSpikeAnalysisTableColumnLogRate',
@@ -125,7 +162,7 @@ export const SpikeAnalysisTable: FC = ({
/>
),
sortable: false,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiopsSpikeAnalysisTableColumnDocCount',
@@ -135,7 +172,7 @@ export const SpikeAnalysisTable: FC = ({
defaultMessage: 'Doc count',
}),
sortable: true,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiopsSpikeAnalysisTableColumnPValue',
@@ -163,7 +200,7 @@ export const SpikeAnalysisTable: FC = ({
),
render: (pValue: number | null) => pValue?.toPrecision(3) ?? NOT_AVAILABLE,
sortable: true,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiopsSpikeAnalysisTableColumnImpact',
@@ -194,7 +231,7 @@ export const SpikeAnalysisTable: FC = ({
return label ? {label.impact} : null;
},
sortable: true,
- valign: 'top',
+ valign: 'middle',
},
{
'data-test-subj': 'aiOpsSpikeAnalysisTableColumnAction',
@@ -203,7 +240,7 @@ export const SpikeAnalysisTable: FC = ({
}),
actions: [viewInDiscoverAction, copyToClipBoardAction],
width: ACTIONS_COLUMN_WIDTH,
- valign: 'top',
+ valign: 'middle',
},
];
@@ -231,7 +268,7 @@ export const SpikeAnalysisTable: FC = ({
return '';
},
sortable: false,
- valign: 'top',
+ valign: 'middle',
});
}
diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx b/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx
index 22c6f717c3a0a..b319db0088d4d 100644
--- a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx
+++ b/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx
@@ -25,9 +25,12 @@ import {
euiPaletteColorBlind,
} from '@elastic/eui';
+import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import type { SignificantTerm } from '@kbn/ml-agg-utils';
+import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker';
+import type { DataView } from '@kbn/data-views-plugin/public';
import { MiniHistogram } from '../mini_histogram';
@@ -51,15 +54,19 @@ const DEFAULT_SORT_DIRECTION = 'asc';
interface SpikeAnalysisTableProps {
significantTerms: SignificantTerm[];
groupTableItems: GroupTableItem[];
- dataViewId?: string;
loading: boolean;
+ searchQuery: estypes.QueryDslQueryContainer;
+ timeRangeMs: TimeRangeMs;
+ dataView: DataView;
}
export const SpikeAnalysisGroupsTable: FC = ({
significantTerms,
groupTableItems,
- dataViewId,
loading,
+ dataView,
+ timeRangeMs,
+ searchQuery,
}) => {
const [pageIndex, setPageIndex] = useState(0);
const [pageSize, setPageSize] = useState(10);
@@ -75,6 +82,7 @@ export const SpikeAnalysisGroupsTable: FC = ({
const { pinnedGroup, selectedGroup, setPinnedGroup, setSelectedGroup } =
useSpikeAnalysisTableRowContext();
+ const dataViewId = dataView.id;
const toggleDetails = (item: GroupTableItem) => {
const itemIdToExpandedRowMapValues = { ...itemIdToExpandedRowMap };
@@ -101,8 +109,10 @@ export const SpikeAnalysisGroupsTable: FC = ({
[]
)}
loading={loading}
- dataViewId={dataViewId}
isExpandedRow
+ dataView={dataView}
+ timeRangeMs={timeRangeMs}
+ searchQuery={searchQuery}
/>
);
}
diff --git a/x-pack/plugins/aiops/tsconfig.json b/x-pack/plugins/aiops/tsconfig.json
index 9398c0c189e04..b9a6ff5408eda 100644
--- a/x-pack/plugins/aiops/tsconfig.json
+++ b/x-pack/plugins/aiops/tsconfig.json
@@ -49,6 +49,7 @@
"@kbn/ml-query-utils",
"@kbn/ml-is-defined",
"@kbn/ml-route-utils",
+ "@kbn/unified-field-list-plugin",
"@kbn/ml-random-sampler-utils",
],
"exclude": [
diff --git a/x-pack/plugins/apm/kibana.jsonc b/x-pack/plugins/apm/kibana.jsonc
index 02ca85e30f0ad..f8038cad8fff7 100644
--- a/x-pack/plugins/apm/kibana.jsonc
+++ b/x-pack/plugins/apm/kibana.jsonc
@@ -7,10 +7,7 @@
"id": "apm",
"server": true,
"browser": true,
- "configPath": [
- "xpack",
- "apm"
- ],
+ "configPath": ["xpack", "apm"],
"requiredPlugins": [
"data",
"embeddable",
@@ -19,6 +16,7 @@
"inspector",
"licensing",
"observability",
+ "observabilityShared",
"exploratoryView",
"ruleRegistry",
"triggersActionsUi",
diff --git a/x-pack/plugins/apm/public/application/index.tsx b/x-pack/plugins/apm/public/application/index.tsx
index 5711b5a1f41c8..9bad342c7669e 100644
--- a/x-pack/plugins/apm/public/application/index.tsx
+++ b/x-pack/plugins/apm/public/application/index.tsx
@@ -49,6 +49,7 @@ export const renderApp = ({
data: pluginsStart.data,
inspector: pluginsStart.inspector,
observability: pluginsStart.observability,
+ observabilityShared: pluginsStart.observabilityShared,
observabilityRuleTypeRegistry,
dataViews: pluginsStart.dataViews,
unifiedSearch: pluginsStart.unifiedSearch,
diff --git a/x-pack/plugins/apm/public/components/routing/apm_error_boundary.tsx b/x-pack/plugins/apm/public/components/routing/apm_error_boundary.tsx
index 26b641a25896d..3b7849ddacf30 100644
--- a/x-pack/plugins/apm/public/components/routing/apm_error_boundary.tsx
+++ b/x-pack/plugins/apm/public/components/routing/apm_error_boundary.tsx
@@ -45,9 +45,9 @@ const pageHeader = {
function ErrorWithTemplate({ error }: { error: Error }) {
const { services } = useKibana();
- const { observability } = services;
+ const { observabilityShared } = services;
- const ObservabilityPageTemplate = observability.navigation.PageTemplate;
+ const ObservabilityPageTemplate = observabilityShared.navigation.PageTemplate;
if (error instanceof NotFoundRouteException) {
return (
diff --git a/x-pack/plugins/apm/public/components/routing/templates/apm_main_template.tsx b/x-pack/plugins/apm/public/components/routing/templates/apm_main_template.tsx
index c4bcc4e5fc612..5704fd18058bd 100644
--- a/x-pack/plugins/apm/public/components/routing/templates/apm_main_template.tsx
+++ b/x-pack/plugins/apm/public/components/routing/templates/apm_main_template.tsx
@@ -7,7 +7,7 @@
import { EuiPageHeaderProps } from '@elastic/eui';
import { useKibana } from '@kbn/kibana-react-plugin/public';
-import { ObservabilityPageTemplateProps } from '@kbn/observability-plugin/public/components/shared/page_template/page_template';
+import { ObservabilityPageTemplateProps } from '@kbn/observability-shared-plugin/public';
import type { KibanaPageTemplateProps } from '@kbn/shared-ux-page-kibana-template';
import React from 'react';
import { useLocation } from 'react-router-dom';
@@ -54,10 +54,10 @@ export function ApmMainTemplate({
const location = useLocation();
const { services } = useKibana();
- const { http, docLinks, observability, application } = services;
+ const { http, docLinks, observabilityShared, application } = services;
const basePath = http?.basePath.get();
- const ObservabilityPageTemplate = observability.navigation.PageTemplate;
+ const ObservabilityPageTemplate = observabilityShared.navigation.PageTemplate;
const { data, status } = useFetcher((callApmApi) => {
return callApmApi('GET /internal/apm/has_data');
diff --git a/x-pack/plugins/apm/public/components/routing/templates/settings_template.stories.tsx b/x-pack/plugins/apm/public/components/routing/templates/settings_template.stories.tsx
index ec3188f4ff197..b214a79b7a1f8 100644
--- a/x-pack/plugins/apm/public/components/routing/templates/settings_template.stories.tsx
+++ b/x-pack/plugins/apm/public/components/routing/templates/settings_template.stories.tsx
@@ -16,7 +16,7 @@ import { SettingsTemplate } from './settings_template';
type Args = ComponentProps;
const coreMock = {
- observability: {
+ observabilityShared: {
navigation: {
PageTemplate: () => {
return <>hello world>;
diff --git a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx
index ffca2a1b3cc4a..6924277f229c0 100644
--- a/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx
+++ b/x-pack/plugins/apm/public/context/apm_plugin/mock_apm_plugin_context.tsx
@@ -94,6 +94,7 @@ const mockCorePlugins = {
inspector: {},
maps: {},
observability: {},
+ observabilityShared: {},
data: {},
};
diff --git a/x-pack/plugins/apm/public/plugin.ts b/x-pack/plugins/apm/public/plugin.ts
index ba7b455c05bb6..ac1d7294a27be 100644
--- a/x-pack/plugins/apm/public/plugin.ts
+++ b/x-pack/plugins/apm/public/plugin.ts
@@ -38,6 +38,10 @@ import type { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
import type { MapsStartApi } from '@kbn/maps-plugin/public';
import type { MlPluginSetup, MlPluginStart } from '@kbn/ml-plugin/public';
import type { SharePluginSetup } from '@kbn/share-plugin/public';
+import type {
+ ObservabilitySharedPluginSetup,
+ ObservabilitySharedPluginStart,
+} from '@kbn/observability-shared-plugin/public';
import {
FetchDataParams,
METRIC_TYPE,
@@ -80,6 +84,7 @@ export interface ApmPluginSetupDeps {
licensing: LicensingPluginSetup;
ml?: MlPluginSetup;
observability: ObservabilityPublicSetup;
+ observabilityShared: ObservabilitySharedPluginSetup;
triggersActionsUi: TriggersAndActionsUIPublicPluginSetup;
share: SharePluginSetup;
}
@@ -96,6 +101,7 @@ export interface ApmPluginStartDeps {
ml?: MlPluginStart;
triggersActionsUi: TriggersAndActionsUIPublicPluginStart;
observability: ObservabilityPublicStart;
+ observabilityShared: ObservabilitySharedPluginStart;
fleet?: FleetStart;
fieldFormats?: FieldFormatsStart;
security?: SecurityPluginStart;
@@ -162,7 +168,7 @@ export class ApmPlugin implements Plugin {
}
// register observability nav if user has access to plugin
- plugins.observability.navigation.registerSections(
+ plugins.observabilityShared.navigation.registerSections(
from(core.getStartServices()).pipe(
map(([coreStart, pluginsStart]) => {
if (coreStart.application.capabilities.apm.show) {
diff --git a/x-pack/plugins/apm/tsconfig.json b/x-pack/plugins/apm/tsconfig.json
index 5419244c7cb15..e049bed128afa 100644
--- a/x-pack/plugins/apm/tsconfig.json
+++ b/x-pack/plugins/apm/tsconfig.json
@@ -83,6 +83,7 @@
"@kbn/alerts-as-data-utils",
"@kbn/exploratory-view-plugin",
"@kbn/logging-mocks",
+ "@kbn/observability-shared-plugin",
],
"exclude": [
"target/**/*",
diff --git a/x-pack/plugins/cloud_defend/public/common/utils.test.ts b/x-pack/plugins/cloud_defend/public/common/utils.test.ts
index f0342535d6d21..86f5d06b02365 100644
--- a/x-pack/plugins/cloud_defend/public/common/utils.test.ts
+++ b/x-pack/plugins/cloud_defend/public/common/utils.test.ts
@@ -54,7 +54,7 @@ describe('getSelectorConditions', () => {
// check that process specific conditions are not included
expect(options.includes('processExecutable')).toBeFalsy();
- expect(options.includes('processUserId')).toBeFalsy();
+ expect(options.includes('sessionLeaderInteractive')).toBeFalsy();
});
it('grabs process conditions for process selectors', () => {
@@ -70,7 +70,6 @@ describe('getSelectorConditions', () => {
// check that process specific conditions are not included
expect(options.includes('processExecutable')).toBeTruthy();
- expect(options.includes('processUserId')).toBeTruthy();
expect(options.includes('sessionLeaderInteractive')).toBeTruthy();
});
});
diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view/index.tsx b/x-pack/plugins/cloud_defend/public/components/control_general_view/index.tsx
index 72a182820ae89..0a253b8c68a73 100644
--- a/x-pack/plugins/cloud_defend/public/components/control_general_view/index.tsx
+++ b/x-pack/plugins/cloud_defend/public/components/control_general_view/index.tsx
@@ -338,6 +338,10 @@ export const ControlGeneralView = ({ policy, onChange, show }: ViewDeps) => {
{selectors.map((selector, i) => {
+ const usedByResponse = !!responses.find((response) =>
+ response.match.includes(selector.name)
+ );
+
return (
{
index={i}
selector={selector}
selectors={selectors}
+ usedByResponse={usedByResponse}
onDuplicate={onDuplicateSelector}
onRemove={onRemoveSelector}
onChange={onSelectorChange}
diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view/translations.ts b/x-pack/plugins/cloud_defend/public/components/control_general_view/translations.ts
index fc37da2fc6c86..d80ef8030ea6a 100644
--- a/x-pack/plugins/cloud_defend/public/components/control_general_view/translations.ts
+++ b/x-pack/plugins/cloud_defend/public/components/control_general_view/translations.ts
@@ -116,6 +116,14 @@ export const name = i18n.translate('xpack.cloudDefend.name', {
defaultMessage: 'Name',
});
+export const unusedSelector = i18n.translate('xpack.cloudDefend.unusedSelector', {
+ defaultMessage: 'Not in use',
+});
+
+export const unusedSelectorHelp = i18n.translate('xpack.cloudDefend.unusedSelectorHelp', {
+ defaultMessage: 'This selector is not in use by any response.',
+});
+
export const errorInvalidResourceLabel = i18n.translate(
'xpack.cloudDefend.errorInvalidResourceLabel',
{
diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx
index 4d3cfd0aa7623..df99541546c57 100644
--- a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx
+++ b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.test.tsx
@@ -50,6 +50,7 @@ describe('', () => {
onChange={onChange}
onRemove={onRemove}
onDuplicate={onDuplicate}
+ usedByResponse={false}
/>
);
@@ -68,6 +69,12 @@ describe('', () => {
expect(getByTestId('cloud-defend-selectorcondition-operation')).toBeTruthy();
});
+ it('renders a badge to show that the selector is unused', () => {
+ const { getByText } = render();
+
+ expect(getByText(i18n.unusedSelector)).toBeTruthy();
+ });
+
it('allows the user to add a limited set of operations', () => {
const { getByTestId, rerender } = render();
diff --git a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.tsx b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.tsx
index 6119e31386b5e..80ffff0a3bd6a 100644
--- a/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.tsx
+++ b/x-pack/plugins/cloud_defend/public/components/control_general_view_selector/index.tsx
@@ -184,6 +184,7 @@ const StringArrayCondition = ({
export const ControlGeneralViewSelector = ({
selector,
selectors,
+ usedByResponse,
index,
onRemove,
onDuplicate,
@@ -393,17 +394,24 @@ export const ControlGeneralViewSelector = ({
css={styles.accordion}
extraAction={
- {accordionState === 'closed' && (
-
-
- {i18n.conditions}
-
-
- {conditionsAdded.length}
+
+ {accordionState === 'closed' && (
+ <>
+
+ {i18n.conditions}
+
+
+ {conditionsAdded.length}
+
+ >
+ )}
+ {!usedByResponse && (
+
+ {i18n.unusedSelector}
-
-
- )}
+ )}
+
+
', () => {
);
expect(getByTestId('cloudDefendAdditionalErrors')).toBeTruthy();
- expect(getByText('"sessionLeaderName" values cannot exceed 16 bytes')).toBeTruthy();
+ expect(getByText('"targetFilePath" values cannot exceed 255 bytes')).toBeTruthy();
});
});
diff --git a/x-pack/plugins/cloud_defend/public/test/mocks.ts b/x-pack/plugins/cloud_defend/public/test/mocks.ts
index 0d90a8ed7ce1b..8ac1d9755bc03 100644
--- a/x-pack/plugins/cloud_defend/public/test/mocks.ts
+++ b/x-pack/plugins/cloud_defend/public/test/mocks.ts
@@ -55,8 +55,8 @@ export const MOCK_YAML_INVALID_STRING_ARRAY_CONDITION = `file:
operation:
- createExecutable
- modifyExecutable
- sessionLeaderName:
- - reallylongsessionleadernamethatshouldnotbeallowed
+ targetFilePath:
+ - /bin/${new Array(256).fill('a').join()}
responses:
- match:
- default
diff --git a/x-pack/plugins/cloud_defend/public/types.ts b/x-pack/plugins/cloud_defend/public/types.ts
index 7b35588d547e8..cd1135fefe5ac 100755
--- a/x-pack/plugins/cloud_defend/public/types.ts
+++ b/x-pack/plugins/cloud_defend/public/types.ts
@@ -78,9 +78,7 @@ export type SelectorCondition =
| 'operation'
| 'processExecutable'
| 'processName'
- | 'processUserId'
- | 'sessionLeaderInteractive'
- | 'sessionLeaderName';
+ | 'sessionLeaderInteractive';
export interface SelectorConditionOptions {
type: SelectorConditionType;
@@ -141,9 +139,7 @@ export const SelectorConditionsMap: SelectorConditionsMapProps = {
ignoreVolumeMounts: { selectorType: 'file', type: 'flag', not: ['ignoreVolumeFiles'] },
processExecutable: { selectorType: 'process', type: 'stringArray', not: ['processName'] },
processName: { selectorType: 'process', type: 'stringArray', not: ['processExecutable'] },
- processUserId: { selectorType: 'process', type: 'stringArray' },
sessionLeaderInteractive: { selectorType: 'process', type: 'boolean' },
- sessionLeaderName: { selectorType: 'process', type: 'stringArray', maxValueBytes: 16 },
};
export type ResponseAction = 'log' | 'alert' | 'block';
@@ -168,9 +164,7 @@ export interface Selector {
// process selector properties
processExecutable?: string[];
processName?: string[];
- processUserId?: string[];
sessionLeaderInteractive?: string[];
- sessionLeaderName?: string[];
// non yaml fields
type: SelectorType;
@@ -230,6 +224,7 @@ export interface ViewDeps extends SettingsDeps {
export interface ControlGeneralViewSelectorDeps {
selector: Selector;
selectors: Selector[];
+ usedByResponse: boolean;
index: number;
onChange(selector: Selector, index: number): void;
onRemove(index: number): void;
diff --git a/x-pack/plugins/cloud_security_posture/public/assets/illustrations/illustration_product_no_results_magnifying_glass.svg b/x-pack/plugins/cloud_security_posture/public/assets/illustrations/illustration_product_no_results_magnifying_glass.svg
new file mode 100644
index 0000000000000..2c420e7efed8d
--- /dev/null
+++ b/x-pack/plugins/cloud_security_posture/public/assets/illustrations/illustration_product_no_results_magnifying_glass.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/x-pack/plugins/cloud_security_posture/public/common/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/constants.ts
index 185cd19f200cf..afc8bf8b1d6b9 100644
--- a/x-pack/plugins/cloud_security_posture/public/common/constants.ts
+++ b/x-pack/plugins/cloud_security_posture/public/common/constants.ts
@@ -213,3 +213,4 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = {
],
},
};
+export const FINDINGS_DOCS_URL = 'https://ela.st/findings';
diff --git a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_cloud_posture_table/use_cloud_posture_table.ts b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_cloud_posture_table/use_cloud_posture_table.ts
index 2c2c392a91c37..b26af81cdff43 100644
--- a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_cloud_posture_table/use_cloud_posture_table.ts
+++ b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_cloud_posture_table/use_cloud_posture_table.ts
@@ -36,6 +36,17 @@ export const useCloudPostureTable = ({
[setUrlQuery, setPageSize]
);
+ const onResetFilters = useCallback(() => {
+ setUrlQuery({
+ pageIndex: 0,
+ filters: [],
+ query: {
+ query: '',
+ language: 'kuery',
+ },
+ });
+ }, [setUrlQuery]);
+
const onChangePage = useCallback(
(newPageIndex) => {
setUrlQuery({
@@ -96,5 +107,6 @@ export const useCloudPostureTable = ({
onChangeItemsPerPage,
onChangePage,
onSort,
+ onResetFilters,
};
};
diff --git a/x-pack/plugins/cloud_security_posture/public/components/empty_state.tsx b/x-pack/plugins/cloud_security_posture/public/components/empty_state.tsx
new file mode 100644
index 0000000000000..9c38e635062f7
--- /dev/null
+++ b/x-pack/plugins/cloud_security_posture/public/components/empty_state.tsx
@@ -0,0 +1,80 @@
+/*
+ * 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 React from 'react';
+import { EuiImage, EuiEmptyPrompt, EuiButton, EuiLink, useEuiTheme } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { FormattedMessage } from '@kbn/i18n-react';
+import { css } from '@emotion/react';
+import { EMPTY_STATE_TEST_SUBJ } from './test_subjects';
+import { FINDINGS_DOCS_URL } from '../common/constants';
+import illustration from '../assets/illustrations/illustration_product_no_results_magnifying_glass.svg';
+
+export const EmptyState = ({
+ onResetFilters,
+ docsUrl = FINDINGS_DOCS_URL,
+}: {
+ onResetFilters: () => void;
+ docsUrl?: string;
+}) => {
+ const { euiTheme } = useEuiTheme();
+
+ return (
+ .euiEmptyPrompt__main {
+ gap: ${euiTheme.size.xl};
+ }
+ margin-top: ${euiTheme.size.xxxl}};
+ `}
+ data-test-subj={EMPTY_STATE_TEST_SUBJ}
+ icon={
+
+ }
+ title={
+
+
+
+ }
+ layout="horizontal"
+ color="plain"
+ body={
+ <>
+
+
+
+ >
+ }
+ actions={[
+
+
+ ,
+
+
+ ,
+ ]}
+ />
+ );
+};
diff --git a/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts
index 7b818971d597f..1ea18cea47106 100644
--- a/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts
+++ b/x-pack/plugins/cloud_security_posture/public/components/test_subjects.ts
@@ -20,6 +20,7 @@ export const NO_FINDINGS_STATUS_TEST_SUBJ = {
NO_FINDINGS: 'no-findings-found',
};
+export const EMPTY_STATE_TEST_SUBJ = 'csp:empty-state';
export const NO_VULNERABILITIES_STATUS_TEST_SUBJ = {
SCANNING_VULNERABILITIES: 'scanning-vulnerabilities-empty-prompt',
UNPRIVILEGED: 'status-api-vuln-mgmt-unprivileged',
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_container.tsx
index 6d8234da7556c..d8487d350e38a 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_container.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_container.tsx
@@ -49,6 +49,7 @@ export const LatestFindingsContainer = ({ dataView }: FindingsBaseProps) => {
urlQuery,
setUrlQuery,
filters,
+ onResetFilters,
} = useCloudPostureTable({
dataView,
defaultQuery: getDefaultQuery,
@@ -167,6 +168,7 @@ export const LatestFindingsContainer = ({ dataView }: FindingsBaseProps) => {
)}
', () => {
onOpenFlyout={onOpenFlyout}
onCloseFlyout={onCloseFlyout}
onPaginateFlyout={jest.fn()}
+ onResetFilters={jest.fn()}
flyoutFindingIndex={-1}
{...overrideProps}
/>
@@ -67,9 +69,7 @@ describe('', () => {
it('renders the zero state when status success and data has a length of zero ', async () => {
renderWrapper({ items: [] });
- expect(
- screen.getByTestId(TEST_SUBJECTS.LATEST_FINDINGS_TABLE_NO_FINDINGS_EMPTY_STATE)
- ).toBeInTheDocument();
+ expect(screen.getByTestId(EMPTY_STATE_TEST_SUBJ)).toBeInTheDocument();
});
it('renders the table with provided items', () => {
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_table.tsx
index 8d70183d88a02..f54548531434a 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_table.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_table.tsx
@@ -6,7 +6,6 @@
*/
import React, { useMemo } from 'react';
import {
- EuiEmptyPrompt,
EuiBasicTable,
useEuiTheme,
type Pagination,
@@ -15,7 +14,6 @@ import {
type EuiTableActionsColumnType,
type EuiTableFieldDataColumnType,
} from '@elastic/eui';
-import { FormattedMessage } from '@kbn/i18n-react';
import { CspFinding } from '../../../../common/schemas/csp_finding';
import * as TEST_SUBJECTS from '../test_subjects';
import { FindingsRuleFlyout } from '../findings_flyout/findings_flyout';
@@ -26,6 +24,7 @@ import {
type OnAddFilter,
} from '../layout/findings_layout';
import { getSelectedRowStyle } from '../utils/utils';
+import { EmptyState } from '../../../components/empty_state';
type TableProps = Required>;
@@ -40,6 +39,7 @@ interface Props {
onCloseFlyout: () => void;
onOpenFlyout: (finding: CspFinding) => void;
flyoutFindingIndex: number;
+ onResetFilters: () => void;
}
const FindingsTableComponent = ({
@@ -53,6 +53,7 @@ const FindingsTableComponent = ({
flyoutFindingIndex,
onPaginateFlyout,
onCloseFlyout,
+ onResetFilters,
}: Props) => {
const { euiTheme } = useEuiTheme();
@@ -85,23 +86,9 @@ const FindingsTableComponent = ({
[onOpenFlyout, onAddFilter]
);
- // Show "zero state"
- if (!loading && !items.length)
- // TODO: use our own logo
- return (
-
-
-
- }
- />
- );
+ if (!loading && !items.length) {
+ return ;
+ }
return (
<>
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_container.tsx
index a3a43b8bdca79..43f075fe68de6 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_container.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_container.tsx
@@ -62,7 +62,7 @@ export const FindingsByResourceContainer = ({ dataView }: FindingsBaseProps) =>
);
const LatestFindingsByResource = ({ dataView }: FindingsBaseProps) => {
- const { queryError, query, pageSize, setTableOptions, urlQuery, setUrlQuery } =
+ const { queryError, query, pageSize, setTableOptions, urlQuery, setUrlQuery, onResetFilters } =
useCloudPostureTable({
dataView,
defaultQuery: getDefaultQuery,
@@ -141,6 +141,7 @@ const LatestFindingsByResource = ({ dataView }: FindingsBaseProps) => {
', () => {
},
setTableOptions: jest.fn(),
onAddFilter: jest.fn(),
+ onResetFilters: jest.fn(),
};
render(
@@ -64,9 +66,7 @@ describe('', () => {
);
- expect(
- screen.getByTestId(TEST_SUBJECTS.FINDINGS_BY_RESOURCE_TABLE_NO_FINDINGS_EMPTY_STATE)
- ).toBeInTheDocument();
+ expect(screen.getByTestId(EMPTY_STATE_TEST_SUBJ)).toBeInTheDocument();
});
it('renders the table with provided items', () => {
@@ -81,6 +81,7 @@ describe('', () => {
},
setTableOptions: jest.fn(),
onAddFilter: jest.fn(),
+ onResetFilters: jest.fn(),
};
render(
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx
index d2894152259e5..2d11624317e47 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx
@@ -6,7 +6,6 @@
*/
import React, { useMemo } from 'react';
import {
- EuiEmptyPrompt,
EuiBasicTable,
type EuiTableFieldDataColumnType,
type CriteriaWithPagination,
@@ -29,6 +28,7 @@ import {
type OnAddFilter,
baseFindingsColumns,
} from '../layout/findings_layout';
+import { EmptyState } from '../../../components/empty_state';
export const formatNumber = (value: number) =>
value < 1000 ? value : numeral(value).format('0.0a');
@@ -42,6 +42,7 @@ interface Props {
sorting: Sorting;
setTableOptions(options: CriteriaWithPagination): void;
onAddFilter: OnAddFilter;
+ onResetFilters: () => void;
}
export const getResourceId = (resource: FindingsByResourcePage) => {
@@ -56,6 +57,7 @@ const FindingsByResourceTableComponent = ({
sorting,
setTableOptions,
onAddFilter,
+ onResetFilters,
}: Props) => {
const getRowProps = (row: FindingsByResourcePage) => ({
'data-test-subj': TEST_SUBJECTS.getFindingsByResourceTableRowTestId(getResourceId(row)),
@@ -89,21 +91,9 @@ const FindingsByResourceTableComponent = ({
[onAddFilter]
);
- if (!loading && !items.length)
- return (
-
-
-
- }
- />
- );
+ if (!loading && !items.length) {
+ return ;
+ }
return (
{
const params = useParams<{ resourceId: string }>();
const decodedResourceId = decodeURIComponent(params.resourceId);
- const { pageIndex, sort, queryError, pageSize, setTableOptions, urlQuery, setUrlQuery } =
- useCloudPostureTable({
- dataView,
- defaultQuery: getDefaultQuery,
- paginationLocalStorageKey: LOCAL_STORAGE_PAGE_SIZE_FINDINGS_KEY,
- });
+ const {
+ pageIndex,
+ sort,
+ queryError,
+ pageSize,
+ setTableOptions,
+ urlQuery,
+ setUrlQuery,
+ onResetFilters,
+ } = useCloudPostureTable({
+ dataView,
+ defaultQuery: getDefaultQuery,
+ paginationLocalStorageKey: LOCAL_STORAGE_PAGE_SIZE_FINDINGS_KEY,
+ });
/**
* Page ES query result
@@ -246,6 +254,7 @@ export const ResourceFindings = ({ dataView }: FindingsBaseProps) => {
onCloseFlyout={onCloseFlyout}
onPaginateFlyout={onPaginateFlyout}
onOpenFlyout={onOpenFlyout}
+ onResetFilters={onResetFilters}
flyoutFindingIndex={flyoutFindingIndex}
loading={resourceFindings.isFetching}
items={slicedPage}
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.test.tsx
index b9a7ee6cf1f32..b47366938db8d 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.test.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.test.tsx
@@ -13,6 +13,7 @@ import { TestProvider } from '../../../../test/test_provider';
import { capitalize } from 'lodash';
import moment from 'moment';
import { getFindingsFixture } from '../../../../test/fixtures/findings_fixture';
+import { EMPTY_STATE_TEST_SUBJ } from '../../../../components/test_subjects';
describe('', () => {
it('should render no findings empty state when status success and data has a length of zero ', async () => {
@@ -29,6 +30,7 @@ describe('', () => {
onOpenFlyout: jest.fn(),
onCloseFlyout: jest.fn(),
onPaginateFlyout: jest.fn(),
+ onResetFilters: jest.fn(),
};
render(
@@ -37,9 +39,7 @@ describe('', () => {
);
- expect(
- screen.getByTestId(TEST_SUBJECTS.RESOURCES_FINDINGS_TABLE_EMPTY_STATE)
- ).toBeInTheDocument();
+ expect(screen.getByTestId(EMPTY_STATE_TEST_SUBJ)).toBeInTheDocument();
});
it('should render resource finding table content when data has a non zero length', () => {
@@ -58,6 +58,7 @@ describe('', () => {
onOpenFlyout: jest.fn(),
onCloseFlyout: jest.fn(),
onPaginateFlyout: jest.fn(),
+ onResetFilters: jest.fn(),
};
render(
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.tsx
index b180d23b90a13..0a1a23701774b 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/resource_findings/resource_findings_table.tsx
@@ -6,7 +6,6 @@
*/
import React, { useMemo } from 'react';
import {
- EuiEmptyPrompt,
EuiBasicTable,
type CriteriaWithPagination,
type Pagination,
@@ -15,7 +14,6 @@ import {
type EuiBasicTableProps,
useEuiTheme,
} from '@elastic/eui';
-import { FormattedMessage } from '@kbn/i18n-react';
import { CspFinding } from '../../../../../common/schemas/csp_finding';
import {
baseFindingsColumns,
@@ -26,6 +24,7 @@ import {
import { FindingsRuleFlyout } from '../../findings_flyout/findings_flyout';
import { getSelectedRowStyle } from '../../utils/utils';
import * as TEST_SUBJECTS from '../../test_subjects';
+import { EmptyState } from '../../../../components/empty_state';
export interface ResourceFindingsTableProps {
items: CspFinding[];
@@ -38,6 +37,7 @@ export interface ResourceFindingsTableProps {
onCloseFlyout: () => void;
onOpenFlyout: (finding: CspFinding) => void;
flyoutFindingIndex: number;
+ onResetFilters: () => void;
}
const ResourceFindingsTableComponent = ({
@@ -51,6 +51,7 @@ const ResourceFindingsTableComponent = ({
flyoutFindingIndex,
onPaginateFlyout,
onCloseFlyout,
+ onResetFilters,
}: ResourceFindingsTableProps) => {
const { euiTheme } = useEuiTheme();
@@ -76,21 +77,9 @@ const ResourceFindingsTableComponent = ({
[onAddFilter, onOpenFlyout]
);
- if (!loading && !items.length)
- return (
-
-
-
- }
- />
- );
+ if (!loading && !items.length) {
+ return ;
+ }
return (
<>
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/configurations/test_subjects.ts
index 183bc4cb72d30..b0d5a8ffd19f5 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/test_subjects.ts
+++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/test_subjects.ts
@@ -8,16 +8,12 @@
export const FINDINGS_FLYOUT = 'findings_flyout';
export const FINDINGS_TABLE_EXPAND_COLUMN = 'findings_table_expand_column';
export const FINDINGS_TABLE = 'findings_table';
-export const FINDINGS_BY_RESOURCE_TABLE_NO_FINDINGS_EMPTY_STATE =
- 'findings-by-resource-table-no-findings-empty-state';
export const FINDINGS_CONTAINER = 'findings_container';
export const FINDINGS_BY_RESOURCE_CONTAINER = 'findings_by_resource_container';
export const FINDINGS_BY_RESOURCE_TABLE_RESOURCE_ID_COLUMN =
'findings_by_resource_table_resource_id_column';
export const FINDINGS_BY_RESOURCE_TABLE = 'findings_by_resource_table';
-export const LATEST_FINDINGS_TABLE_NO_FINDINGS_EMPTY_STATE =
- 'latest-findings-table-no-findings-empty-state';
export const getFindingsByResourceTableRowTestId = (id: string) =>
`findings_resource_table_row_${id}`;
export const LATEST_FINDINGS_CONTAINER = 'latest_findings_container';
@@ -33,7 +29,6 @@ export const FINDINGS_TABLE_CELL_ADD_FILTER = 'findings_table_cell_add_filter';
export const FINDINGS_TABLE_CELL_ADD_NEGATED_FILTER = 'findings_table_cell_add_negated_filter';
export const RESOURCES_FINDINGS_CONTAINER = 'resources_findings_container';
-export const RESOURCES_FINDINGS_TABLE_EMPTY_STATE = 'resource_findings_table_empty_state';
export const RESOURCES_FINDINGS_TABLE = 'resource_findings_table';
export const getResourceFindingsTableRowTestId = (id: string) =>
`resource_findings_table_row_${id}`;
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities.tsx b/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities.tsx
index c63d45d9592d6..19f0cb88aa219 100644
--- a/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities.tsx
+++ b/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities.tsx
@@ -9,13 +9,11 @@ import {
EuiButtonIcon,
EuiDataGrid,
EuiDataGridCellValueElementProps,
- EuiEmptyPrompt,
EuiLoadingSpinner,
EuiSpacer,
useEuiTheme,
} from '@elastic/eui';
import { css } from '@emotion/react';
-import { FormattedMessage } from '@kbn/i18n-react';
import { DataView } from '@kbn/data-views-plugin/common';
import React, { useMemo, useState } from 'react';
import { i18n } from '@kbn/i18n';
@@ -29,6 +27,7 @@ import { ErrorCallout } from '../configurations/layout/error_callout';
import { FindingsSearchBar } from '../configurations/layout/findings_search_bar';
import { useFilteredDataView } from '../../common/api/use_filtered_data_view';
import { CVSScoreBadge, SeverityStatusBadge } from '../../components/vulnerability_badges';
+import { EmptyState } from '../../components/empty_state';
import { VulnerabilityFindingFlyout } from './vulnerabilities_finding_flyout/vulnerability_finding_flyout';
import { NoVulnerabilitiesStates } from '../../components/no_vulnerabilities_states';
import { useCspSetupStatusApi } from '../../common/api/use_setup_status_api';
@@ -67,6 +66,7 @@ const VulnerabilitiesContent = ({ dataView }: { dataView: DataView }) => {
onChangePage,
onSort,
setUrlQuery,
+ onResetFilters,
} = useCloudPostureTable({
dataView,
defaultQuery: getDefaultQuery,
@@ -185,17 +185,7 @@ const VulnerabilitiesContent = ({ dataView }: { dataView: DataView }) => {
/>
{!isLoading && data.page.length === 0 ? (
-
-
-
- }
- />
+
) : (
<>
{
);
});
+ it('should return something that safely removes redundant prefixes', () => {
+ const mockTextClassificationModel: MlTrainedModelConfig = {
+ ...mockModel,
+ ...{ inference_config: { text_classification: {} } },
+ };
+ const actual: MlInferencePipeline = generateMlInferencePipelineBody({
+ description: 'my-description',
+ model: mockTextClassificationModel,
+ pipelineName: 'my-pipeline',
+ fieldMappings: [
+ { sourceField: 'my-source-field_1', targetField: 'ml.inference.my-source-field_expanded' },
+ { sourceField: 'my-source-field_2', targetField: 'my-source-ml.inference-field_expanded' },
+ {
+ sourceField: 'my-source-field_3',
+ targetField: 'ml.inference.my-source-2-ml.inference-field_expanded',
+ },
+ ],
+ });
+
+ expect(actual).toEqual(
+ expect.objectContaining({
+ description: expect.any(String),
+ processors: expect.arrayContaining([
+ expect.objectContaining({
+ remove: {
+ field: 'ml.inference.my-source-field_expanded',
+ ignore_missing: true,
+ },
+ }),
+ expect.objectContaining({
+ remove: {
+ field: 'ml.inference.my-source-ml.inference-field_expanded',
+ ignore_missing: true,
+ },
+ }),
+ expect.objectContaining({
+ remove: {
+ field: 'ml.inference.my-source-2-ml.inference-field_expanded',
+ ignore_missing: true,
+ },
+ }),
+ expect.objectContaining({
+ inference: expect.objectContaining({
+ field_map: {
+ 'my-source-field_1': 'MODEL_INPUT_FIELD',
+ },
+ target_field: 'ml.inference.my-source-field_expanded',
+ }),
+ }),
+ expect.objectContaining({
+ inference: expect.objectContaining({
+ field_map: {
+ 'my-source-field_2': 'MODEL_INPUT_FIELD',
+ },
+ target_field: 'ml.inference.my-source-ml.inference-field_expanded',
+ }),
+ }),
+ expect.objectContaining({
+ inference: expect.objectContaining({
+ field_map: {
+ 'my-source-field_3': 'MODEL_INPUT_FIELD',
+ },
+ target_field: 'ml.inference.my-source-2-ml.inference-field_expanded',
+ }),
+ }),
+ ]),
+ })
+ );
+ });
+
it('should return something expected with multiple fields', () => {
const actual: MlInferencePipeline = generateMlInferencePipelineBody({
description: 'my-description',
diff --git a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts
index 0c56f7dd373f6..a51f7f022d9f9 100644
--- a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts
+++ b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts
@@ -29,6 +29,7 @@ import {
export const TEXT_EXPANSION_TYPE = SUPPORTED_PYTORCH_TASKS.TEXT_EXPANSION;
export const TEXT_EXPANSION_FRIENDLY_TYPE = 'ELSER';
+export const ML_INFERENCE_PREFIX = 'ml.inference.';
export interface MlInferencePipelineParams {
description?: string;
@@ -224,7 +225,9 @@ export const parseMlInferenceParametersFromPipeline = (
return null;
}
return {
- destination_field: inferenceProcessor.target_field?.replace('ml.inference.', ''),
+ destination_field: inferenceProcessor.target_field
+ ? stripMlInferencePrefix(inferenceProcessor.target_field)
+ : inferenceProcessor.target_field,
model_id: inferenceProcessor.model_id,
pipeline_name: name,
source_field: sourceField,
@@ -258,4 +261,10 @@ export const parseModelStateFromStats = (
export const parseModelStateReasonFromStats = (trainedModelStats?: Partial) =>
trainedModelStats?.deployment_stats?.reason;
-export const getMlInferencePrefixedFieldName = (fieldName: string) => `ml.inference.${fieldName}`;
+export const getMlInferencePrefixedFieldName = (fieldName: string) =>
+ fieldName.startsWith(ML_INFERENCE_PREFIX) ? fieldName : `${ML_INFERENCE_PREFIX}${fieldName}`;
+
+const stripMlInferencePrefix = (fieldName: string) =>
+ fieldName.startsWith(ML_INFERENCE_PREFIX)
+ ? fieldName.replace(ML_INFERENCE_PREFIX, '')
+ : fieldName;
diff --git a/x-pack/plugins/enterprise_search/common/types/connectors.ts b/x-pack/plugins/enterprise_search/common/types/connectors.ts
index 945ab3c57592c..554d871ae8181 100644
--- a/x-pack/plugins/enterprise_search/common/types/connectors.ts
+++ b/x-pack/plugins/enterprise_search/common/types/connectors.ts
@@ -15,6 +15,7 @@ export interface ConnectorConfigProperties {
label: string;
options: SelectOptions[];
order?: number | null;
+ required: boolean;
sensitive: boolean;
value: string | number | boolean | null;
}
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts
index c6418b44ec91b..6de267dca4b2f 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts
@@ -39,6 +39,7 @@ export const indices: ElasticsearchIndexWithIngestion[] = [
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
@@ -145,6 +146,7 @@ export const indices: ElasticsearchIndexWithIngestion[] = [
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts
index 4705885540a4f..3a799497993ba 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts
@@ -49,6 +49,7 @@ export const connectorIndex: ConnectorViewIndex = {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
@@ -159,6 +160,7 @@ export const crawlerIndex: CrawlerViewIndex = {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx
index e364d73617e61..5564388c0fdfd 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_field.tsx
@@ -42,13 +42,15 @@ export const ConnectorConfigurationField: React.FC 3 ? (
({ text: option.label, value: option.value }))}
+ required={required}
value={ensureStringType(value)}
onChange={(event) => {
setLocalConfigEntry({ ...configEntry, value: event.target.value });
@@ -56,20 +58,22 @@ export const ConnectorConfigurationField: React.FC
) : (
({ id: option.value, label: option.label }))}
+ disabled={status === Status.LOADING}
idSelected={ensureStringType(value)}
+ name="radio group"
+ options={options.map((option) => ({ id: option.value, label: option.label }))}
onChange={(id) => {
setLocalConfigEntry({ ...configEntry, value: id });
}}
- name="radio group"
/>
);
case 'numeric':
return (
{
setLocalConfigEntry({ ...configEntry, value: event.target.value });
}}
@@ -79,8 +83,9 @@ export const ConnectorConfigurationField: React.FC {
setLocalConfigEntry({ ...configEntry, value: event.target.value });
}}
@@ -110,17 +115,19 @@ export const ConnectorConfigurationField: React.FC {
setLocalConfigEntry({ ...configEntry, value: event.target.value });
}}
/>
) : (
{
setLocalConfigEntry({ ...configEntry, value: event.target.value });
}}
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts
index 96b7e78271feb..13cbf2bc0a983 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.test.ts
@@ -56,6 +56,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'newBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'oldBar',
},
@@ -70,6 +71,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'newBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'oldBar',
},
@@ -81,6 +83,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'newBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'oldBar',
},
@@ -94,6 +97,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fourthBar',
},
@@ -106,6 +110,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fourthBar',
},
@@ -117,6 +122,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fourthBar',
},
@@ -131,6 +137,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'foofoo',
},
@@ -139,6 +146,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -149,6 +157,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'foofoo',
},
@@ -157,6 +166,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -167,6 +177,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fafa',
});
@@ -178,6 +189,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'foofoo',
},
@@ -186,6 +198,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -197,6 +210,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'foofoo',
},
@@ -206,6 +220,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -216,6 +231,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fafa',
},
@@ -224,6 +240,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -235,6 +252,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'foo',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'fafa',
},
@@ -244,6 +262,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'thirdBar',
options: [],
order: 2,
+ required: false,
sensitive: true,
value: 'fourthBar',
},
@@ -264,6 +283,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
@@ -296,6 +316,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
@@ -313,6 +334,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: false,
value: 'barbar',
},
@@ -331,6 +353,7 @@ describe('ConnectorConfigurationLogic', () => {
label: 'bar',
options: [],
order: 1,
+ required: false,
sensitive: true,
value: 'Barbara',
},
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts
index e9eb29bfff458..d0416ca843c67 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_configuration_logic.ts
@@ -59,6 +59,7 @@ export interface ConfigEntry {
label: string;
options: SelectOptions[];
order?: number;
+ required: boolean;
sensitive: boolean;
value: string | number | boolean | null;
}
@@ -213,10 +214,10 @@ export const ConnectorConfigurationLogic = kea<
{
setLocalConfigEntry: (
configState,
- { key, display, label, options, order, sensitive, value }
+ { key, display, label, options, order, required, sensitive, value }
) => ({
...configState,
- [key]: { display, label, options, order, sensitive, value },
+ [key]: { display, label, options, order, required, sensitive, value },
}),
setLocalConfigState: (_, { configState }) => configState,
},
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/test_pipeline.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/test_pipeline.tsx
index 2e7fbd51e9147..5d6332b7c0475 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/test_pipeline.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/test_pipeline.tsx
@@ -34,7 +34,7 @@ import './add_inference_pipeline_flyout.scss';
export const TestPipeline: React.FC = () => {
const {
addInferencePipelineModal: {
- configuration: { sourceField },
+ configuration: { sourceField, fieldMappings },
indexName,
},
getDocumentsErr,
@@ -49,6 +49,12 @@ export const TestPipeline: React.FC = () => {
const isSmallerViewport = useIsWithinMaxBreakpoint('s');
const inputRef = useRef();
+ const sampleFieldValue = i18n.translate(
+ 'xpack.enterpriseSearch.content.indices.pipelines.addInferencePipelineModal.steps.test.sampleValue',
+ {
+ defaultMessage: 'REPLACE ME',
+ }
+ );
return (
<>
@@ -152,7 +158,22 @@ export const TestPipeline: React.FC = () => {
- {`[{"_index":"index","_id":"id","_source":{"${sourceField}":"bar"}}]`}
+ {JSON.stringify(
+ JSON.parse(
+ `[{"_index":"index", "_id":"id", "_source":{${
+ fieldMappings
+ ? fieldMappings
+ .map(
+ (fieldMapping) =>
+ `"${fieldMapping.sourceField}": "${sampleFieldValue}"`
+ )
+ .join(', ')
+ : `"${sourceField}":"${sampleFieldValue}"`
+ }}}]`
+ ),
+ null,
+ 2
+ )}
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx
index 79588ba3361ea..ffcb70dcb770b 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.test.tsx
@@ -41,6 +41,18 @@ describe('useEnterpriseSearchContentNav', () => {
{
href: '/app/enterprise_search/overview',
id: 'es_overview',
+ items: [
+ {
+ href: '/app/enterprise_search/elasticsearch',
+ id: 'elasticsearch',
+ name: 'Elasticsearch',
+ },
+ {
+ id: 'searchExperiences',
+ name: 'Search Experiences',
+ href: '/app/enterprise_search/search_experiences',
+ },
+ ],
name: 'Overview',
},
{
@@ -61,36 +73,20 @@ describe('useEnterpriseSearchContentNav', () => {
name: 'Content',
},
{
- id: 'enginesSearch',
- name: 'Search',
+ id: 'applications',
+ name: 'Applications',
items: [
{
- href: '/app/enterprise_search/elasticsearch',
- id: 'elasticsearch',
- name: 'Elasticsearch',
- },
- {
- id: 'enterpriseSearchEngines',
- name: 'Engines',
+ id: 'searchApplications',
+ name: 'Search Applications',
href: '/app/enterprise_search/content/engines',
},
- {
- id: 'searchExperiences',
- name: 'Search Experiences',
- href: '/app/enterprise_search/search_experiences',
- },
- ],
- },
- {
- id: 'enterpriseSearchAnalytics',
- items: [
{
href: '/app/enterprise_search/analytics',
- id: 'analytics_collections',
- name: 'Collections',
+ id: 'analyticsCollections',
+ name: 'Behavioral Analytics',
},
],
- name: 'Behavioral Analytics',
},
{
id: 'standaloneExperiences',
@@ -197,6 +193,18 @@ describe('useEnterpriseSearchEngineNav', () => {
{
href: '/app/enterprise_search/overview',
id: 'es_overview',
+ items: [
+ {
+ href: '/app/enterprise_search/elasticsearch',
+ id: 'elasticsearch',
+ name: 'Elasticsearch',
+ },
+ {
+ id: 'searchExperiences',
+ name: 'Search Experiences',
+ href: '/app/enterprise_search/search_experiences',
+ },
+ ],
name: 'Overview',
},
{
@@ -210,43 +218,26 @@ describe('useEnterpriseSearchEngineNav', () => {
{
href: '/app/enterprise_search/content/settings',
id: 'settings',
- items: undefined,
name: 'Settings',
},
],
name: 'Content',
},
{
- id: 'enginesSearch',
- name: 'Search',
+ id: 'applications',
+ name: 'Applications',
items: [
{
- href: '/app/enterprise_search/elasticsearch',
- id: 'elasticsearch',
- name: 'Elasticsearch',
- },
- {
- id: 'enterpriseSearchEngines',
- name: 'Engines',
+ id: 'searchApplications',
+ name: 'Search Applications',
href: '/app/enterprise_search/content/engines',
},
- {
- id: 'searchExperiences',
- name: 'Search Experiences',
- href: '/app/enterprise_search/search_experiences',
- },
- ],
- },
- {
- id: 'enterpriseSearchAnalytics',
- items: [
{
href: '/app/enterprise_search/analytics',
- id: 'analytics_collections',
- name: 'Collections',
+ id: 'analyticsCollections',
+ name: 'Behavioral Analytics',
},
],
- name: 'Behavioral Analytics',
},
{
id: 'standaloneExperiences',
@@ -273,16 +264,15 @@ describe('useEnterpriseSearchEngineNav', () => {
expect(navItems?.map((ni) => ni.name)).toEqual([
'Overview',
'Content',
- 'Search',
- 'Behavioral Analytics',
+ 'Applications',
'Standalone Experiences',
]);
- const searchItem = navItems?.find((ni) => ni.id === 'enginesSearch');
+ const searchItem = navItems?.find((ni) => ni.id === 'applications');
expect(searchItem).not.toBeUndefined();
expect(searchItem!.items).not.toBeUndefined();
// @ts-ignore
const enginesItem: EuiSideNavItemType = searchItem?.items?.find(
- (si: EuiSideNavItemType) => si.id === 'enterpriseSearchEngines'
+ (si: EuiSideNavItemType) => si.id === 'searchApplications'
);
expect(enginesItem).not.toBeUndefined();
expect(enginesItem!.items).not.toBeUndefined();
@@ -330,16 +320,15 @@ describe('useEnterpriseSearchEngineNav', () => {
expect(navItems?.map((ni) => ni.name)).toEqual([
'Overview',
'Content',
- 'Search',
- 'Behavioral Analytics',
+ 'Applications',
'Standalone Experiences',
]);
- const searchItem = navItems?.find((ni) => ni.id === 'enginesSearch');
+ const searchItem = navItems?.find((ni) => ni.id === 'applications');
expect(searchItem).not.toBeUndefined();
expect(searchItem!.items).not.toBeUndefined();
// @ts-ignore
const enginesItem: EuiSideNavItemType = searchItem?.items?.find(
- (si: EuiSideNavItemType) => si.id === 'enterpriseSearchEngines'
+ (si: EuiSideNavItemType) => si.id === 'searchApplications'
);
expect(enginesItem).not.toBeUndefined();
expect(enginesItem!.items).not.toBeUndefined();
@@ -360,6 +349,18 @@ describe('useEnterpriseSearchAnalyticsNav', () => {
{
href: '/app/enterprise_search/overview',
id: 'es_overview',
+ items: [
+ {
+ href: '/app/enterprise_search/elasticsearch',
+ id: 'elasticsearch',
+ name: 'Elasticsearch',
+ },
+ {
+ id: 'searchExperiences',
+ name: 'Search Experiences',
+ href: '/app/enterprise_search/search_experiences',
+ },
+ ],
name: 'Overview',
},
{
@@ -374,36 +375,20 @@ describe('useEnterpriseSearchAnalyticsNav', () => {
name: 'Content',
},
{
- id: 'enginesSearch',
- name: 'Search',
+ id: 'applications',
+ name: 'Applications',
items: [
{
- href: '/app/enterprise_search/elasticsearch',
- id: 'elasticsearch',
- name: 'Elasticsearch',
- },
- {
- id: 'enterpriseSearchEngines',
- name: 'Engines',
href: '/app/enterprise_search/content/engines',
+ id: 'searchApplications',
+ name: 'Search Applications',
},
- {
- id: 'searchExperiences',
- name: 'Search Experiences',
- href: '/app/enterprise_search/search_experiences',
- },
- ],
- },
- {
- id: 'enterpriseSearchAnalytics',
- items: [
{
href: '/app/enterprise_search/analytics',
- id: 'analytics_collections',
- name: 'Collections',
+ id: 'analyticsCollections',
+ name: 'Behavioral Analytics',
},
],
- name: 'Behavioral Analytics',
},
{
id: 'standaloneExperiences',
@@ -444,38 +429,34 @@ describe('useEnterpriseSearchAnalyticsNav', () => {
integration: '/integration-path',
overview: '/overview-path',
});
- const analyticsNav = navItems?.find((item) => item.id === 'enterpriseSearchAnalytics');
+ const applicationsNav = navItems?.find((item) => item.id === 'applications');
+ expect(applicationsNav).not.toBeUndefined();
+ const analyticsNav = applicationsNav?.items?.[1];
expect(analyticsNav).not.toBeUndefined();
expect(analyticsNav).toEqual({
- id: 'enterpriseSearchAnalytics',
+ href: '/app/enterprise_search/analytics',
+ id: 'analyticsCollections',
items: [
{
- href: '/app/enterprise_search/analytics',
- id: 'analytics_collections',
+ id: 'analyticsCollection',
items: [
{
- id: 'analytics_collections',
- items: [
- {
- href: '/app/enterprise_search/analytics/overview-path',
- id: 'enterpriseSearchEngineOverview',
- name: 'Overview',
- },
- {
- href: '/app/enterprise_search/analytics/explorer-path',
- id: 'enterpriseSearchEngineIndices',
- name: 'Explorer',
- },
- {
- href: '/app/enterprise_search/analytics/integration-path',
- id: 'enterpriseSearchEngineSchema',
- name: 'Integration',
- },
- ],
- name: 'my-test-collection',
+ href: '/app/enterprise_search/analytics/overview-path',
+ id: 'analyticsCollectionOverview',
+ name: 'Overview',
+ },
+ {
+ href: '/app/enterprise_search/analytics/explorer-path',
+ id: 'analyticsCollectionExplorer',
+ name: 'Explorer',
+ },
+ {
+ href: '/app/enterprise_search/analytics/integration-path',
+ id: 'analyticsCollectionIntegration',
+ name: 'Integration',
},
],
- name: 'Collections',
+ name: 'my-test-collection',
},
],
name: 'Behavioral Analytics',
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx
index 51b22389b87f8..a6861b6d29e36 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx
@@ -42,6 +42,28 @@ export const useEnterpriseSearchNav = () => {
shouldNotCreateHref: true,
to: ENTERPRISE_SEARCH_OVERVIEW_PLUGIN.URL,
}),
+ items: [
+ {
+ id: 'elasticsearch',
+ name: i18n.translate('xpack.enterpriseSearch.nav.elasticsearchTitle', {
+ defaultMessage: 'Elasticsearch',
+ }),
+ ...generateNavLink({
+ shouldNotCreateHref: true,
+ to: ELASTICSEARCH_PLUGIN.URL,
+ }),
+ },
+ {
+ id: 'searchExperiences',
+ name: i18n.translate('xpack.enterpriseSearch.nav.searchExperiencesTitle', {
+ defaultMessage: 'Search Experiences',
+ }),
+ ...generateNavLink({
+ shouldNotCreateHref: true,
+ to: SEARCH_EXPERIENCES_PLUGIN.URL,
+ }),
+ },
+ ],
},
{
id: 'content',
@@ -78,22 +100,12 @@ export const useEnterpriseSearchNav = () => {
}),
},
{
- id: 'enginesSearch',
+ id: 'applications',
items: [
{
- id: 'elasticsearch',
- name: i18n.translate('xpack.enterpriseSearch.nav.elasticsearchTitle', {
- defaultMessage: 'Elasticsearch',
- }),
- ...generateNavLink({
- shouldNotCreateHref: true,
- to: ELASTICSEARCH_PLUGIN.URL,
- }),
- },
- {
- id: 'enterpriseSearchEngines',
- name: i18n.translate('xpack.enterpriseSearch.nav.enginesTitle', {
- defaultMessage: 'Engines',
+ id: 'searchApplications',
+ name: i18n.translate('xpack.enterpriseSearch.nav.searchApplicationsTitle', {
+ defaultMessage: 'Search Applications',
}),
...generateNavLink({
shouldNotCreateHref: true,
@@ -101,27 +113,9 @@ export const useEnterpriseSearchNav = () => {
}),
},
{
- id: 'searchExperiences',
- name: i18n.translate('xpack.enterpriseSearch.nav.searchExperiencesTitle', {
- defaultMessage: 'Search Experiences',
- }),
- ...generateNavLink({
- shouldNotCreateHref: true,
- to: SEARCH_EXPERIENCES_PLUGIN.URL,
- }),
- },
- ],
- name: i18n.translate('xpack.enterpriseSearch.nav.searchTitle', {
- defaultMessage: 'Search',
- }),
- },
- {
- id: 'enterpriseSearchAnalytics',
- items: [
- {
- id: 'analytics_collections',
- name: i18n.translate('xpack.enterpriseSearch.nav.analyticsCollectionsTitle', {
- defaultMessage: 'Collections',
+ id: 'analyticsCollections',
+ name: i18n.translate('xpack.enterpriseSearch.nav.analyticsTitle', {
+ defaultMessage: 'Behavioral Analytics',
}),
...generateNavLink({
shouldNotCreateHref: true,
@@ -129,8 +123,8 @@ export const useEnterpriseSearchNav = () => {
}),
},
],
- name: i18n.translate('xpack.enterpriseSearch.nav.analyticsTitle', {
- defaultMessage: 'Behavioral Analytics',
+ name: i18n.translate('xpack.enterpriseSearch.nav.applicationsTitle', {
+ defaultMessage: 'Applications',
}),
},
...(productAccess.hasAppSearchAccess || productAccess.hasWorkplaceSearchAccess
@@ -181,10 +175,10 @@ export const useEnterpriseSearchNav = () => {
export const useEnterpriseSearchEngineNav = (engineName?: string, isEmptyState?: boolean) => {
const navItems = useEnterpriseSearchNav();
if (!engineName) return navItems;
- const searchItem = navItems.find((item) => item.id === 'enginesSearch');
- if (!searchItem || !searchItem.items) return navItems;
- const enginesItem = searchItem.items[1];
- if (!enginesItem || enginesItem.id !== 'enterpriseSearchEngines') return navItems;
+ const applicationsItem = navItems.find((item) => item.id === 'applications');
+ if (!applicationsItem || !applicationsItem.items) return navItems;
+ const enginesItem = applicationsItem.items?.find((item) => item.id === 'searchApplications');
+ if (!enginesItem || enginesItem.id !== 'searchApplications') return navItems;
const enginePath = `${ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL}${ENGINES_PATH}/${engineName}`;
@@ -275,19 +269,17 @@ export const useEnterpriseSearchAnalyticsNav = (
}
) => {
const navItems = useEnterpriseSearchNav();
- const collectionNav = navItems.find(
- (item) =>
- item.id === 'enterpriseSearchAnalytics' && item.items?.[0]?.id === 'analytics_collections'
- )?.items?.[0];
+ const applicationsNav = navItems.find((item) => item.id === 'applications');
+ const analyticsNav = applicationsNav?.items?.find((item) => item.id === 'analyticsCollections');
- if (!name || !paths || !collectionNav) return navItems;
+ if (!name || !paths || !analyticsNav) return navItems;
- collectionNav.items = [
+ analyticsNav.items = [
{
- id: 'analytics_collections',
+ id: 'analyticsCollection',
items: [
{
- id: 'enterpriseSearchEngineOverview',
+ id: 'analyticsCollectionOverview',
name: i18n.translate('xpack.enterpriseSearch.nav.analyticsCollections.overviewTitle', {
defaultMessage: 'Overview',
}),
@@ -297,7 +289,7 @@ export const useEnterpriseSearchAnalyticsNav = (
}),
},
{
- id: 'enterpriseSearchEngineIndices',
+ id: 'analyticsCollectionExplorer',
name: i18n.translate('xpack.enterpriseSearch.nav.analyticsCollections.explorerTitle', {
defaultMessage: 'Explorer',
}),
@@ -307,7 +299,7 @@ export const useEnterpriseSearchAnalyticsNav = (
}),
},
{
- id: 'enterpriseSearchEngineSchema',
+ id: 'analyticsCollectionIntegration',
name: i18n.translate('xpack.enterpriseSearch.nav.analyticsCollections.integrationTitle', {
defaultMessage: 'Integration',
}),
diff --git a/x-pack/plugins/enterprise_search/server/index_management/setup_indices.test.ts b/x-pack/plugins/enterprise_search/server/index_management/setup_indices.test.ts
index 525434e326a3b..a62333a9abd5a 100644
--- a/x-pack/plugins/enterprise_search/server/index_management/setup_indices.test.ts
+++ b/x-pack/plugins/enterprise_search/server/index_management/setup_indices.test.ts
@@ -214,7 +214,7 @@ describe('Setup Indices', () => {
deleted_document_count: { type: 'integer' },
error: { type: 'keyword' },
indexed_document_count: { type: 'integer' },
- indexed_document_volume: { type: 'integer' },
+ indexed_document_volume: { type: 'unsigned_long' },
last_seen: { type: 'date' },
metadata: { type: 'object' },
started_at: { type: 'date' },
diff --git a/x-pack/plugins/enterprise_search/server/index_management/setup_indices.ts b/x-pack/plugins/enterprise_search/server/index_management/setup_indices.ts
index 050b85a872c01..c660ac2aa0e5b 100644
--- a/x-pack/plugins/enterprise_search/server/index_management/setup_indices.ts
+++ b/x-pack/plugins/enterprise_search/server/index_management/setup_indices.ts
@@ -238,7 +238,7 @@ const indices: IndexDefinition[] = [
deleted_document_count: { type: 'integer' },
error: { type: 'keyword' },
indexed_document_count: { type: 'integer' },
- indexed_document_volume: { type: 'integer' },
+ indexed_document_volume: { type: 'unsigned_long' },
last_seen: { type: 'date' },
metadata: { type: 'object' },
started_at: { type: 'date' },
diff --git a/x-pack/plugins/fleet/common/constants/epm.ts b/x-pack/plugins/fleet/common/constants/epm.ts
index f380d66d0223c..a1d73b452cf72 100644
--- a/x-pack/plugins/fleet/common/constants/epm.ts
+++ b/x-pack/plugins/fleet/common/constants/epm.ts
@@ -22,9 +22,6 @@ export const FLEET_CLOUD_SECURITY_POSTURE_KSPM_POLICY_TEMPLATE = 'kspm';
export const PACKAGE_TEMPLATE_SUFFIX = '@package';
export const USER_SETTINGS_TEMPLATE_SUFFIX = '@custom';
-export const FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID =
- 'elastic_agent-f47f18cc-9c7d-4278-b2ea-a6dee816d395';
-
export const DATASET_VAR_NAME = 'data_stream.dataset';
/*
Package rules:
diff --git a/x-pack/plugins/fleet/common/constants/index.ts b/x-pack/plugins/fleet/common/constants/index.ts
index 4dcc2d58d65ba..9892c883805f7 100644
--- a/x-pack/plugins/fleet/common/constants/index.ts
+++ b/x-pack/plugins/fleet/common/constants/index.ts
@@ -20,6 +20,7 @@ export * from './fleet_server_policy_config';
export * from './authz';
export * from './file_storage';
export * from './message_signing_keys';
+export * from './locators';
// TODO: This is the default `index.max_result_window` ES setting, which dictates
// the maximum amount of results allowed to be returned from a search. It's possible
diff --git a/x-pack/plugins/fleet/common/constants/locators.ts b/x-pack/plugins/fleet/common/constants/locators.ts
new file mode 100644
index 0000000000000..daa00bcae46e0
--- /dev/null
+++ b/x-pack/plugins/fleet/common/constants/locators.ts
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+
+export const LOCATORS_IDS = {
+ APM_LOCATOR: 'APM_LOCATOR',
+ DASHBOARD_APP: 'DASHBOARD_APP_LOCATOR',
+} as const;
+
+// Dashboards ids
+export const DASHBOARD_LOCATORS_IDS = {
+ ELASTIC_AGENT_OVERVIEW: 'elastic_agent-a148dc70-6b3c-11ed-98de-67bdecd21824',
+ ELASTIC_AGENT_AGENT_INFO: 'elastic_agent-0600ffa0-6b5e-11ed-98de-67bdecd21824',
+ ELASTIC_AGENT_AGENT_METRICS: 'elastic_agent-f47f18cc-9c7d-4278-b2ea-a6dee816d395',
+ ELASTIC_AGENT_INTEGRATIONS: 'elastic_agent-1a4e7280-6b5e-11ed-98de-67bdecd21824',
+} as const;
diff --git a/x-pack/plugins/fleet/common/index.ts b/x-pack/plugins/fleet/common/index.ts
index 3cdfa354a8c5f..3ca552966a7c5 100644
--- a/x-pack/plugins/fleet/common/index.ts
+++ b/x-pack/plugins/fleet/common/index.ts
@@ -52,6 +52,8 @@ export {
// Statuses
// Authz
ENDPOINT_PRIVILEGES,
+ // dashboards ids
+ DASHBOARD_LOCATORS_IDS,
} from './constants';
export {
// Route services
diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/add_fleet_server_host.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/add_fleet_server_host.tsx
index aeaf70e37aaec..debefdb5ca997 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/add_fleet_server_host.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/add_fleet_server_host.tsx
@@ -7,6 +7,7 @@
import React, { useState, useCallback } from 'react';
import type { EuiStepProps } from '@elastic/eui';
+import { EuiIconTip } from '@elastic/eui';
import {
EuiSwitch,
EuiButton,
@@ -111,8 +112,24 @@ export const AddFleetServerHostStepContent = ({
8220 }}
+ defaultMessage="First, set the public IP or host name and port that agents will use to reach Fleet Server. It uses port {port} by default {toolTip}. We'll then generate a policy for you automatically. "
+ values={{
+ port: 8220,
+ toolTip: (
+
+ }
+ position="right"
+ />
+ ),
+ }}
/>
diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/get_started.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/get_started.tsx
index 8d9b9667e4c1e..41014b1aa97ad 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/get_started.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/steps/get_started.tsx
@@ -8,6 +8,7 @@
import React from 'react';
import type { EuiStepProps } from '@elastic/eui';
+import { EuiIconTip } from '@elastic/eui';
import {
EuiButton,
EuiCallOut,
@@ -92,8 +93,24 @@ const GettingStartedStepContent: React.FunctionComponent =
8220 }}
+ defaultMessage="First, set the public IP or host name and port that agents will use to reach Fleet Server. It uses port {port} by default {toolTip}. We'll then generate a policy for you automatically."
+ values={{
+ port: 8220,
+ toolTip: (
+
+ }
+ position="right"
+ />
+ ),
+ }}
/>
diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.test.ts b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.test.ts
index ebe450bdfae8e..35dbd5e70c99f 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.test.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.test.ts
@@ -22,7 +22,8 @@ describe('getInstallCommandForPlatform', () => {
cd elastic-agent--linux-x86_64
sudo ./elastic-agent install \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
- --fleet-server-service-token=service-token-1"
+ --fleet-server-service-token=service-token-1 \\\\
+ --fleet-server-port=8220"
`);
});
@@ -39,7 +40,8 @@ describe('getInstallCommandForPlatform', () => {
cd elastic-agent--darwin-x86_64
sudo ./elastic-agent install \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
- --fleet-server-service-token=service-token-1"
+ --fleet-server-service-token=service-token-1 \\\\
+ --fleet-server-port=8220"
`);
});
@@ -57,7 +59,8 @@ describe('getInstallCommandForPlatform', () => {
cd elastic-agent--windows-x86_64
.\\\\elastic-agent.exe install \`
--fleet-server-es=http://elasticsearch:9200 \`
- --fleet-server-service-token=service-token-1"
+ --fleet-server-service-token=service-token-1 \`
+ --fleet-server-port=8220"
`);
});
@@ -73,7 +76,8 @@ describe('getInstallCommandForPlatform', () => {
sudo rpm -vi elastic-agent--x86_64.rpm
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
- --fleet-server-service-token=service-token-1
+ --fleet-server-service-token=service-token-1 \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
@@ -91,7 +95,8 @@ describe('getInstallCommandForPlatform', () => {
sudo dpkg -i elastic-agent--amd64.deb
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
- --fleet-server-service-token=service-token-1
+ --fleet-server-service-token=service-token-1 \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
@@ -115,7 +120,8 @@ describe('getInstallCommandForPlatform', () => {
sudo ./elastic-agent install \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
- --fleet-server-es-ca-trusted-fingerprint=fingerprint123456"
+ --fleet-server-es-ca-trusted-fingerprint=fingerprint123456 \\\\
+ --fleet-server-port=8220"
`);
});
});
@@ -136,7 +142,8 @@ describe('getInstallCommandForPlatform', () => {
sudo ./elastic-agent install \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
- --fleet-server-policy=policy-1"
+ --fleet-server-policy=policy-1 \\\\
+ --fleet-server-port=8220"
`);
});
@@ -155,7 +162,8 @@ describe('getInstallCommandForPlatform', () => {
sudo ./elastic-agent install \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
- --fleet-server-policy=policy-1"
+ --fleet-server-policy=policy-1 \\\\
+ --fleet-server-port=8220"
`);
});
@@ -175,7 +183,8 @@ describe('getInstallCommandForPlatform', () => {
.\\\\elastic-agent.exe install \`
--fleet-server-es=http://elasticsearch:9200 \`
--fleet-server-service-token=service-token-1 \`
- --fleet-server-policy=policy-1"
+ --fleet-server-policy=policy-1 \`
+ --fleet-server-port=8220"
`);
});
@@ -193,7 +202,8 @@ describe('getInstallCommandForPlatform', () => {
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
- --fleet-server-policy=policy-1
+ --fleet-server-policy=policy-1 \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
@@ -213,7 +223,8 @@ describe('getInstallCommandForPlatform', () => {
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
- --fleet-server-policy=policy-1
+ --fleet-server-policy=policy-1 \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
@@ -242,7 +253,8 @@ describe('getInstallCommandForPlatform', () => {
--certificate-authorities= \\\\
--fleet-server-es-ca= \\\\
--fleet-server-cert= \\\\
- --fleet-server-cert-key="
+ --fleet-server-cert-key= \\\\
+ --fleet-server-port=8220"
`);
});
@@ -267,7 +279,8 @@ describe('getInstallCommandForPlatform', () => {
--certificate-authorities= \\\\
--fleet-server-es-ca= \\\\
--fleet-server-cert= \\\\
- --fleet-server-cert-key="
+ --fleet-server-cert-key= \\\\
+ --fleet-server-port=8220"
`);
});
@@ -293,7 +306,8 @@ describe('getInstallCommandForPlatform', () => {
--certificate-authorities= \`
--fleet-server-es-ca= \`
--fleet-server-cert= \`
- --fleet-server-cert-key="
+ --fleet-server-cert-key= \`
+ --fleet-server-port=8220"
`);
});
@@ -317,7 +331,8 @@ describe('getInstallCommandForPlatform', () => {
--certificate-authorities= \\\\
--fleet-server-es-ca= \\\\
--fleet-server-cert= \\\\
- --fleet-server-cert-key=
+ --fleet-server-cert-key= \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
@@ -343,7 +358,8 @@ describe('getInstallCommandForPlatform', () => {
--certificate-authorities= \\\\
--fleet-server-es-ca= \\\\
--fleet-server-cert= \\\\
- --fleet-server-cert-key=
+ --fleet-server-cert-key= \\\\
+ --fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
`);
diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.ts b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.ts
index c5a58bef884f1..1e392db8fff70 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/components/fleet_server_instructions/utils/install_command_utils.ts
@@ -96,6 +96,8 @@ export function getInstallCommandForPlatform(
commandArguments.push(['fleet-server-cert-key', '']);
}
+ commandArguments.push(['fleet-server-port', '8220']);
+
const commandArgumentsStr = commandArguments
.reduce((acc, [key, val]) => {
if (acc === '' && key === 'url') {
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx
index 7a65be0a460c9..79908819ff863 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.test.tsx
@@ -25,6 +25,17 @@ jest.mock('../../../../../../hooks/use_fleet_status', () => ({
jest.mock('../../../../../../hooks/use_request/epm');
+jest.mock('../../../../../../hooks/use_locator', () => {
+ return {
+ useDashboardLocator: jest.fn().mockImplementation(() => {
+ return {
+ id: 'DASHBOARD_APP_LOCATOR',
+ getRedirectUrl: jest.fn().mockResolvedValue('app/dashboards#/view/elastic_agent-a0001'),
+ };
+ }),
+ };
+});
+
describe('AgentDashboardLink', () => {
it('should enable the button if elastic_agent package is installed and policy has monitoring enabled', async () => {
mockedUseGetPackageInfoByKeyQuery.mockReturnValue({
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx
index 6c7479fd8c801..6832f81961ddb 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_dashboard_link.tsx
@@ -10,21 +10,26 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { EuiButton, EuiToolTip } from '@elastic/eui';
import styled from 'styled-components';
-import { useGetPackageInfoByKeyQuery, useKibanaLink, useLink } from '../../../../hooks';
+import { useGetPackageInfoByKeyQuery, useLink, useDashboardLocator } from '../../../../hooks';
import type { Agent, AgentPolicy } from '../../../../types';
import {
FLEET_ELASTIC_AGENT_PACKAGE,
- FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID,
+ DASHBOARD_LOCATORS_IDS,
} from '../../../../../../../common/constants';
function useAgentDashboardLink(agent: Agent) {
const { isLoading, data } = useGetPackageInfoByKeyQuery(FLEET_ELASTIC_AGENT_PACKAGE);
const isInstalled = data?.item.status === 'installed';
+ const dashboardLocator = useDashboardLocator();
- const dashboardLink = useKibanaLink(`/dashboard/${FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID}`);
- const query = `_a=(query:(language:kuery,query:'elastic_agent.id:${agent.id}'))`;
- const link = `${dashboardLink}?${query}`;
+ const link = dashboardLocator?.getRedirectUrl({
+ dashboardId: DASHBOARD_LOCATORS_IDS.ELASTIC_AGENT_AGENT_METRICS,
+ query: {
+ language: 'kuery',
+ query: `elastic_agent.id:${agent.id}`,
+ },
+ });
return {
isLoading,
@@ -50,7 +55,12 @@ export const AgentDashboardLink: React.FunctionComponent<{
!isInstalled || isLoading || !isLogAndMetricsEnabled ? { disabled: true } : { href: link };
const button = (
-
+
{
+ const dashboardLocator = useDashboardLocator();
+
+ const getDashboardHref = (dashboardId: string) => {
+ return dashboardLocator?.getRedirectUrl({ dashboardId }) || '';
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.test.tsx
index e239f31ed3adc..9af04b04761a6 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.test.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.test.tsx
@@ -36,6 +36,17 @@ jest.mock('../../../../components', () => {
};
});
+jest.mock('../../../../../../hooks/use_locator', () => {
+ return {
+ useDashboardLocator: jest.fn().mockImplementation(() => {
+ return {
+ id: 'DASHBOARD_APP_LOCATOR',
+ getRedirectUrl: jest.fn().mockResolvedValue('app/dashboards#/view/elastic_agent-a0002'),
+ };
+ }),
+ };
+});
+
const TestComponent = (props: any) => (
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.tsx
index 4ca43020e132a..c9c527ba36e0a 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/search_and_filter_bar.tsx
@@ -31,15 +31,12 @@ import { AgentBulkActions } from './bulk_actions';
import type { SelectionMode } from './types';
import { AgentActivityButton } from './agent_activity_button';
import { AgentStatusFilter } from './agent_status_filter';
+import { DashboardsButtons } from './dashboards_buttons';
const ClearAllTagsFilterItem = styled(EuiFilterSelectItem)`
padding: ${(props) => props.theme.eui.euiSizeS};
`;
-const FlexEndEuiFlexItem = styled(EuiFlexItem)`
- align-self: flex-end;
-`;
-
export const SearchAndFilterBar: React.FunctionComponent<{
agentPolicies: AgentPolicy[];
draftKuery: string;
@@ -118,17 +115,18 @@ export const SearchAndFilterBar: React.FunctionComponent<{
return (
<>
- {/* Search and filter bar */}
-
-
-
+ {/* Top Buttons and Links */}
+
+ {totalAgents > 0 && }
+
+
-
+
-
+
-
+
+ {/* Search and filters */}
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/data_stream/list_page/components/data_stream_row_actions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/data_stream/list_page/components/data_stream_row_actions.tsx
index 7d88327e73fd6..8822117f56d67 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/data_stream/list_page/components/data_stream_row_actions.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/data_stream/list_page/components/data_stream_row_actions.tsx
@@ -10,13 +10,15 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import type { DataStream } from '../../../../types';
-import { useKibanaLink } from '../../../../hooks';
+import { useDashboardLocator } from '../../../../hooks';
import { ContextMenuActions } from '../../../../components';
import { useAPMServiceDetailHref } from '../../../../hooks/use_apm_service_href';
export const DataStreamRowActions = memo<{ datastream: DataStream }>(({ datastream }) => {
const { dashboards } = datastream;
+ const dashboardLocator = useDashboardLocator();
+
const actionNameSingular = (
(({ datastre
items: [
{
icon: 'dashboardApp',
- /* eslint-disable-next-line react-hooks/rules-of-hooks */
- href: useKibanaLink(`/dashboard/${dashboards[0].id || ''}`),
+ href: dashboardLocator?.getRedirectUrl({ dashboardId: dashboards[0]?.id } || ''),
name: actionNameSingular,
},
],
@@ -109,8 +110,7 @@ export const DataStreamRowActions = memo<{ datastream: DataStream }>(({ datastre
items: dashboards.map((dashboard) => {
return {
icon: 'dashboardApp',
- /* eslint-disable-next-line react-hooks/rules-of-hooks */
- href: useKibanaLink(`/dashboard/${dashboard.id || ''}`),
+ href: dashboardLocator?.getRedirectUrl({ dashboardId: dashboard?.id } || ''),
name: dashboard.title,
};
}),
diff --git a/x-pack/plugins/fleet/public/constants/index.ts b/x-pack/plugins/fleet/public/constants/index.ts
index 22ba08f3f9a1a..2c682af1fcbcc 100644
--- a/x-pack/plugins/fleet/public/constants/index.ts
+++ b/x-pack/plugins/fleet/public/constants/index.ts
@@ -22,6 +22,7 @@ export {
AUTO_UPDATE_PACKAGES,
KEEP_POLICIES_UP_TO_DATE_PACKAGES,
AUTO_UPGRADE_POLICIES_PACKAGES,
+ LOCATORS_IDS,
} from '../../common/constants';
export * from './page_paths';
@@ -37,7 +38,3 @@ export const DURATION_APM_SETTINGS_VARS = {
TAIL_SAMPLING_INTERVAL: 'tail_sampling_interval',
WRITE_TIMEOUT: 'write_timeout',
};
-
-export const LOCATORS_IDS = {
- APM_LOCATOR: 'APM_LOCATOR',
-} as const;
diff --git a/x-pack/plugins/fleet/public/hooks/index.ts b/x-pack/plugins/fleet/public/hooks/index.ts
index 0f7f6b2f4d165..a9fb6ef7758c7 100644
--- a/x-pack/plugins/fleet/public/hooks/index.ts
+++ b/x-pack/plugins/fleet/public/hooks/index.ts
@@ -31,3 +31,4 @@ export * from './use_flyout_context';
export * from './use_is_guided_onboarding_active';
export * from './use_fleet_server_hosts_for_policy';
export * from './use_fleet_server_standalone';
+export * from './use_locator';
diff --git a/x-pack/plugins/fleet/public/hooks/use_locator.ts b/x-pack/plugins/fleet/public/hooks/use_locator.ts
index 46ec3e4c75d13..a3fed97679456 100644
--- a/x-pack/plugins/fleet/public/hooks/use_locator.ts
+++ b/x-pack/plugins/fleet/public/hooks/use_locator.ts
@@ -7,7 +7,7 @@
import type { SerializableRecord } from '@kbn/utility-types';
import type { ValuesType } from 'utility-types';
-import type { LOCATORS_IDS } from '../constants';
+import { LOCATORS_IDS } from '../constants';
import { useStartServices } from './use_core';
@@ -17,3 +17,7 @@ export function useLocator(
const services = useStartServices();
return services.share.url.locators.get(locatorId);
}
+
+export function useDashboardLocator() {
+ return useLocator(LOCATORS_IDS.DASHBOARD_APP);
+}
diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts
index 2201ad47b9c28..8ef565ccd320a 100644
--- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts
+++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts
@@ -1034,6 +1034,28 @@ describe('EPM template', () => {
expect(JSON.stringify(mappings)).toEqual(JSON.stringify(metaFieldMapping));
});
+ it('tests processing field of aggregate_metric_double type', () => {
+ const fieldLiteralYaml = `
+ - name: aggregate_metric
+ type: aggregate_metric_double
+ metrics: ["min", "max", "sum", "value_count"]
+ default_metric: "max"
+ `;
+ const fieldMapping = {
+ properties: {
+ aggregate_metric: {
+ metrics: ['min', 'max', 'sum', 'value_count'],
+ default_metric: 'max',
+ type: 'aggregate_metric_double',
+ },
+ },
+ };
+ const fields: Field[] = safeLoad(fieldLiteralYaml);
+ const processedFields = processFields(fields);
+ const mappings = generateMappings(processedFields);
+ expect(JSON.stringify(mappings)).toEqual(JSON.stringify(fieldMapping));
+ });
+
it('tests priority and index pattern for data stream without dataset_is_prefix', () => {
const dataStreamDatasetIsPrefixUnset = {
type: 'metrics',
diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts
index 4594960e79e57..52b1bed6abab7 100644
--- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts
+++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts
@@ -326,6 +326,14 @@ function _generateMappings(
const dateMappings = generateDateMapping(field);
fieldProps = { ...fieldProps, ...dateMappings, type: 'date' };
break;
+ case 'aggregate_metric_double':
+ fieldProps = {
+ ...fieldProps,
+ metrics: field.metrics,
+ default_metric: field.default_metric,
+ type: 'aggregate_metric_double',
+ };
+ break;
default:
fieldProps.type = type;
}
diff --git a/x-pack/plugins/fleet/server/services/epm/fields/field.ts b/x-pack/plugins/fleet/server/services/epm/fields/field.ts
index 4bec0604cca4f..6e944929f45bd 100644
--- a/x-pack/plugins/fleet/server/services/epm/fields/field.ts
+++ b/x-pack/plugins/fleet/server/services/epm/fields/field.ts
@@ -40,6 +40,10 @@ export interface Field {
dimension?: boolean;
default_field?: boolean;
+ // Fields specific of the aggregate_metric_double type
+ metrics?: string[];
+ default_metric?: string;
+
// Meta fields
metric_type?: string;
unit?: string;
diff --git a/x-pack/plugins/infra/common/http_api/log_alerts/chart_preview_data.ts b/x-pack/plugins/infra/common/http_api/log_alerts/chart_preview_data.ts
index afdecfc64b906..8a7cbf692433e 100644
--- a/x-pack/plugins/infra/common/http_api/log_alerts/chart_preview_data.ts
+++ b/x-pack/plugins/infra/common/http_api/log_alerts/chart_preview_data.ts
@@ -59,7 +59,7 @@ export type GetLogAlertsChartPreviewDataSuccessResponsePayload = rt.TypeOf<
//
export const getLogAlertsChartPreviewDataAlertParamsSubsetRT: any = rt.intersection([
rt.type({
- criteria: countCriteriaRT,
+ criteria: rt.union([countCriteriaRT, rt.array(countCriteriaRT)]),
count: rt.intersection([
rt.type({
comparator: ThresholdRT.props.comparator,
diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/logs_ratio_chart.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/logs_ratio_chart.tsx
new file mode 100644
index 0000000000000..82f511cb8403b
--- /dev/null
+++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/logs_ratio_chart.tsx
@@ -0,0 +1,236 @@
+/*
+ * 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 {
+ Chart,
+ BarSeries,
+ ScaleType,
+ LineAnnotation,
+ RectAnnotation,
+ Axis,
+ Settings,
+ Position,
+ AnnotationDomainType,
+} from '@elastic/charts';
+import React, { ReactElement, useEffect, useMemo } from 'react';
+import { useKibana } from '@kbn/kibana-react-plugin/public';
+import { ExecutionTimeRange } from '../../../../../types';
+import { decodeOrThrow } from '../../../../../../common/runtime_types';
+import {
+ GetLogAlertsChartPreviewDataAlertParamsSubset,
+ getLogAlertsChartPreviewDataAlertParamsSubsetRT,
+} from '../../../../../../common/http_api';
+import {
+ Comparator,
+ PartialRuleParams,
+ Threshold,
+} from '../../../../../../common/alerting/logs/log_threshold';
+import { PersistedLogViewReference } from '../../../../../../common/log_views';
+import { useKibanaTimeZoneSetting } from '../../../../../hooks/use_kibana_time_zone_setting';
+import { getChartTheme } from '../../../../../utils/get_chart_theme';
+import {
+ yAxisFormatter,
+ tooltipProps,
+ getDomain,
+ useDateFormatter,
+ LoadingState,
+ ErrorState,
+ NoDataState,
+ ChartContainer,
+} from '../../../../common/criterion_preview_chart/criterion_preview_chart';
+import { Color, colorTransformer } from '../../../../../../common/color_palette';
+import { useChartPreviewData } from '../../expression_editor/hooks/use_chart_preview_data';
+
+interface ChartProps {
+ buckets: number;
+ logViewReference: PersistedLogViewReference;
+ ruleParams: PartialRuleParams;
+ threshold?: Threshold;
+ showThreshold: boolean;
+ executionTimeRange?: ExecutionTimeRange;
+ filterSeriesByGroupName?: string;
+ annotations?: Array>;
+}
+
+const LogsRatioChart: React.FC = ({
+ buckets,
+ ruleParams,
+ logViewReference,
+ threshold,
+ showThreshold,
+ executionTimeRange,
+ filterSeriesByGroupName,
+ annotations,
+}) => {
+ const chartAlertParams: GetLogAlertsChartPreviewDataAlertParamsSubset | null = useMemo(() => {
+ const params = {
+ criteria: ruleParams.criteria,
+ count: {
+ comparator: ruleParams.count.comparator,
+ value: ruleParams.count.value,
+ },
+ timeSize: ruleParams.timeSize,
+ timeUnit: ruleParams.timeUnit,
+ groupBy: ruleParams.groupBy,
+ };
+
+ try {
+ return decodeOrThrow(getLogAlertsChartPreviewDataAlertParamsSubsetRT)(params);
+ } catch (error) {
+ return null;
+ }
+ }, [
+ ruleParams.criteria,
+ ruleParams.count.comparator,
+ ruleParams.count.value,
+ ruleParams.timeSize,
+ ruleParams.timeUnit,
+ ruleParams.groupBy,
+ ]);
+ const {
+ getChartPreviewData,
+ isLoading,
+ hasError,
+ chartPreviewData: series,
+ } = useChartPreviewData({
+ logViewReference,
+ ruleParams: chartAlertParams,
+ buckets,
+ executionTimeRange,
+ filterSeriesByGroupName,
+ });
+
+ useEffect(() => {
+ getChartPreviewData();
+ }, [getChartPreviewData]);
+
+ const { uiSettings } = useKibana().services;
+ const isDarkMode = uiSettings?.get('theme:darkMode') || false;
+ const timezone = useKibanaTimeZoneSetting();
+ const { yMin, yMax, xMin, xMax } = getDomain(series, false);
+ const dateFormatter = useDateFormatter(xMin, xMax);
+ const hasData = series.length > 0;
+ const THRESHOLD_OPACITY = 0.3;
+ const chartDomain = {
+ max: showThreshold && threshold ? Math.max(yMax, threshold.value) * 1.1 : yMax * 1.1, // Add 10% headroom.
+ min: showThreshold && threshold ? Math.min(yMin, threshold.value) : yMin,
+ };
+ const isAbove =
+ showThreshold && threshold && threshold.comparator
+ ? [Comparator.GT, Comparator.GT_OR_EQ].includes(threshold.comparator)
+ : false;
+
+ const isBelow =
+ showThreshold && threshold && threshold.comparator
+ ? [Comparator.LT, Comparator.LT_OR_EQ].includes(threshold.comparator)
+ : false;
+ const barSeries = useMemo(() => {
+ return series.flatMap(({ points, id }) => points.map((point) => ({ ...point, groupBy: id })));
+ }, [series]);
+ if (isLoading) {
+ return ;
+ } else if (hasError) {
+ return ;
+ } else if (!hasData) {
+ return ;
+ }
+ return (
+
+
+
+ {showThreshold && threshold ? (
+
+ ) : null}
+ {showThreshold && threshold && isBelow ? (
+
+ ) : null}
+ {annotations}
+ {showThreshold && threshold && isAbove ? (
+
+ ) : null}
+
+
+
+
+
+ );
+};
+// eslint-disable-next-line import/no-default-export
+export default LogsRatioChart;
diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx
index c0ca89ef05b88..fa2e3668bc957 100644
--- a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx
+++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx
@@ -25,11 +25,13 @@ import { getChartGroupNames } from '../../../../../common/utils/get_chart_group_
import {
ComparatorToi18nMap,
ComparatorToi18nSymbolsMap,
+ isRatioRule,
type PartialCriterion,
} from '../../../../../common/alerting/logs/log_threshold';
import { CriterionPreview } from '../expression_editor/criterion_preview_chart';
import { AlertDetailsAppSectionProps } from './types';
import { Threshold } from '../../../common/components/threshold';
+import LogsRatioChart from './components/logs_ratio_chart';
const LogsHistoryChart = React.lazy(() => import('./components/logs_history_chart'));
const formatThreshold = (threshold: number) => String(threshold);
@@ -72,95 +74,176 @@ const AlertDetailsAppSection = ({
setAlertSummaryFields(alertSummaryFields);
}, [alert.fields, rule.params.groupBy, setAlertSummaryFields]);
- return (
- // Create a chart per-criteria
- !!rule.params.criteria ? (
-
- {rule.params.criteria.map((criteria, idx) => {
- const chartCriterion = criteria as PartialCriterion;
- return (
-
-
- {chartCriterion.comparator && (
-
-
-
- {i18n.translate('xpack.infra.logs.alertDetails.chart.chartTitle', {
- defaultMessage: 'Logs for {field} {comparator} {value}',
- values: {
- field: chartCriterion.field,
- comparator: ComparatorToi18nMap[chartCriterion.comparator],
- value: chartCriterion.value,
- },
- })}
-
-
-
- )}
-
-
-
-
-
- {chartCriterion.comparator && (
-
- )}
+ const getLogRatioChart = () => {
+ if (isRatioRule(rule.params.criteria)) {
+ return (
+
+
+
+
+
+ {i18n.translate('xpack.infra.logs.alertDetails.chart.ratioTitle', {
+ defaultMessage: 'Ratio of QUERY A TO QUERY B',
+ })}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+ ,
+ ]}
+ />
+
+
+
+ );
+ } else return null;
+ };
+
+ const getLogCountChart = () => {
+ if (!!rule.params.criteria && !isRatioRule(rule.params.criteria)) {
+ return rule.params.criteria.map((criteria, idx) => {
+ const chartCriterion = criteria as PartialCriterion;
+ return (
+
+
+ {chartCriterion.comparator && (
+
+
+
+ {i18n.translate('xpack.infra.logs.alertDetails.chart.chartTitle', {
+ defaultMessage: 'Logs for {field} {comparator} {value}',
+ values: {
+ field: chartCriterion.field,
+ comparator: ComparatorToi18nMap[chartCriterion.comparator],
+ value: chartCriterion.value,
+ },
+ })}
+
+
-
- ,
- ,
- ]}
- filterSeriesByGroupName={[selectedSeries]}
+ )}
+
+
+
+
+
+ {chartCriterion.comparator && (
+
-
-
-
- );
- })}
- {rule && rule.params.criteria.length === 1 && (
-
-
-
- )}
-
- ) : null
+ )}
+
+
+ ,
+ ,
+ ]}
+ filterSeriesByGroupName={[selectedSeries]}
+ />
+
+
+
+ );
+ });
+ } else return null;
+ };
+
+ const getLogsHistoryChart = () => {
+ return (
+ rule &&
+ rule.params.criteria.length === 1 && (
+
+
+
+ )
+ );
+ };
+
+ return (
+
+ {getLogRatioChart()}
+ {getLogCountChart()}
+ {getLogsHistoryChart()}
+
);
};
// eslint-disable-next-line import/no-default-export
diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx
index 82a1916734192..62d18138880b1 100644
--- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx
+++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/hooks/use_chart_preview_data.tsx
@@ -8,6 +8,7 @@
import { useState, useMemo } from 'react';
import { HttpHandler } from '@kbn/core/public';
import { useKibana } from '@kbn/kibana-react-plugin/public';
+import { isRatioRule } from '../../../../../../common/alerting/logs/log_threshold';
import { PersistedLogViewReference } from '../../../../../../common/log_views';
import { ExecutionTimeRange } from '../../../../../types';
import { useTrackedPromise } from '../../../../../utils/use_tracked_promise';
@@ -25,6 +26,7 @@ interface Options {
ruleParams: GetLogAlertsChartPreviewDataAlertParamsSubset;
buckets: number;
executionTimeRange?: ExecutionTimeRange;
+ filterSeriesByGroupName?: string;
}
export const useChartPreviewData = ({
@@ -32,6 +34,7 @@ export const useChartPreviewData = ({
ruleParams,
buckets,
executionTimeRange,
+ filterSeriesByGroupName,
}: Options) => {
const { http } = useKibana().services;
const [chartPreviewData, setChartPreviewData] = useState<
@@ -43,6 +46,56 @@ export const useChartPreviewData = ({
cancelPreviousOn: 'creation',
createPromise: async () => {
setHasError(false);
+ if (isRatioRule(ruleParams.criteria)) {
+ const ratio = await Promise.all([
+ callGetChartPreviewDataAPI(
+ logViewReference,
+ http!.fetch,
+ { ...ruleParams, criteria: [...ruleParams.criteria[0]] },
+ buckets,
+ executionTimeRange
+ ),
+ callGetChartPreviewDataAPI(
+ logViewReference,
+ http!.fetch,
+ { ...ruleParams, criteria: [...ruleParams.criteria[1]] },
+ buckets,
+ executionTimeRange
+ ),
+ ]);
+ // The two array have the same length and the same time range.
+ let seriesQueryA = ratio[0].data.series[0].points;
+ let seriesQueryB = ratio[1].data.series[0].points;
+ let seriesId = 'ratio';
+ // When groupBy and a filter is applied, return the ratio only for the filtered grouped-by
+ if (ruleParams.groupBy.length && filterSeriesByGroupName) {
+ seriesId = filterSeriesByGroupName;
+ seriesQueryA =
+ ratio[0].data.series.find((series) => series.id === filterSeriesByGroupName)
+ ?.points || [];
+
+ seriesQueryB =
+ ratio[1].data.series.find((series) => series.id === filterSeriesByGroupName)
+ ?.points || [];
+ }
+
+ const ratioPoints = [];
+ for (let index = 0; index < seriesQueryA.length; index++) {
+ const point = {
+ timestamp: seriesQueryA[index].timestamp,
+ value: 0,
+ };
+ // We follow the mathematics principle that dividing by 0 isn't possible,
+ if (seriesQueryA[index].value === 0 || seriesQueryB[index].value === 0) {
+ ratioPoints.push(point);
+ } else {
+ const ratioValue = seriesQueryA[index].value / seriesQueryB[index].value;
+ ratioPoints.push({ ...point, value: ratioValue });
+ }
+ }
+ const series = [{ id: seriesId, points: ratioPoints }];
+ return { data: { series } };
+ }
return await callGetChartPreviewDataAPI(
logViewReference,
http!.fetch,
diff --git a/x-pack/plugins/kubernetes_security/kibana.jsonc b/x-pack/plugins/kubernetes_security/kibana.jsonc
index e17a5dcde69d5..627ce99955b4c 100644
--- a/x-pack/plugins/kubernetes_security/kibana.jsonc
+++ b/x-pack/plugins/kubernetes_security/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/kubernetes-security-plugin",
- "owner": "@elastic/awp-viz",
+ "owner": "@elastic/sec-cloudnative-integrations",
"plugin": {
"id": "kubernetesSecurity",
"server": true,
diff --git a/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx b/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx
index 2678b5a0368fb..50d70bb58ae75 100644
--- a/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx
+++ b/x-pack/plugins/lens/public/app_plugin/lens_top_nav.tsx
@@ -37,7 +37,7 @@ import {
import { combineQueryAndFilters, getLayerMetaInfo } from './show_underlying_data';
import { changeIndexPattern } from '../state_management/lens_slice';
import { LensByReferenceInput } from '../embeddable';
-import { getShareURL } from './share_action';
+import { DEFAULT_LENS_LAYOUT_DIMENSIONS, getShareURL } from './share_action';
function getSaveButtonMeta({
contextFromEmbeddable,
@@ -578,6 +578,10 @@ export const LensTopNavMenu = ({
return;
}
+ if (visualization.activeId == null || !visualizationMap[visualization.activeId]) {
+ return;
+ }
+
const {
shareableUrl,
savedObjectURL,
@@ -608,6 +612,12 @@ export const LensTopNavMenu = ({
id: LENS_APP_LOCATOR,
params: locatorParams,
},
+ layout: {
+ dimensions:
+ visualizationMap[visualization.activeId].getReportingLayout?.(
+ visualization.state
+ ) ?? DEFAULT_LENS_LAYOUT_DIMENSIONS,
+ },
};
share.toggleShareContextMenu({
diff --git a/x-pack/plugins/lens/public/app_plugin/share_action.ts b/x-pack/plugins/lens/public/app_plugin/share_action.ts
index 55e4b978f015d..c9ec3a11ef5e7 100644
--- a/x-pack/plugins/lens/public/app_plugin/share_action.ts
+++ b/x-pack/plugins/lens/public/app_plugin/share_action.ts
@@ -27,6 +27,14 @@ interface ShareableConfiguration
adHocDataViews?: DataViewSpec[];
}
+// This approximate Lens workspace dimensions ratio on a typical widescreen
+export const DEFAULT_LENS_LAYOUT_DIMENSIONS = {
+ width: 1793,
+ // this is a magic number from the reporting tool implementation
+ // see: x-pack/plugins/screenshotting/server/browsers/chromium/driver_factory/index.ts#L146
+ height: 1086,
+};
+
function getShareURLForSavedObject(
{ application, data }: Pick,
currentDoc: Document | undefined
diff --git a/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx b/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx
index 4152212e51fea..dbe6fcafd0ed0 100644
--- a/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx
+++ b/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx
@@ -37,7 +37,6 @@ import type {
IndexPatternField,
IndexPattern,
IndexPatternRef,
- DatasourceLayerSettingsProps,
DataSourceInfo,
UserMessage,
FrameDatasourceAPI,
@@ -429,10 +428,7 @@ export function getFormBasedDatasource({
toExpression: (state, layerId, indexPatterns, dateRange, searchSessionId) =>
toExpression(state, layerId, indexPatterns, uiSettings, dateRange, searchSessionId),
- renderLayerSettings(
- domElement: Element,
- props: DatasourceLayerSettingsProps
- ) {
+ renderLayerSettings(domElement, props) {
render(
diff --git a/x-pack/plugins/lens/public/datasources/form_based/layer_settings.tsx b/x-pack/plugins/lens/public/datasources/form_based/layer_settings.tsx
index 38da5475e22e1..c79bc41dd7dd7 100644
--- a/x-pack/plugins/lens/public/datasources/form_based/layer_settings.tsx
+++ b/x-pack/plugins/lens/public/datasources/form_based/layer_settings.tsx
@@ -109,101 +109,86 @@ export function LayerSettingsPanel({
setState,
layerId,
}: DatasourceLayerSettingsProps) {
- const { euiTheme } = useEuiTheme();
const isSamplingValueDisabled = !isSamplingValueEnabled(state.layers[layerId]);
const currentValue = isSamplingValueDisabled
? samplingValues[samplingValues.length - 1]
: state.layers[layerId].sampling;
return (
-
-
-
- {i18n.translate('xpack.lens.indexPattern.layerSettings.headingData', {
- defaultMessage: 'Data',
- })}
-
-
-
-
-
-
-
-
- ),
- }}
- />
-
- >
- }
- label={
- <>
- {i18n.translate('xpack.lens.indexPattern.randomSampling.label', {
- defaultMessage: 'Sampling',
- })}{' '}
-
+
+
+
+
+
+ ),
+ }}
+ />
+
+ >
+ }
+ label={
+ <>
+ {i18n.translate('xpack.lens.indexPattern.randomSampling.label', {
+ defaultMessage: 'Sampling',
+ })}{' '}
+
+
-
-
- >
- }
- >
- {
- setState({
- ...state,
- layers: {
- ...state.layers,
- [layerId]: {
- ...state.layers[layerId],
- sampling: newSamplingValue,
- },
+ size="s"
+ />
+
+ >
+ }
+ >
+ {
+ setState({
+ ...state,
+ layers: {
+ ...state.layers,
+ [layerId]: {
+ ...state.layers[layerId],
+ sampling: newSamplingValue,
},
- });
- }}
- />
-
-
+ },
+ });
+ }}
+ />
+
);
}
diff --git a/x-pack/plugins/lens/public/datasources/form_based/layerpanel.tsx b/x-pack/plugins/lens/public/datasources/form_based/layerpanel.tsx
index 1de4d0844245f..5832f8094a856 100644
--- a/x-pack/plugins/lens/public/datasources/form_based/layerpanel.tsx
+++ b/x-pack/plugins/lens/public/datasources/form_based/layerpanel.tsx
@@ -8,10 +8,12 @@
import React from 'react';
import { I18nProvider } from '@kbn/i18n-react';
import { i18n } from '@kbn/i18n';
+import { useEuiTheme } from '@elastic/eui';
import { DatasourceLayerPanelProps } from '../../types';
import { FormBasedPrivateState } from './types';
import { ChangeIndexPattern } from '../../shared_components/dataview_picker/dataview_picker';
import { getSamplingValue } from './utils';
+import { RandomSamplingIcon } from './sampling_icon';
export interface FormBasedLayerPanelProps extends DatasourceLayerPanelProps {
state: FormBasedPrivateState;
@@ -25,6 +27,7 @@ export function LayerPanel({
dataViews,
}: FormBasedLayerPanelProps) {
const layer = state.layers[layerId];
+ const { euiTheme } = useEuiTheme();
const indexPattern = dataViews.indexPatterns[layer.indexPatternId];
const notFoundTitleLabel = i18n.translate('xpack.lens.layerPanel.missingDataView', {
@@ -38,6 +41,26 @@ export function LayerPanel({
};
});
+ const samplingValue = getSamplingValue(layer);
+ const extraIconLabelProps =
+ samplingValue !== 1
+ ? {
+ icon: {
+ component: (
+
+ ),
+ value: `${samplingValue * 100}%`,
+ tooltipValue: i18n.translate('xpack.lens.indexPattern.randomSamplingInfo', {
+ defaultMessage: '{value}% sampling',
+ values: {
+ value: samplingValue * 100,
+ },
+ }),
+ 'data-test-subj': 'lnsChangeIndexPatternSamplingInfo',
+ },
+ }
+ : {};
+
return (
+ activeVisualization.hasLayerSettings?.({
+ layerId,
+ state: visualizationState,
+ frame: props.framePublicAPI,
+ }) || { data: false, appearance: false },
+ [activeVisualization, layerId, props.framePublicAPI, visualizationState]
+ );
+
const compatibleActions = useMemo(
() =>
[
@@ -341,11 +351,7 @@ export function LayerPanel(
isOnlyLayer,
isTextBasedLanguage,
hasLayerSettings: Boolean(
- (activeVisualization.hasLayerSettings?.({
- layerId,
- state: visualizationState,
- frame: props.framePublicAPI,
- }) &&
+ (Object.values(visualizationLayerSettings).some(Boolean) &&
activeVisualization.renderLayerSettings) ||
layerDatasource?.renderLayerSettings
),
@@ -364,8 +370,8 @@ export function LayerPanel(
layerIndex,
onCloneLayer,
onRemoveLayer,
- props.framePublicAPI,
updateVisualization,
+ visualizationLayerSettings,
visualizationState,
]
);
@@ -682,15 +688,56 @@ export function LayerPanel(
>
+ {layerDatasource?.renderLayerSettings || visualizationLayerSettings.data ? (
+
+
+ {i18n.translate('xpack.lens.editorFrame.layerSettings.headingData', {
+ defaultMessage: 'Data',
+ })}
+
+
+ ) : null}
{layerDatasource?.renderLayerSettings && (
<>
-
>
)}
+ {layerDatasource?.renderLayerSettings && visualizationLayerSettings.data ? (
+
+ ) : null}
+ {activeVisualization?.renderLayerSettings && visualizationLayerSettings.data ? (
+
+ ) : null}
+ {visualizationLayerSettings.appearance ? (
+
+
+ {i18n.translate('xpack.lens.editorFrame.layerSettings.headingAppearance', {
+ defaultMessage: 'Appearance',
+ })}
+
+
+ ) : null}
{activeVisualization?.renderLayerSettings && (
)}
diff --git a/x-pack/plugins/lens/public/shared_components/dataview_picker/dataview_picker.tsx b/x-pack/plugins/lens/public/shared_components/dataview_picker/dataview_picker.tsx
index 6467cbcb58494..9d55284cc36c8 100644
--- a/x-pack/plugins/lens/public/shared_components/dataview_picker/dataview_picker.tsx
+++ b/x-pack/plugins/lens/public/shared_components/dataview_picker/dataview_picker.tsx
@@ -7,109 +7,10 @@
import { i18n } from '@kbn/i18n';
import React, { useState } from 'react';
-import {
- EuiFlexGroup,
- EuiFlexItem,
- EuiPopover,
- EuiPopoverTitle,
- EuiSelectableProps,
- EuiTextColor,
- EuiToolTip,
- useEuiTheme,
-} from '@elastic/eui';
+import { EuiPopover, EuiPopoverTitle, EuiSelectableProps } from '@elastic/eui';
import { DataViewsList } from '@kbn/unified-search-plugin/public';
-import { css } from '@emotion/react';
import { type IndexPatternRef } from '../../types';
-import { type ToolbarButtonProps, ToolbarButton } from './toolbar_button';
-import { RandomSamplingIcon } from './sampling_icon';
-
-export type ChangeIndexPatternTriggerProps = ToolbarButtonProps & {
- label: string;
- title?: string;
- isDisabled?: boolean;
- samplingValue?: number;
-};
-
-function TriggerButton({
- label,
- title,
- togglePopover,
- isMissingCurrent,
- samplingValue,
- ...rest
-}: ChangeIndexPatternTriggerProps &
- ToolbarButtonProps & {
- togglePopover: () => void;
- isMissingCurrent?: boolean;
- }) {
- const { euiTheme } = useEuiTheme();
- // be careful to only add color with a value, otherwise it will fallbacks to "primary"
- const colorProp = isMissingCurrent
- ? {
- color: 'danger' as const,
- }
- : {};
- const content =
- samplingValue != null && samplingValue !== 1 ? (
-
-
- {label}
-
-
-
-
-
-
-
-
-
- {samplingValue * 100}%
-
-
-
-
-
-
- ) : (
- label
- );
- return (
-
togglePopover()}
- fullWidth
- {...colorProp}
- {...rest}
- textProps={{ style: { width: '100%' } }}
- >
- {content}
-
- );
-}
+import { type ChangeIndexPatternTriggerProps, TriggerButton } from './trigger';
export function ChangeIndexPattern({
indexPatternRefs,
diff --git a/x-pack/plugins/lens/public/shared_components/dataview_picker/trigger.tsx b/x-pack/plugins/lens/public/shared_components/dataview_picker/trigger.tsx
new file mode 100644
index 0000000000000..038b1d5aec960
--- /dev/null
+++ b/x-pack/plugins/lens/public/shared_components/dataview_picker/trigger.tsx
@@ -0,0 +1,101 @@
+/*
+ * 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 { useEuiTheme, EuiFlexGroup, EuiFlexItem, EuiToolTip, EuiTextColor } from '@elastic/eui';
+import { css } from '@emotion/react';
+import React from 'react';
+import { ToolbarButton, ToolbarButtonProps } from './toolbar_button';
+
+interface TriggerLabelProps {
+ label: string;
+ icon?: {
+ component: React.ReactElement;
+ value?: string;
+ tooltipValue?: string;
+ 'data-test-subj': string;
+ };
+}
+
+export type ChangeIndexPatternTriggerProps = ToolbarButtonProps &
+ TriggerLabelProps & {
+ label: string;
+ title?: string;
+ isDisabled?: boolean;
+ };
+
+function TriggerLabel({ label, icon }: TriggerLabelProps) {
+ const { euiTheme } = useEuiTheme();
+ if (!icon) {
+ return <>{label}>;
+ }
+ return (
+
+
+ {label}
+
+
+
+
+ {icon.component}
+ {icon.value ? (
+
+ {icon.value}
+
+ ) : null}
+
+
+
+
+ );
+}
+
+export function TriggerButton({
+ label,
+ title,
+ togglePopover,
+ isMissingCurrent,
+ icon,
+ ...rest
+}: ChangeIndexPatternTriggerProps & {
+ togglePopover: () => void;
+ isMissingCurrent?: boolean;
+}) {
+ // be careful to only add color with a value, otherwise it will fallbacks to "primary"
+ const colorProp = isMissingCurrent
+ ? {
+ color: 'danger' as const,
+ }
+ : {};
+ return (
+
togglePopover()}
+ fullWidth
+ {...colorProp}
+ {...rest}
+ textProps={{ style: { width: '100%' } }}
+ >
+
+
+ );
+}
diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts
index 786d75816cafa..faa3d8e14e5bd 100644
--- a/x-pack/plugins/lens/public/types.ts
+++ b/x-pack/plugins/lens/public/types.ts
@@ -1189,11 +1189,11 @@ export interface Visualization
{
/**
* Allows the visualization to announce whether or not it has any settings to show
*/
- hasLayerSettings?: (props: VisualizationConfigProps) => boolean;
+ hasLayerSettings?: (props: VisualizationConfigProps) => Record<'data' | 'appearance', boolean>;
renderLayerSettings?: (
domElement: Element,
- props: VisualizationLayerSettingsProps
+ props: VisualizationLayerSettingsProps & { section: 'data' | 'appearance' }
) => ((cleanupElement: Element) => void) | void;
/**
@@ -1292,6 +1292,10 @@ export interface Visualization {
) => Suggestion | undefined;
getVisualizationInfo?: (state: T) => VisualizationInfo;
+ /**
+ * A visualization can return custom dimensions for the reporting tool
+ */
+ getReportingLayout?: (state: T) => { height: number; width: number };
}
// Use same technique as TriggerContext
diff --git a/x-pack/plugins/lens/public/visualizations/partition/layer_settings.test.tsx b/x-pack/plugins/lens/public/visualizations/partition/layer_settings.test.tsx
index 9acedbc9b8dd2..2fed483cddfaf 100644
--- a/x-pack/plugins/lens/public/visualizations/partition/layer_settings.test.tsx
+++ b/x-pack/plugins/lens/public/visualizations/partition/layer_settings.test.tsx
@@ -25,12 +25,15 @@ describe('layer settings', () => {
});
const layerId = 'layer-id';
- const props: VisualizationLayerSettingsProps = {
+ const props: VisualizationLayerSettingsProps & {
+ section: 'data' | 'appearance';
+ } = {
setState: jest.fn(),
layerId,
state: getState(false),
frame: {} as FramePublicAPI,
panelRef: {} as React.MutableRefObject,
+ section: 'data',
};
it('toggles multiple metrics', () => {
@@ -90,5 +93,9 @@ describe('layer settings', () => {
).isEmptyRender()
).toBeTruthy();
});
+
+ test('should not render anything for the appearance section', () => {
+ expect(shallow().isEmptyRender());
+ });
});
});
diff --git a/x-pack/plugins/lens/public/visualizations/partition/layer_settings.tsx b/x-pack/plugins/lens/public/visualizations/partition/layer_settings.tsx
index 39da4fbfe0595..6f13800a91a2c 100644
--- a/x-pack/plugins/lens/public/visualizations/partition/layer_settings.tsx
+++ b/x-pack/plugins/lens/public/visualizations/partition/layer_settings.tsx
@@ -12,7 +12,12 @@ import { PieChartTypes } from '../../../common/constants';
import { PieVisualizationState } from '../..';
import { VisualizationLayerSettingsProps } from '../../types';
-export function LayerSettings(props: VisualizationLayerSettingsProps) {
+export function LayerSettings(
+ props: VisualizationLayerSettingsProps & { section: 'data' | 'appearance' }
+) {
+ if (props.section === 'appearance') {
+ return null;
+ }
if (props.state.shape === PieChartTypes.MOSAIC) {
return null;
}
@@ -24,29 +29,33 @@ export function LayerSettings(props: VisualizationLayerSettingsProps
-
- {
- props.setState({
- ...props.state,
- layers: props.state.layers.map((layer) =>
- layer.layerId !== props.layerId
- ? layer
- : {
- ...layer,
- allowMultipleMetrics: !layer.allowMultipleMetrics,
- }
- ),
- });
- }}
- />
-
- >
+
+ {
+ props.setState({
+ ...props.state,
+ layers: props.state.layers.map((layer) =>
+ layer.layerId !== props.layerId
+ ? layer
+ : {
+ ...layer,
+ allowMultipleMetrics: !layer.allowMultipleMetrics,
+ }
+ ),
+ });
+ }}
+ />
+
);
}
diff --git a/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts
index 02932a0aa5e1c..3a4b0545a42ea 100644
--- a/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts
+++ b/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts
@@ -617,10 +617,10 @@ describe('pie_visualization', () => {
});
});
- it.each(Object.values(PieChartTypes).filter((type) => type !== 'mosaic'))(
+ it.each(Object.values(PieChartTypes).filter((type) => type !== PieChartTypes.MOSAIC))(
'%s adds fake dimension',
(type) => {
- const state = { ...getExampleState(), type };
+ const state = { ...getExampleState(), shape: type };
state.layers[0].metrics.push('1', '2');
state.layers[0].allowMultipleMetrics = true;
expect(
@@ -645,4 +645,21 @@ describe('pie_visualization', () => {
}
);
});
+
+ describe('layer settings', () => {
+ describe('hasLayerSettings', () => {
+ it('should have data settings for all partition chart types but mosaic', () => {
+ for (const type of Object.values(PieChartTypes)) {
+ const state = { ...getExampleState(), shape: type };
+ expect(
+ pieVisualization.hasLayerSettings?.({
+ state,
+ frame: mockFrame(),
+ layerId: state.layers[0].layerId,
+ })
+ ).toEqual({ data: type !== PieChartTypes.MOSAIC, appearance: false });
+ }
+ });
+ });
+ });
});
diff --git a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx
index 8340b5a5e254b..da52c6efc105b 100644
--- a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx
+++ b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx
@@ -504,7 +504,7 @@ export const getPieVisualization = ({
},
hasLayerSettings(props) {
- return props.state.shape !== 'mosaic';
+ return { data: props.state.shape !== PieChartTypes.MOSAIC, appearance: false };
},
renderLayerSettings(domElement, props) {
diff --git a/x-pack/plugins/lens/public/visualizations/xy/annotations/actions.ts b/x-pack/plugins/lens/public/visualizations/xy/annotations/actions.ts
index 68938fbee5211..cb3afbcb14c91 100644
--- a/x-pack/plugins/lens/public/visualizations/xy/annotations/actions.ts
+++ b/x-pack/plugins/lens/public/visualizations/xy/annotations/actions.ts
@@ -5,13 +5,10 @@
* 2.0.
*/
-import { i18n } from '@kbn/i18n';
import type { LayerActionFromVisualization } from '../../../types';
import type { XYState, XYAnnotationLayerConfig } from '../types';
-export const IGNORE_GLOBAL_FILTERS_ACTION_ID = 'ignoreGlobalFilters';
-export const KEEP_GLOBAL_FILTERS_ACTION_ID = 'keepGlobalFilters';
-
+// Leaving the stub for annotation groups
export const createAnnotationActions = ({
state,
layer,
@@ -21,33 +18,5 @@ export const createAnnotationActions = ({
layer: XYAnnotationLayerConfig;
layerIndex: number;
}): LayerActionFromVisualization[] => {
- const label = !layer.ignoreGlobalFilters
- ? i18n.translate('xpack.lens.xyChart.annotations.ignoreGlobalFiltersLabel', {
- defaultMessage: 'Ignore global filters',
- })
- : i18n.translate('xpack.lens.xyChart.annotations.keepGlobalFiltersLabel', {
- defaultMessage: 'Keep global filters',
- });
- return [
- {
- id: !layer.ignoreGlobalFilters
- ? IGNORE_GLOBAL_FILTERS_ACTION_ID
- : KEEP_GLOBAL_FILTERS_ACTION_ID,
- displayName: label,
- description: !layer.ignoreGlobalFilters
- ? i18n.translate('xpack.lens.xyChart.annotations.ignoreGlobalFiltersDescription', {
- defaultMessage:
- 'All the dimensions configured in this layer ignore filters defined at kibana level.',
- })
- : i18n.translate('xpack.lens.xyChart.annotations.keepGlobalFiltersDescription', {
- defaultMessage:
- 'All the dimensions configured in this layer respect filters defined at kibana level.',
- }),
- icon: !layer.ignoreGlobalFilters ? 'filterIgnore' : 'filter',
- isCompatible: true,
- 'data-test-subj': !layer.ignoreGlobalFilters
- ? 'lnsXY_annotationLayer_ignoreFilters'
- : 'lnsXY_annotationLayer_keepFilters',
- },
- ];
+ return [];
};
diff --git a/x-pack/plugins/lens/public/visualizations/xy/layer_settings.tsx b/x-pack/plugins/lens/public/visualizations/xy/layer_settings.tsx
new file mode 100644
index 0000000000000..55091aa0d1d40
--- /dev/null
+++ b/x-pack/plugins/lens/public/visualizations/xy/layer_settings.tsx
@@ -0,0 +1,53 @@
+/*
+ * 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 { EuiFormRow, EuiSwitch } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import React from 'react';
+import type { VisualizationLayerSettingsProps } from '../../types';
+import type { XYState } from './types';
+import { isAnnotationsLayer } from './visualization_helpers';
+
+export function LayerSettings({
+ state,
+ setState,
+ section,
+ layerId,
+}: VisualizationLayerSettingsProps & { section: 'data' | 'appearance' }) {
+ if (section === 'appearance') {
+ return null;
+ }
+ const layer = state.layers.find((l) => l.layerId === layerId);
+ if (!layer || !isAnnotationsLayer(layer)) {
+ return null;
+ }
+ return (
+
+ {
+ const layerIndex = state.layers.findIndex((l) => l === layer);
+ const newLayer = { ...layer, ignoreGlobalFilters: !layer.ignoreGlobalFilters };
+ const newLayers = [...state.layers];
+ newLayers[layerIndex] = newLayer;
+ setState({ ...state, layers: newLayers });
+ }}
+ compressed
+ />
+
+ );
+}
diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts
index 159014b043aec..9b82ab8c0d90e 100644
--- a/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts
+++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts
@@ -37,7 +37,6 @@ import { DataViewsState } from '../../state_management';
import { createMockedIndexPattern } from '../../datasources/form_based/mocks';
import { createMockDataViewsState } from '../../data_views_service/mocks';
import { unifiedSearchPluginMock } from '@kbn/unified-search-plugin/public/mocks';
-import { KEEP_GLOBAL_FILTERS_ACTION_ID } from './annotations/actions';
import { layerTypes, Visualization } from '../..';
const DATE_HISTORGRAM_COLUMN_ID = 'date_histogram_column';
@@ -3022,7 +3021,7 @@ describe('xy_visualization', () => {
);
});
- it('should return one action for an annotation layer', () => {
+ it('should return no action for an annotation layer', () => {
const baseState = exampleState();
expect(
xyVisualization.getSupportedActionsForLayer?.('annotation', {
@@ -3038,53 +3037,64 @@ describe('xy_visualization', () => {
},
],
})
- ).toEqual([
- expect.objectContaining({
- displayName: 'Keep global filters',
- description:
- 'All the dimensions configured in this layer respect filters defined at kibana level.',
- icon: 'filter',
- isCompatible: true,
- 'data-test-subj': 'lnsXY_annotationLayer_keepFilters',
- }),
- ]);
+ ).toHaveLength(0);
});
+ });
- it('should handle an annotation action', () => {
- const baseState = exampleState();
- const state = {
- ...baseState,
- layers: [
- ...baseState.layers,
- {
- layerId: 'annotation',
- layerType: layerTypes.ANNOTATIONS,
- annotations: [exampleAnnotation2],
- ignoreGlobalFilters: true,
- indexPatternId: 'myIndexPattern',
- },
- ],
- };
+ describe('layer settings', () => {
+ describe('hasLayerSettings', () => {
+ it('should expose no settings for a data or reference lines layer', () => {
+ const baseState = exampleState();
+ expect(
+ xyVisualization.hasLayerSettings?.({
+ state: baseState,
+ frame: createMockFramePublicAPI(),
+ layerId: 'first',
+ })
+ ).toEqual({ data: false, appearance: false });
- const newState = xyVisualization.onLayerAction!(
- 'annotation',
- KEEP_GLOBAL_FILTERS_ACTION_ID,
- state
- );
+ expect(
+ xyVisualization.hasLayerSettings?.({
+ state: {
+ ...baseState,
+ layers: [
+ ...baseState.layers,
+ {
+ layerId: 'referenceLine',
+ layerType: layerTypes.REFERENCELINE,
+ accessors: [],
+ yConfig: [{ axisMode: 'left', forAccessor: 'a' }],
+ },
+ ],
+ },
+ frame: createMockFramePublicAPI(),
+ layerId: 'referenceLine',
+ })
+ ).toEqual({ data: false, appearance: false });
+ });
- expect(newState).toEqual(
- expect.objectContaining({
- layers: expect.arrayContaining([
- {
- layerId: 'annotation',
- layerType: layerTypes.ANNOTATIONS,
- annotations: [exampleAnnotation2],
- ignoreGlobalFilters: false,
- indexPatternId: 'myIndexPattern',
+ it('should expose data settings for an annotation layer', () => {
+ const baseState = exampleState();
+ expect(
+ xyVisualization.hasLayerSettings?.({
+ state: {
+ ...baseState,
+ layers: [
+ ...baseState.layers,
+ {
+ layerId: 'annotation',
+ layerType: layerTypes.ANNOTATIONS,
+ annotations: [exampleAnnotation2],
+ ignoreGlobalFilters: true,
+ indexPatternId: 'myIndexPattern',
+ },
+ ],
},
- ]),
- })
- );
+ frame: createMockFramePublicAPI(),
+ layerId: 'annotation',
+ })
+ ).toEqual({ data: true, appearance: false });
+ });
});
});
});
diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx
index 274b82e5a1cf4..2f5df56c7b42d 100644
--- a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx
+++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx
@@ -49,7 +49,6 @@ import {
type XYDataLayerConfig,
type SeriesType,
type PersistedState,
- type XYAnnotationLayerConfig,
visualizationTypes,
} from './types';
import {
@@ -103,12 +102,8 @@ import { AnnotationsPanel } from './xy_config_panel/annotations_config_panel';
import { DimensionTrigger } from '../../shared_components/dimension_trigger';
import { defaultAnnotationLabel } from './annotations/helpers';
import { onDropForVisualization } from '../../editor_frame_service/editor_frame/config_panel/buttons/drop_targets_utils';
-import {
- createAnnotationActions,
- IGNORE_GLOBAL_FILTERS_ACTION_ID,
- KEEP_GLOBAL_FILTERS_ACTION_ID,
-} from './annotations/actions';
import { IgnoredGlobalFiltersEntries } from './info_badges';
+import { LayerSettings } from './layer_settings';
const XY_ID = 'lnsXY';
export const getXyVisualization = ({
@@ -263,31 +258,27 @@ export const getXyVisualization = ({
];
},
- getSupportedActionsForLayer(layerId, state) {
- const layerIndex = state.layers.findIndex((l) => l.layerId === layerId);
- const layer = state.layers[layerIndex];
- const actions = [];
- if (isAnnotationsLayer(layer)) {
- actions.push(...createAnnotationActions({ state, layerIndex, layer }));
- }
- return actions;
+ getSupportedActionsForLayer() {
+ return [];
},
- onLayerAction(layerId, actionId, state) {
- if ([IGNORE_GLOBAL_FILTERS_ACTION_ID, KEEP_GLOBAL_FILTERS_ACTION_ID].includes(actionId)) {
- return {
- ...state,
- layers: state.layers.map((layer) =>
- layer.layerId === layerId
- ? {
- ...layer,
- ignoreGlobalFilters: !(layer as XYAnnotationLayerConfig).ignoreGlobalFilters,
- }
- : layer
- ),
- };
- }
+ hasLayerSettings({ state, layerId: currentLayerId }) {
+ const layer = state.layers?.find(({ layerId }) => layerId === currentLayerId);
+ return { data: Boolean(layer && isAnnotationsLayer(layer)), appearance: false };
+ },
+
+ renderLayerSettings(domElement, props) {
+ render(
+
+
+
+
+ ,
+ domElement
+ );
+ },
+ onLayerAction(layerId, actionId, state) {
return state;
},
diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/layer_header.tsx b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/layer_header.tsx
index 819dfe13c2ba2..1983094f483b9 100644
--- a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/layer_header.tsx
+++ b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/layer_header.tsx
@@ -7,9 +7,17 @@
import React, { useState } from 'react';
import { i18n } from '@kbn/i18n';
-import { EuiIcon, EuiPopover, EuiSelectable, EuiText, EuiPopoverTitle } from '@elastic/eui';
+import {
+ EuiIcon,
+ EuiPopover,
+ EuiSelectable,
+ EuiText,
+ EuiPopoverTitle,
+ useEuiTheme,
+} from '@elastic/eui';
import { ToolbarButton } from '@kbn/kibana-react-plugin/public';
import { IconChartBarReferenceLine, IconChartBarAnnotations } from '@kbn/chart-icons';
+import { css } from '@emotion/react';
import type {
VisualizationLayerHeaderContentProps,
VisualizationLayerWidgetProps,
@@ -71,6 +79,7 @@ function AnnotationLayerHeaderContent({
layerId,
onChangeIndexPattern,
}: VisualizationLayerHeaderContentProps) {
+ const { euiTheme } = useEuiTheme();
const notFoundTitleLabel = i18n.translate('xpack.lens.layerPanel.missingDataView', {
defaultMessage: 'Data view not found',
});
@@ -78,6 +87,25 @@ function AnnotationLayerHeaderContent({
const layer = state.layers[layerIndex] as XYAnnotationLayerConfig;
const currentIndexPattern = frame.dataViews.indexPatterns[layer.indexPatternId];
+ const extraIconLabelProps = !layer.ignoreGlobalFilters
+ ? {}
+ : {
+ icon: {
+ component: (
+
+ ),
+ tooltipValue: i18n.translate('xpack.lens.layerPanel.ignoreGlobalFilters', {
+ defaultMessage: 'Ignore global filters',
+ }),
+ 'data-test-subj': 'lnsChangeIndexPatternIgnoringFilters',
+ },
+ };
return (
= ({
<>
= ({
>
}
arrowDisplay="none"
+ data-test-subj="mappingConflictsAccordion"
>
{conflictsInfo.map((info) => {
@@ -265,8 +266,9 @@ export const BuilderEntryItem: React.FC = ({
const customOptionText =
entry.nested == null && allowCustomOptions ? i18n.CUSTOM_COMBOBOX_OPTION_TEXT : undefined;
+
const helpText =
- entry.field?.type !== 'conflict' ? (
+ entry.field?.conflictDescriptions == null ? (
customOptionText
) : (
<>
@@ -422,7 +424,9 @@ export const BuilderEntryItem: React.FC = ({
}
const warning = validateFilePathInput({ os, value: wildcardValue });
actualWarning =
- warning === FILENAME_WILDCARD_WARNING ? getWildcardWarning(warning) : warning;
+ warning === FILENAME_WILDCARD_WARNING
+ ? warning && getWildcardWarning(warning)
+ : warning;
}
return (
diff --git a/x-pack/plugins/profiling/kibana.jsonc b/x-pack/plugins/profiling/kibana.jsonc
index a1290cc79b499..bf7f17fb5e5ec 100644
--- a/x-pack/plugins/profiling/kibana.jsonc
+++ b/x-pack/plugins/profiling/kibana.jsonc
@@ -6,16 +6,14 @@
"id": "profiling",
"server": true,
"browser": true,
- "configPath": [
- "xpack",
- "profiling"
- ],
+ "configPath": ["xpack", "profiling"],
"requiredPlugins": [
"navigation",
"data",
"kibanaUtils",
"share",
"observability",
+ "observabilityShared",
"features",
"kibanaReact",
"unifiedSearch",
diff --git a/x-pack/plugins/profiling/public/plugin.tsx b/x-pack/plugins/profiling/public/plugin.tsx
index ae3030b528efb..4d700d1b028fb 100644
--- a/x-pack/plugins/profiling/public/plugin.tsx
+++ b/x-pack/plugins/profiling/public/plugin.tsx
@@ -77,7 +77,7 @@ export class ProfilingPlugin implements Plugin {
})
);
- pluginsSetup.observability.navigation.registerSections(section$);
+ pluginsSetup.observabilityShared.navigation.registerSections(section$);
coreSetup.application.register({
id: 'profiling',
diff --git a/x-pack/plugins/profiling/public/types.ts b/x-pack/plugins/profiling/public/types.ts
index 42563dd3258fb..da0bc65f02d34 100644
--- a/x-pack/plugins/profiling/public/types.ts
+++ b/x-pack/plugins/profiling/public/types.ts
@@ -13,11 +13,13 @@ import type {
ObservabilityPublicSetup,
ObservabilityPublicStart,
} from '@kbn/observability-plugin/public';
+import { ObservabilitySharedPluginSetup } from '@kbn/observability-shared-plugin/public/plugin';
import { ChartsPluginSetup, ChartsPluginStart } from '@kbn/charts-plugin/public';
import { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
export interface ProfilingPluginPublicSetupDeps {
observability: ObservabilityPublicSetup;
+ observabilityShared: ObservabilitySharedPluginSetup;
dataViews: DataViewsPublicPluginSetup;
data: DataPublicPluginSetup;
charts: ChartsPluginSetup;
diff --git a/x-pack/plugins/profiling/tsconfig.json b/x-pack/plugins/profiling/tsconfig.json
index 4002050ee8e79..effbfc83a3716 100644
--- a/x-pack/plugins/profiling/tsconfig.json
+++ b/x-pack/plugins/profiling/tsconfig.json
@@ -44,6 +44,7 @@
"@kbn/i18n-react",
"@kbn/ml-plugin",
"@kbn/share-plugin",
+ "@kbn/observability-shared-plugin",
"@kbn/licensing-plugin",
// add references to other TypeScript projects the plugin depends on
diff --git a/x-pack/plugins/security_solution/common/types/header_actions/index.ts b/x-pack/plugins/security_solution/common/types/header_actions/index.ts
index 0cb080ee23db1..d7b5af94ac429 100644
--- a/x-pack/plugins/security_solution/common/types/header_actions/index.ts
+++ b/x-pack/plugins/security_solution/common/types/header_actions/index.ts
@@ -15,9 +15,9 @@ import type { IFieldSubType } from '@kbn/es-query';
import type { FieldBrowserOptions } from '@kbn/triggers-actions-ui-plugin/public';
import type { ComponentType, JSXElementConstructor, ReactNode } from 'react';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import type { SortColumnTable } from '@kbn/securitysolution-data-table';
import type { OnRowSelected, SetEventsDeleted, SetEventsLoading } from '..';
import type { BrowserFields, TimelineNonEcsData } from '../../search_strategy';
-import type { SortColumnTable } from '../data_table';
export type ColumnHeaderType = 'not-filtered' | 'text-filter';
diff --git a/x-pack/plugins/security_solution/common/types/index.ts b/x-pack/plugins/security_solution/common/types/index.ts
index cb155d2ec738c..8bee53d80db5a 100644
--- a/x-pack/plugins/security_solution/common/types/index.ts
+++ b/x-pack/plugins/security_solution/common/types/index.ts
@@ -8,7 +8,6 @@
import type { Status } from '../detection_engine/schemas/common';
export * from './timeline';
-export * from './data_table';
export * from './detail_panel';
export * from './header_actions';
export * from './session_view';
diff --git a/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_in.test.ts b/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_in.test.ts
index d9fa197f30bf1..9cb5855db5f99 100644
--- a/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_in.test.ts
+++ b/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_in.test.ts
@@ -6,7 +6,6 @@
*/
import { createFilterManagerMock } from '@kbn/data-plugin/public/query/filter_manager/filter_manager.mock';
-import { TableId, TimelineId } from '../../../../common/types';
import {
createSecuritySolutionStorageMock,
kibanaObservable,
@@ -17,6 +16,8 @@ import { createStore } from '../../../common/store';
import { createFilterInCellActionFactory } from './filter_in';
import type { SecurityCellActionExecutionContext } from '../../types';
import { createStartServicesMock } from '../../../common/lib/kibana/kibana_react.mock';
+import { TableId } from '@kbn/securitysolution-data-table';
+import { TimelineId } from '../../../../common/types';
const services = createStartServicesMock();
const mockFilterManager = services.data.query.filterManager;
diff --git a/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_out.test.ts b/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_out.test.ts
index f171b3084cbfa..6a6c3e107fd5a 100644
--- a/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_out.test.ts
+++ b/x-pack/plugins/security_solution/public/actions/filter/cell_action/filter_out.test.ts
@@ -6,7 +6,6 @@
*/
import { createFilterManagerMock } from '@kbn/data-plugin/public/query/filter_manager/filter_manager.mock';
-import { TableId, TimelineId } from '../../../../common/types';
import {
createSecuritySolutionStorageMock,
kibanaObservable,
@@ -17,6 +16,8 @@ import { createStore } from '../../../common/store';
import { createFilterOutCellActionFactory } from './filter_out';
import type { SecurityCellActionExecutionContext } from '../../types';
import { createStartServicesMock } from '../../../common/lib/kibana/kibana_react.mock';
+import { TimelineId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
const services = createStartServicesMock();
const mockFilterManager = services.data.query.filterManager;
diff --git a/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.test.ts b/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.test.ts
index fffd6a21a9b42..abe25695fa4f0 100644
--- a/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.test.ts
+++ b/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.test.ts
@@ -6,12 +6,11 @@
*/
import type { SecurityAppStore } from '../../../common/store/types';
-import { TableId } from '../../../../common/types';
+import { TableId, dataTableActions } from '@kbn/securitysolution-data-table';
import { createToggleColumnCellActionFactory } from './toggle_column';
import type { CellActionExecutionContext } from '@kbn/cell-actions';
import { mockGlobalState } from '../../../common/mock';
-import { dataTableActions } from '../../../common/store/data_table';
const mockDispatch = jest.fn();
const mockGetState = jest.fn().mockReturnValue(mockGlobalState);
diff --git a/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.ts b/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.ts
index feb555851ba8d..b12b1a405c50a 100644
--- a/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.ts
+++ b/x-pack/plugins/security_solution/public/actions/toggle_column/cell_action/toggle_column.ts
@@ -7,13 +7,16 @@
import { i18n } from '@kbn/i18n';
import { createCellActionFactory, type CellActionTemplate } from '@kbn/cell-actions';
+import {
+ defaultColumnHeaderType,
+ tableDefaults,
+ dataTableSelectors,
+} from '@kbn/securitysolution-data-table';
import { fieldHasCellActions } from '../../utils';
import type { SecurityAppStore } from '../../../common/store';
import { getScopedActions, isInTableScope, isTimelineScope } from '../../../helpers';
import { timelineDefaults } from '../../../timelines/store/timeline/defaults';
-import { defaultColumnHeaderType, tableDefaults } from '../../../common/store/data_table/defaults';
import { timelineSelectors } from '../../../timelines/store/timeline';
-import { dataTableSelectors } from '../../../common/store/data_table';
import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants';
import type { SecurityCellAction } from '../../types';
import { SecurityCellActionType } from '../../constants';
diff --git a/x-pack/plugins/security_solution/public/app/types.ts b/x-pack/plugins/security_solution/public/app/types.ts
index 746ac0a304e20..578a4800f7f64 100644
--- a/x-pack/plugins/security_solution/public/app/types.ts
+++ b/x-pack/plugins/security_solution/public/app/types.ts
@@ -18,6 +18,7 @@ import type {
import type { RouteProps } from 'react-router-dom';
import type { AppMountParameters } from '@kbn/core/public';
import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
+import type { TableState } from '@kbn/securitysolution-data-table';
import type { ExploreReducer, ExploreState } from '../explore';
import type { StartServices } from '../types';
@@ -34,7 +35,6 @@ export interface RenderAppProps extends AppMountParameters {
import type { State, SubPluginsInitReducer } from '../common/store';
import type { Immutable } from '../../common/endpoint/types';
import type { AppAction } from '../common/store/actions';
-import type { TableState } from '../common/store/data_table/types';
import type { GroupModel } from '../common/store/grouping';
export { SecurityPageName } from '../../common/constants';
diff --git a/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.test.tsx
index 322f1237928d0..5fe580c968697 100644
--- a/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.test.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { render } from '@testing-library/react';
import React from 'react';
import { RowAction } from '.';
diff --git a/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.tsx b/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.tsx
index 50b85358ae024..cd226d4347af6 100644
--- a/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/control_columns/row_action/index.tsx
@@ -9,6 +9,7 @@ import type { EuiDataGridCellValueElementProps } from '@elastic/eui';
import React, { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
import { useExpandableFlyoutContext } from '@kbn/expandable-flyout';
+import { dataTableActions } from '@kbn/securitysolution-data-table';
import { RightPanelKey } from '../../../../flyout/right';
import type {
SetEventsDeleted,
@@ -20,7 +21,6 @@ import { getMappedNonEcsValue } from '../../../../timelines/components/timeline/
import type { TimelineItem, TimelineNonEcsData } from '../../../../../common/search_strategy';
import type { ColumnHeaderOptions, OnRowSelected } from '../../../../../common/types/timeline';
-import { dataTableActions } from '../../../store/data_table';
import { useIsExperimentalFeatureEnabled } from '../../../hooks/use_experimental_features';
type Props = EuiDataGridCellValueElementProps & {
diff --git a/x-pack/plugins/security_solution/public/common/components/control_columns/transform_control_columns.tsx b/x-pack/plugins/security_solution/public/common/components/control_columns/transform_control_columns.tsx
index 931a857eeb3fd..a2e057f2136d1 100644
--- a/x-pack/plugins/security_solution/public/common/components/control_columns/transform_control_columns.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/control_columns/transform_control_columns.tsx
@@ -10,6 +10,8 @@ import type { EuiDataGridCellValueElementProps, EuiDataGridControlColumn } from
import type { ComponentType } from 'react';
import React from 'react';
import type { EuiTheme } from '@kbn/kibana-react-plugin/common';
+import { addBuildingBlockStyle, getPageRowIndex } from '@kbn/securitysolution-data-table';
+import type { SortColumnTable } from '@kbn/securitysolution-data-table';
import type {
BrowserFields,
TimelineItem,
@@ -22,10 +24,7 @@ import type {
ControlColumnProps,
OnRowSelected,
OnSelectAll,
- SortColumnTable,
} from '../../../../common/types';
-import { addBuildingBlockStyle } from '../data_table/helpers';
-import { getPageRowIndex } from '../data_table/pagination';
import { RowAction } from './row_action';
const EmptyHeaderCellRender: ComponentType = () => null;
diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx
index e8b4ad62b71fa..79d373fe74802 100644
--- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.test.tsx
@@ -11,7 +11,6 @@ import React from 'react';
import type { DraggableStateSnapshot, DraggingStyle } from 'react-beautiful-dnd';
import '../../mock/match_media';
-import { TableId, TimelineId } from '../../../../common/types';
import { mockBrowserFields } from '../../containers/source/mock';
import { TestProviders } from '../../mock';
import { mockDataProviders } from '../../../timelines/components/timeline/data_providers/mock/mock_data_providers';
@@ -24,6 +23,8 @@ import {
getStyle,
} from './draggable_wrapper';
import { useMountAppended } from '../../utils/use_mount_appended';
+import { TimelineId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
jest.mock('../../lib/kibana');
diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx
index c09554f12ec9c..696b9888bdb04 100644
--- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx
@@ -18,7 +18,7 @@ import { Draggable, Droppable } from 'react-beautiful-dnd';
import { useDispatch } from 'react-redux';
import styled from 'styled-components';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { dragAndDropActions } from '../../store/drag_and_drop';
import type { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider';
import { ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID } from '../../../timelines/components/row_renderers_browser/constants';
diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/helpers.ts b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/helpers.ts
index 7a48dbcb5a450..e98e9afebb0a2 100644
--- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/helpers.ts
+++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/helpers.ts
@@ -10,10 +10,10 @@ import type { Dispatch } from 'redux';
import type { ActionCreator } from 'typescript-fsa';
import { getFieldIdFromDraggable, getProviderIdFromDraggable } from '@kbn/securitysolution-t-grid';
+import { TableId } from '@kbn/securitysolution-data-table';
import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants';
import { getScopedActions } from '../../../helpers';
import type { ColumnHeaderOptions } from '../../../../common/types';
-import { TableId } from '../../../../common/types';
import type { BrowserField, BrowserFields } from '../../../../common/search_strategy';
import { dragAndDropActions } from '../../store/actions';
import type { IdToDataProvider } from '../../store/drag_and_drop/model';
diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/event_fields_browser.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/event_fields_browser.tsx
index e1068f53afd30..0784bbcb6694f 100644
--- a/x-pack/plugins/security_solution/public/common/components/event_details/event_fields_browser.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/event_details/event_fields_browser.tsx
@@ -18,9 +18,8 @@ import {
onKeyDownFocusHandler,
} from '@kbn/timelines-plugin/public';
+import { dataTableSelectors, tableDefaults } from '@kbn/securitysolution-data-table';
import { isInTableScope, isTimelineScope } from '../../../helpers';
-import { tableDefaults } from '../../store/data_table/defaults';
-import { dataTableSelectors } from '../../store/data_table';
import { ADD_TIMELINE_BUTTON_CLASS_NAME } from '../../../timelines/components/flyout/add_timeline_button';
import { timelineSelectors } from '../../../timelines/store/timeline';
import type { BrowserFields } from '../../containers/source';
diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx
index a1f69bbda6587..1db522f4c011e 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx
@@ -7,7 +7,7 @@
import { render } from '@testing-library/react';
import React from 'react';
-import { TableId } from '../../../../common/types';
+import { TableId, dataTableActions } from '@kbn/securitysolution-data-table';
import { HostsType } from '../../../explore/hosts/store/model';
import { TestProviders } from '../../mock';
import type { EventsQueryTabBodyComponentProps } from './events_query_tab_body';
@@ -15,7 +15,6 @@ import { EventsQueryTabBody, ALERTS_EVENTS_HISTOGRAM_ID } from './events_query_t
import { useGlobalFullScreen } from '../../containers/use_full_screen';
import { licenseService } from '../../hooks/use_license';
import { mockHistory } from '../../mock/router';
-import { dataTableActions } from '../../store/data_table';
const mockGetDefaultControlColumn = jest.fn();
jest.mock('../../../timelines/components/timeline/body/control_columns', () => ({
diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx
index 2e22cd032f8f4..feebcc648f6e2 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx
@@ -10,8 +10,9 @@ import { useDispatch } from 'react-redux';
import { EuiCheckbox } from '@elastic/eui';
import type { Filter } from '@kbn/es-query';
-import type { CustomBulkAction, TableId } from '../../../../common/types';
-import { dataTableActions } from '../../store/data_table';
+import { dataTableActions } from '@kbn/securitysolution-data-table';
+import type { TableId } from '@kbn/securitysolution-data-table';
+import type { CustomBulkAction } from '../../../../common/types';
import { RowRendererId } from '../../../../common/types/timeline';
import { StatefulEventsViewer } from '../events_viewer';
import { eventsDefaultModel } from '../events_viewer/default_model';
@@ -45,6 +46,7 @@ import {
useReplaceUrlParams,
} from '../../utils/global_query_string/helpers';
import type { BulkActionsProp } from '../toolbar/bulk_actions/types';
+import { SecurityCellActionsTrigger } from '../cell_actions';
export const ALERTS_EVENTS_HISTOGRAM_ID = 'alertsOrEventsHistogramQuery';
@@ -181,6 +183,7 @@ const EventsQueryTabBodyComponent: React.FC =
)}
= ({
+ additionalFilters,
+ additionalRightMenuOptions,
+ bulkActions,
+ cellActionsTriggerId,
+ clearSelected,
+ currentFilter,
defaultModel,
- disableCellActions,
end,
entityType = 'events',
- tableId,
+ hasCrudPermissions = true,
+ indexNames,
leadingControlColumns,
- pageFilters,
- currentFilter,
onRuleChange,
+ pageFilters,
renderCellValue,
rowRenderers,
- start,
+ setSelected,
sourcererScope,
- additionalFilters,
- hasCrudPermissions = true,
+ start,
+ tableId,
unit = defaultUnit,
- indexNames,
- bulkActions,
- setSelected,
- clearSelected,
- additionalRightMenuOptions,
}) => {
const dispatch = useDispatch();
const theme: EuiTheme = useContext(ThemeContext);
@@ -151,7 +155,11 @@ const StatefulEventsViewerComponent: React.FC eventsViewerSelector(state, tableId));
- const { uiSettings, data } = useKibana().services;
+ const {
+ uiSettings,
+ data,
+ triggersActionsUi: { getFieldBrowser },
+ } = useKibana().services;
const [tableView, setTableView] = useState(
getDefaultViewSelection({
@@ -565,11 +573,11 @@ const StatefulEventsViewerComponent: React.FC
diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx
index 4e08b0cb94b62..a3e69252990ac 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/right_top_menu.tsx
@@ -5,11 +5,11 @@
* 2.0.
*/
+import type { ViewSelection } from '@kbn/securitysolution-data-table';
+import { TableId } from '@kbn/securitysolution-data-table';
import React, { useMemo } from 'react';
import type { CSSProperties } from 'styled-components';
import styled from 'styled-components';
-import type { ViewSelection } from '../../../../common/types';
-import { TableId } from '../../../../common/types';
import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features';
import { InspectButton } from '../inspect';
import { UpdatedFlexGroup, UpdatedFlexItem } from './styles';
diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/selectors/index.ts b/x-pack/plugins/security_solution/public/common/components/events_viewer/selectors/index.ts
index c41da4233cf4c..ceef3d4faead1 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_viewer/selectors/index.ts
+++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/selectors/index.ts
@@ -5,9 +5,9 @@
* 2.0.
*/
+import { getTableByIdSelector } from '@kbn/securitysolution-data-table';
import { createSelector } from 'reselect';
-import { getTableByIdSelector } from '../../../store/data_table/selectors';
import {
getTimelineSelector,
globalFiltersQuerySelector,
diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/summary_view_select/index.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/summary_view_select/index.tsx
index 6a383ada1ac85..a26ff7d3939b6 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_viewer/summary_view_select/index.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/summary_view_select/index.tsx
@@ -11,7 +11,7 @@ import { Storage } from '@kbn/kibana-utils-plugin/public';
import { i18n } from '@kbn/i18n';
import React, { useCallback, useMemo, useState } from 'react';
import styled from 'styled-components';
-import type { ViewSelection } from '../../../../../common/types';
+import type { ViewSelection } from '@kbn/securitysolution-data-table';
import { ALERTS_TABLE_VIEW_SELECTION_KEY } from '../../../../../common/constants';
const storage = new Storage(localStorage);
diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/use_alert_bulk_actions.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/use_alert_bulk_actions.tsx
index bdc028d49a23d..0ffdb2d5d2a9c 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_viewer/use_alert_bulk_actions.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/use_alert_bulk_actions.tsx
@@ -6,9 +6,9 @@
*/
import { EuiLoadingSpinner } from '@elastic/eui';
+import type { TableId } from '@kbn/securitysolution-data-table';
import React, { lazy, Suspense, useMemo } from 'react';
import type { TimelineItem } from '../../../../common/search_strategy';
-import type { TableId } from '../../../../common/types';
import type { AlertWorkflowStatus } from '../../types';
import type { BulkActionsProp } from '../toolbar/bulk_actions/types';
diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/use_timelines_events.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/use_timelines_events.tsx
index c64bb7cae14cb..52e3f6c48ea8f 100644
--- a/x-pack/plugins/security_solution/public/common/components/events_viewer/use_timelines_events.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/use_timelines_events.tsx
@@ -28,12 +28,11 @@ import type {
TimelineStrategyResponseType,
} from '@kbn/timelines-plugin/common/search_strategy';
import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types';
+import { dataTableActions, Direction, TableId } from '@kbn/securitysolution-data-table';
import { TimelineEventsQueries } from '../../../../common/search_strategy';
import type { KueryFilterQueryKind } from '../../../../common/types';
-import { Direction, TableId } from '../../../../common/types';
import type { ESQuery } from '../../../../common/typed_json';
import { useAppToasts } from '../../hooks/use_app_toasts';
-import { dataTableActions } from '../../store/data_table';
import { ERROR_TIMELINE_EVENTS } from './translations';
import type { AlertWorkflowStatus } from '../../types';
import { getSearchTransactionName, useStartTransaction } from '../../lib/apm/use_start_transaction';
diff --git a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx
index 46adaf05ed05b..62da8f750c78f 100644
--- a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx
@@ -12,7 +12,7 @@ import { mockTimelineData, mockTimelineModel, TestProviders } from '../../mock';
import { useShallowEqualSelector } from '../../hooks/use_selector';
import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features';
import { licenseService } from '../../hooks/use_license';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { useTourContext } from '../guided_onboarding_tour';
import { GuidedOnboardingTourStep, SecurityTourStep } from '../guided_onboarding_tour/tour_step';
import { SecurityStepId } from '../guided_onboarding_tour/tour_config';
diff --git a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx
index 1d7006bdd3756..5f53d14ff8219 100644
--- a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx
@@ -10,6 +10,7 @@ import { useDispatch } from 'react-redux';
import { EuiButtonIcon, EuiCheckbox, EuiLoadingSpinner, EuiToolTip } from '@elastic/eui';
import styled from 'styled-components';
+import { TimelineTabs, TableId } from '@kbn/securitysolution-data-table';
import {
eventHasNotes,
getEventType,
@@ -19,7 +20,7 @@ import { getScopedActions, isTimelineScope } from '../../../helpers';
import { isInvestigateInResolverActionEnabled } from '../../../detections/components/alerts_table/timeline_actions/investigate_in_resolver';
import { timelineActions, timelineSelectors } from '../../../timelines/store/timeline';
import type { ActionProps, OnPinEvent } from '../../../../common/types';
-import { TableId, TimelineId, TimelineTabs } from '../../../../common/types';
+import { TimelineId } from '../../../../common/types';
import { AddEventNoteAction } from './add_note_icon_item';
import { PinEventAction } from './pin_event_action';
import { useShallowEqualSelector } from '../../hooks/use_selector';
diff --git a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/__snapshots__/index.test.tsx.snap
index 130ac64b48310..30be4aca57ad6 100644
--- a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/__snapshots__/index.test.tsx.snap
+++ b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/__snapshots__/index.test.tsx.snap
@@ -33,7 +33,7 @@ exports[`SessionsView renders correctly against snapshot 1`] = `
Executable
- User
+ User ID
Interactive
diff --git a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/default_headers.ts b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/default_headers.ts
index 47eb474ab9ed2..48ef68679933e 100644
--- a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/default_headers.ts
+++ b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/default_headers.ts
@@ -5,15 +5,15 @@
* 2.0.
*/
-import { tableDefaults } from '../../store/data_table/defaults';
-import type { SubsetDataTableModel } from '../../store/data_table/model';
+import { tableDefaults } from '@kbn/securitysolution-data-table';
+import type { SubsetDataTableModel } from '@kbn/securitysolution-data-table';
import type { ColumnHeaderOptions } from '../../../../common/types/timeline';
import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers';
import { DEFAULT_DATE_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants';
import {
COLUMN_SESSION_START,
COLUMN_EXECUTABLE,
- COLUMN_ENTRY_USER,
+ COLUMN_ENTRY_USER_ID,
COLUMN_INTERACTIVE,
COLUMN_HOST_NAME,
COLUMN_ENTRY_TYPE,
@@ -34,8 +34,8 @@ export const sessionsHeaders: ColumnHeaderOptions[] = [
},
{
columnHeaderType: defaultColumnHeaderType,
- id: 'process.entry_leader.user.name',
- display: COLUMN_ENTRY_USER,
+ id: 'process.entry_leader.user.id',
+ display: COLUMN_ENTRY_USER_ID,
},
{
columnHeaderType: defaultColumnHeaderType,
diff --git a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.test.tsx
index 43de4da53dec3..7765c4dc0f79d 100644
--- a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.test.tsx
@@ -12,7 +12,7 @@ import { TEST_ID, SessionsView, defaultSessionsFilter } from '.';
import type { EntityType } from '@kbn/timelines-plugin/common';
import type { SessionsComponentsProps } from './types';
import { useGetUserCasesPermissions } from '../../lib/kibana';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { licenseService } from '../../hooks/use_license';
import { mount } from 'enzyme';
import type { EventsViewerProps } from '../events_viewer';
diff --git a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx
index 8d66e0ad37104..5d0d45565ee64 100644
--- a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx
@@ -10,7 +10,7 @@ import type { Filter } from '@kbn/es-query';
import { ENTRY_SESSION_ENTITY_ID_PROPERTY, EventAction } from '@kbn/session-view-plugin/public';
import { useDispatch } from 'react-redux';
import { EVENT_ACTION } from '@kbn/rule-data-utils';
-import { TableId } from '../../../../common/types';
+import { TableId, dataTableActions } from '@kbn/securitysolution-data-table';
import { useAddBulkToTimelineAction } from '../../../detections/components/alerts_table/timeline_actions/use_add_bulk_to_timeline';
import type { SessionsComponentsProps } from './types';
import type { ESBoolQuery } from '../../../../common/typed_json';
@@ -22,11 +22,11 @@ import * as i18n from './translations';
import { SourcererScopeName } from '../../store/sourcerer/model';
import { getDefaultControlColumn } from '../../../timelines/components/timeline/body/control_columns';
import { useLicense } from '../../hooks/use_license';
-import { dataTableActions } from '../../store/data_table';
import { eventsDefaultModel } from '../events_viewer/default_model';
import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features';
import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants';
import type { BulkActionsProp } from '../toolbar/bulk_actions/types';
+import { SecurityCellActionsTrigger } from '../cell_actions';
export const TEST_ID = 'security_solution:sessions_viewer:sessions_view';
@@ -150,6 +150,7 @@ const SessionsViewComponent: React.FC
= ({
return (
{
- tableId: TableIdLiteral;
+ tableId: TableId;
pageFilters: Filter[];
defaultFilters?: Filter[];
entityType?: EntityType;
diff --git a/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/alert_bulk_actions.tsx b/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/alert_bulk_actions.tsx
index 64d414c7cfcc5..4e4bd7cdf2d74 100644
--- a/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/alert_bulk_actions.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/alert_bulk_actions.tsx
@@ -11,20 +11,21 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
import type { ConnectedProps } from 'react-redux';
import { connect, useDispatch } from 'react-redux';
import { useUiSetting$ } from '@kbn/kibana-react-plugin/public';
+import {
+ dataTableSelectors,
+ dataTableActions,
+ tableEntity,
+} from '@kbn/securitysolution-data-table';
+import type { DataTableModel, DataTableState, TableId } from '@kbn/securitysolution-data-table';
import { DEFAULT_NUMBER_FORMAT } from '../../../../../common/constants';
import type {
CustomBulkActionProp,
SetEventsDeleted,
SetEventsLoading,
- TableId,
} from '../../../../../common/types';
-import { tableEntity } from '../../../../../common/types';
import { BulkActions } from '.';
import { useBulkActionItems } from './use_bulk_action_items';
-import { dataTableActions, dataTableSelectors } from '../../../store/data_table';
-import type { DataTableModel } from '../../../store/data_table/model';
import type { AlertWorkflowStatus, Refetch } from '../../../types';
-import type { DataTableState } from '../../../store/data_table/types';
import type { OnUpdateAlertStatusError, OnUpdateAlertStatusSuccess } from './types';
import type { inputsModel } from '../../../store';
import { inputsSelectors } from '../../../store';
diff --git a/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/translations.ts b/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/translations.ts
index f386e4efcbffd..c5fa159067e56 100644
--- a/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/translations.ts
+++ b/x-pack/plugins/security_solution/public/common/components/toolbar/bulk_actions/translations.ts
@@ -6,8 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
-
-import { TableEntityType } from '../../../../../common/types';
+import { TableEntityType } from '@kbn/securitysolution-data-table';
const ENTITY_TYPE_PLURAL = (entityType: TableEntityType, count: number) => {
switch (entityType) {
diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/helpers.test.tsx
index 4cb6e0838c95a..7ce59f9fd0a70 100644
--- a/x-pack/plugins/security_solution/public/common/components/top_n/helpers.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/top_n/helpers.test.tsx
@@ -21,7 +21,7 @@ import {
detectionAlertsTables,
} from './helpers';
import { SourcererScopeName } from '../../store/sourcerer/model';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
/** the following scopes are NOT detection alert tables */
const otherScopes = [
diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/helpers.ts b/x-pack/plugins/security_solution/public/common/components/top_n/helpers.ts
index 58e157038c38f..659aa08d754bf 100644
--- a/x-pack/plugins/security_solution/public/common/components/top_n/helpers.ts
+++ b/x-pack/plugins/security_solution/public/common/components/top_n/helpers.ts
@@ -52,7 +52,7 @@ import {
ALERT_WORKFLOW_STATUS,
ALERT_WORKFLOW_USER,
} from '@kbn/rule-data-utils';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import type { TimelineEventsType } from '../../../../common/types/timeline';
import { TimelineId } from '../../../../common/types/timeline';
diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx
index 5b99f5856f51c..dcab6d7cd503b 100644
--- a/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/components/top_n/index.test.tsx
@@ -25,7 +25,7 @@ import { createStore } from '../../store';
import type { Props } from './top_n';
import { StatefulTopN } from '.';
import { TimelineId } from '../../../../common/types/timeline';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { detectionAlertsTables } from './helpers';
jest.mock('react-router-dom', () => {
diff --git a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts
index c07ff0569fb0d..875a87e46e4af 100644
--- a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts
+++ b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts
@@ -9,13 +9,16 @@ import { useCallback, useEffect, useState } from 'react';
import { useDispatch } from 'react-redux';
-import { TableId } from '../../../../common/types';
+import {
+ dataTableActions,
+ dataTableSelectors,
+ tableDefaults,
+ TableId,
+} from '@kbn/securitysolution-data-table';
import { useInitializeUrlParam } from '../../utils/global_query_string';
import { URL_PARAM_KEY } from '../use_url_state';
import type { FlyoutUrlState } from './types';
-import { dataTableActions, dataTableSelectors } from '../../store/data_table';
import { useShallowEqualSelector } from '../use_selector';
-import { tableDefaults } from '../../store/data_table/defaults';
export const useInitFlyoutFromUrlParam = () => {
const [urlDetails, setUrlDetails] = useState(null);
diff --git a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts
index 95218a7f91b5e..0378d37f018b7 100644
--- a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts
+++ b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts
@@ -8,13 +8,16 @@
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
import { useDispatch } from 'react-redux';
+import {
+ dataTableActions,
+ dataTableSelectors,
+ tableDefaults,
+ TableId,
+} from '@kbn/securitysolution-data-table';
import { ALERTS_PATH } from '../../../../common/constants';
import { useUpdateUrlParam } from '../../utils/global_query_string';
-import { TableId } from '../../../../common/types';
import { useShallowEqualSelector } from '../use_selector';
import { URL_PARAM_KEY } from '../use_url_state';
-import { dataTableActions, dataTableSelectors } from '../../store/data_table';
-import { tableDefaults } from '../../store/data_table/defaults';
import type { FlyoutUrlState } from './types';
export const useSyncFlyoutUrlParam = () => {
diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_data_table_filters.ts b/x-pack/plugins/security_solution/public/common/hooks/use_data_table_filters.ts
index b27cf49560f2a..84b6d0a1bd627 100644
--- a/x-pack/plugins/security_solution/public/common/hooks/use_data_table_filters.ts
+++ b/x-pack/plugins/security_solution/public/common/hooks/use_data_table_filters.ts
@@ -5,17 +5,19 @@
* 2.0.
*/
+import type { TableId } from '@kbn/securitysolution-data-table';
+import {
+ tableDefaults,
+ dataTableSelectors,
+ dataTableActions,
+} from '@kbn/securitysolution-data-table';
import { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
-import type { TableId } from '../../../common/types';
-import { dataTableSelectors } from '../store/data_table';
-import {
- updateShowBuildingBlockAlertsFilter,
- updateShowThreatIndicatorAlertsFilter,
-} from '../store/data_table/actions';
-import { tableDefaults } from '../store/data_table/defaults';
import { useShallowEqualSelector } from './use_selector';
+const { updateShowBuildingBlockAlertsFilter, updateShowThreatIndicatorAlertsFilter } =
+ dataTableActions;
+
export type UseDataTableFilters = (tableId: TableId) => {
showBuildingBlockAlerts: boolean;
setShowBuildingBlockAlerts: (value: boolean) => void;
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/add_to_timeline.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/add_to_timeline.tsx
index ae6aa33c1e457..47235fbce8bc5 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/add_to_timeline.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/add_to_timeline.tsx
@@ -9,6 +9,7 @@ import type { EuiDataGridColumnCellActionProps } from '@elastic/eui';
import React, { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
+import { getPageRowIndex } from '@kbn/securitysolution-data-table';
import type { TimelineNonEcsData } from '../../../../common/search_strategy';
import type { DataProvider } from '../../../../common/types';
import { TimelineId } from '../../../../common/types';
@@ -20,7 +21,6 @@ import {
import { escapeDataProviderId } from '../../components/drag_and_drop/helpers';
import { EmptyComponent, useKibanaServices } from './helpers';
import { addProvider } from '../../../timelines/store/timeline/actions';
-import { getPageRowIndex } from '../../components/data_table/pagination';
export const getAddToTimelineCellAction = ({
data,
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/copy.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/copy.tsx
index f0662ec7c4a0c..42405efabc982 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/copy.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/copy.tsx
@@ -6,11 +6,11 @@
*/
import type { EuiDataGridColumnCellActionProps } from '@elastic/eui';
+import { getPageRowIndex } from '@kbn/securitysolution-data-table';
import React, { useMemo } from 'react';
import type { TimelineNonEcsData } from '../../../../common/search_strategy';
import { useGetMappedNonEcsValue } from '../../../timelines/components/timeline/body/data_driven_columns';
-import { getPageRowIndex } from '../../components/data_table/pagination';
import { EmptyComponent, useKibanaServices } from './helpers';
export const getCopyCellAction = ({
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/default_cell_actions.test.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/default_cell_actions.test.tsx
index 58d4ed6f3aeb4..63547de9fd24e 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/default_cell_actions.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/default_cell_actions.test.tsx
@@ -6,7 +6,7 @@
*/
import type { EuiDataGridColumn } from '@elastic/eui';
import type { ColumnHeaderType, DataTableCellAction } from '../../../../common/types';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import type {
BrowserFields,
TimelineNonEcsData,
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/field_value.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/field_value.tsx
index 8416f8e81ba52..087732479c301 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/field_value.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/field_value.tsx
@@ -10,6 +10,7 @@ import { head, getOr, get, isEmpty } from 'lodash/fp';
import React, { useMemo } from 'react';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import { getPageRowIndex } from '@kbn/securitysolution-data-table';
import type { ColumnHeaderOptions } from '../../../../common/types';
import type { TimelineNonEcsData } from '../../../../common/search_strategy';
import { useGetMappedNonEcsValue } from '../../../timelines/components/timeline/body/data_driven_columns';
@@ -17,7 +18,6 @@ import { FormattedFieldValue } from '../../../timelines/components/timeline/body
import { parseValue } from '../../../timelines/components/timeline/body/renderers/parse_value';
import { EmptyComponent, getLinkColumnDefinition } from './helpers';
import { getField, getFieldKey } from '../../../helpers';
-import { getPageRowIndex } from '../../components/data_table/pagination';
const useFormattedFieldProps = ({
rowIndex,
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_for.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_for.tsx
index 7c65c27a7632b..42840df2967cf 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_for.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_for.tsx
@@ -9,9 +9,9 @@ import type { EuiDataGridColumnCellActionProps } from '@elastic/eui';
import React, { useMemo } from 'react';
import type { TimelineNonEcsData } from '@kbn/timelines-plugin/common/search_strategy';
+import { getPageRowIndex } from '@kbn/securitysolution-data-table';
import { useGetMappedNonEcsValue } from '../../../timelines/components/timeline/body/data_driven_columns';
import { EmptyComponent, onFilterAdded, useKibanaServices } from './helpers';
-import { getPageRowIndex } from '../../components/data_table/pagination';
export const getFilterForCellAction = ({
data,
diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_out.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_out.tsx
index 2cb1375c9f59b..221ae5c434ead 100644
--- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_out.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/filter_out.tsx
@@ -8,9 +8,9 @@ import type { EuiDataGridColumnCellActionProps } from '@elastic/eui';
import React, { useMemo } from 'react';
import type { TimelineNonEcsData } from '@kbn/timelines-plugin/common/search_strategy';
+import { getPageRowIndex } from '@kbn/securitysolution-data-table';
import { useGetMappedNonEcsValue } from '../../../timelines/components/timeline/body/data_driven_columns';
import { EmptyComponent, onFilterAdded, useKibanaServices } from './helpers';
-import { getPageRowIndex } from '../../components/data_table/pagination';
export const getFilterOutCellAction = ({
data,
diff --git a/x-pack/plugins/security_solution/public/common/lib/triggers_actions_ui/register_alerts_table_configuration.tsx b/x-pack/plugins/security_solution/public/common/lib/triggers_actions_ui/register_alerts_table_configuration.tsx
index 983beec75cc31..1545094fdff5f 100644
--- a/x-pack/plugins/security_solution/public/common/lib/triggers_actions_ui/register_alerts_table_configuration.tsx
+++ b/x-pack/plugins/security_solution/public/common/lib/triggers_actions_ui/register_alerts_table_configuration.tsx
@@ -9,6 +9,7 @@ import type { Storage } from '@kbn/kibana-utils-plugin/public';
import type { AlertsTableConfigurationRegistryContract } from '@kbn/triggers-actions-ui-plugin/public';
import type { AlertsTableConfigurationRegistry } from '@kbn/triggers-actions-ui-plugin/public/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { getUseTriggersActionsFieldBrowserOptions } from '../../../detections/hooks/trigger_actions_alert_table/use_trigger_actions_browser_fields_options';
import { getUseCellActionsHook } from '../../../detections/hooks/trigger_actions_alert_table/use_cell_actions';
import { getBulkActionHook } from '../../../detections/hooks/trigger_actions_alert_table/use_bulk_actions';
@@ -20,7 +21,6 @@ import {
CASES_FEATURE_ID,
} from '../../../../common/constants';
import { getDataTablesInStorageByIds } from '../../../timelines/containers/local_storage';
-import { TableId } from '../../../../common/types';
import { getColumns } from '../../../detections/configurations/security_solution_detections';
import { getRenderCellValueHook } from '../../../detections/configurations/security_solution_detections/render_cell_value';
import { useToGetInternalFlyout } from '../../../timelines/components/side_panel/event_details/flyout';
diff --git a/x-pack/plugins/security_solution/public/common/mock/global_state.ts b/x-pack/plugins/security_solution/public/common/mock/global_state.ts
index 76a07e456e84a..bdf1743a2347e 100644
--- a/x-pack/plugins/security_solution/public/common/mock/global_state.ts
+++ b/x-pack/plugins/security_solution/public/common/mock/global_state.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { TableId } from '../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { InputsModelId } from '../store/inputs/constants';
import {
Direction,
diff --git a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts
index fcf34596e7ca9..5243923f35f33 100644
--- a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts
+++ b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts
@@ -7,6 +7,7 @@
import { FilterStateStore } from '@kbn/es-query';
+import type { DataTableModel } from '@kbn/securitysolution-data-table';
import { VIEW_SELECTION } from '../../../common/constants';
import type { TimelineResult } from '../../../common/types/timeline';
import {
@@ -22,7 +23,6 @@ import { Direction } from '../../../common/search_strategy';
import type { CreateTimelineProps } from '../../detections/components/alerts_table/types';
import type { TimelineModel } from '../../timelines/store/timeline/model';
import { timelineDefaults } from '../../timelines/store/timeline/defaults';
-import type { DataTableModel } from '../store/data_table/model';
export const mockOpenTimelineQueryResults = {
totalCount: 11,
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.test.tsx b/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.test.tsx
index 0ffd6c33aa3ed..4c9c5751a7c68 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.test.tsx
+++ b/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.test.tsx
@@ -22,16 +22,6 @@ import {
import type { State } from '..';
import { createStore } from '..';
-import {
- removeColumn,
- upsertColumn,
- applyDeltaToColumnWidth,
- updateColumnOrder,
- updateColumns,
- updateColumnWidth,
- updateItemsPerPage,
- updateSort,
-} from './actions';
import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer';
import type { EventsViewerProps } from '../../components/events_viewer';
import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers';
@@ -43,7 +33,18 @@ import { eventsDefaultModel } from '../../components/events_viewer/default_model
import { EntityType } from '@kbn/timelines-plugin/common';
import { getDefaultControlColumn } from '../../../timelines/components/timeline/body/control_columns';
import { SourcererScopeName } from '../sourcerer/model';
-import { TableId } from '../../../../common/types';
+import { TableId, dataTableActions } from '@kbn/securitysolution-data-table';
+
+const {
+ applyDeltaToColumnWidth,
+ removeColumn,
+ updateColumnOrder,
+ updateColumns,
+ updateColumnWidth,
+ updateItemsPerPage,
+ updateSort,
+ upsertColumn,
+} = dataTableActions;
jest.mock('../../../timelines/containers/local_storage');
diff --git a/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.ts b/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.ts
index 52ecd7d69c866..2afd961c7a9b7 100644
--- a/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.ts
+++ b/x-pack/plugins/security_solution/public/common/store/data_table/epic_local_storage.ts
@@ -10,24 +10,26 @@ import { map, filter, ignoreElements, tap, withLatestFrom, delay } from 'rxjs/op
import type { Epic } from 'redux-observable';
import { get } from 'lodash/fp';
+import { dataTableActions } from '@kbn/securitysolution-data-table';
+import type { TableIdLiteral } from '@kbn/securitysolution-data-table';
import { updateTotalCount } from '../../../timelines/store/timeline/actions';
-import type { TableIdLiteral } from '../../../../common/types';
import { addTableInStorage } from '../../../timelines/containers/local_storage';
-import {
- removeColumn,
- upsertColumn,
+import type { TimelineEpicDependencies } from '../../../timelines/store/timeline/types';
+
+const {
applyDeltaToColumnWidth,
- updateColumns,
+ changeViewMode,
+ removeColumn,
updateColumnOrder,
+ updateColumns,
updateColumnWidth,
+ updateIsLoading,
updateItemsPerPage,
- updateSort,
- changeViewMode,
updateShowBuildingBlockAlertsFilter,
- updateIsLoading,
-} from './actions';
-import type { TimelineEpicDependencies } from '../../../timelines/store/timeline/types';
+ updateSort,
+ upsertColumn,
+} = dataTableActions;
export const isNotNull = (value: T | null): value is T => value !== null;
diff --git a/x-pack/plugins/security_solution/public/common/store/reducer.ts b/x-pack/plugins/security_solution/public/common/store/reducer.ts
index 767bed3df7954..2d2bbd008bd68 100644
--- a/x-pack/plugins/security_solution/public/common/store/reducer.ts
+++ b/x-pack/plugins/security_solution/public/common/store/reducer.ts
@@ -8,6 +8,8 @@
import type { AnyAction, Reducer } from 'redux';
import { combineReducers } from 'redux';
+import type { DataTableState } from '@kbn/securitysolution-data-table';
+import { dataTableReducer } from '@kbn/securitysolution-data-table';
import { appReducer, initialAppState } from './app';
import { dragAndDropReducer, initialDragAndDropState } from './drag_and_drop';
import { createInitialInputsState, inputsReducer } from './inputs';
@@ -27,8 +29,6 @@ import { initDataView, SourcererScopeName } from './sourcerer/model';
import type { ExperimentalFeatures } from '../../../common/experimental_features';
import { getScopePatternListSelection } from './sourcerer/helpers';
import { globalUrlParamReducer, initialGlobalUrlParam } from './global_url_param';
-import type { DataTableState } from './data_table/types';
-import { dataTableReducer } from './data_table/reducer';
import { groupsReducer } from './grouping/reducer';
import type { GroupState } from './grouping/types';
diff --git a/x-pack/plugins/security_solution/public/common/store/store.ts b/x-pack/plugins/security_solution/public/common/store/store.ts
index 8e37804915837..19bbf9a3b4426 100644
--- a/x-pack/plugins/security_solution/public/common/store/store.ts
+++ b/x-pack/plugins/security_solution/public/common/store/store.ts
@@ -24,6 +24,7 @@ import { BehaviorSubject, pluck } from 'rxjs';
import type { Storage } from '@kbn/kibana-utils-plugin/public';
import type { CoreStart } from '@kbn/core/public';
import reduceReducers from 'reduce-reducers';
+import { dataTableSelectors } from '@kbn/securitysolution-data-table';
import { initialGroupingState } from './grouping/reducer';
import type { GroupState } from './grouping/types';
import {
@@ -43,7 +44,6 @@ import type { AppAction } from './actions';
import type { Immutable } from '../../../common/endpoint/types';
import type { State } from './types';
import type { TimelineEpicDependencies, TimelineState } from '../../timelines/store/timeline/types';
-import { dataTableSelectors } from './data_table';
import type { KibanaDataView, SourcererModel } from './sourcerer/model';
import { initDataView } from './sourcerer/model';
import type { AppObservableLibs, StartedSubPlugins, StartPlugins } from '../../types';
diff --git a/x-pack/plugins/security_solution/public/common/store/types.ts b/x-pack/plugins/security_solution/public/common/store/types.ts
index 4cfe92b7425f1..ed55feedb67ec 100644
--- a/x-pack/plugins/security_solution/public/common/store/types.ts
+++ b/x-pack/plugins/security_solution/public/common/store/types.ts
@@ -8,6 +8,7 @@
import type { Store, Dispatch, Action, Middleware, CombinedState } from 'redux';
import type { CoreStart } from '@kbn/core/public';
+import type { DataTableState } from '@kbn/securitysolution-data-table';
import type { StartPlugins } from '../../types';
import type { AppAction } from './actions';
import type { Immutable } from '../../../common/endpoint/types';
@@ -21,7 +22,6 @@ import type { NetworkPluginState } from '../../explore/network/store';
import type { ManagementPluginState } from '../../management';
import type { UsersPluginState } from '../../explore/users/store';
import type { GlobalUrlParam } from './global_url_param';
-import type { DataTableState } from './data_table/types';
import type { GroupState } from './grouping/types';
export type State = HostsPluginState &
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx
index 7b397afb290e5..e53b23d16a46d 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/index.tsx
@@ -33,10 +33,16 @@ import type { Dispatch } from 'redux';
import { isTab } from '@kbn/timelines-plugin/public';
import type { DataViewListItem } from '@kbn/data-views-plugin/common';
+import {
+ tableDefaults,
+ dataTableActions,
+ dataTableSelectors,
+ FILTER_OPEN,
+ TableId,
+} from '@kbn/securitysolution-data-table';
import { AlertsTableComponent } from '../../../../detections/components/alerts_table';
import { GroupedAlertsTable } from '../../../../detections/components/alerts_table/alerts_grouping';
import { useDataTableFilters } from '../../../../common/hooks/use_data_table_filters';
-import { FILTER_OPEN, TableId } from '../../../../../common/types';
import { isMlRule } from '../../../../../common/machine_learning/helpers';
import { TabNavigationWithBreadcrumbs } from '../../../../common/components/navigation/tab_navigation_with_breadcrumbs';
import { InputsModelId } from '../../../../common/store/inputs/constants';
@@ -48,8 +54,6 @@ import { useKibana, useUiSetting$ } from '../../../../common/lib/kibana';
import type { UpdateDateRange } from '../../../../common/components/charts/common';
import { FiltersGlobal } from '../../../../common/components/filters_global';
import { FormattedDate } from '../../../../common/components/formatted_date';
-import { tableDefaults } from '../../../../common/store/data_table/defaults';
-import { dataTableActions, dataTableSelectors } from '../../../../common/store/data_table';
import {
getDetectionEngineUrl,
getRuleDetailsTabUrl,
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.tsx
index 98a2903053f88..194e986ff68c2 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.tsx
@@ -31,7 +31,7 @@ import {
import { lastValueFrom } from 'rxjs';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
-import type { DataTableModel } from '../../../common/store/data_table/types';
+import type { DataTableModel } from '@kbn/securitysolution-data-table';
import {
ALERT_ORIGINAL_TIME,
ALERT_GROUP_ID,
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/alerts_grouping.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/alerts_grouping.tsx
index 813c2573de9f1..e5868970f6768 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/alerts_grouping.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/alerts_grouping.tsx
@@ -17,14 +17,14 @@ import type {
GroupingFieldTotalAggregation,
GroupingAggregation,
} from '@kbn/securitysolution-grouping';
-import { isNoneGroup, useGrouping } from '@kbn/securitysolution-grouping';
+import { useGrouping, isNoneGroup } from '@kbn/securitysolution-grouping';
+import type { TableIdLiteral } from '@kbn/securitysolution-data-table';
import type { AlertsGroupingAggregation } from './grouping_settings/types';
import type { Status } from '../../../../common/detection_engine/schemas/common';
import { InspectButton } from '../../../common/components/inspect';
import { defaultUnit } from '../../../common/components/toolbar/unit';
import { useGlobalTime } from '../../../common/containers/use_global_time';
import { combineQueries } from '../../../common/lib/kuery';
-import type { TableIdLiteral } from '../../../../common/types';
import { useSourcererDataView } from '../../../common/containers/sourcerer';
import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query';
import { useKibana } from '../../../common/lib/kibana';
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx
index 501cfdfdcc08e..d301d6e9736f5 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx
@@ -12,8 +12,8 @@ import {
} from '@kbn/rule-data-utils';
import type { Filter } from '@kbn/es-query';
-import type { SubsetDataTableModel } from '../../../common/store/data_table/model';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
+import { tableDefaults } from '@kbn/securitysolution-data-table';
+import type { SubsetDataTableModel } from '@kbn/securitysolution-data-table';
import type { Status } from '../../../../common/detection_engine/schemas/common/schemas';
import {
getColumns,
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/grouping_settings/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/grouping_settings/index.tsx
index 53ff23fdc1145..f2407a436595b 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/grouping_settings/index.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/grouping_settings/index.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
import type { GroupOption } from '@kbn/securitysolution-grouping';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import * as i18n from '../translations';
export * from './group_stats';
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.test.tsx
index c8d3b9923fc90..346e4b51df72d 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.test.tsx
@@ -20,7 +20,7 @@ import {
} from '../../../common/mock';
import type { AlertsTableComponentProps } from './alerts_grouping';
import { GroupedAlertsTableComponent } from './alerts_grouping';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { useSourcererDataView } from '../../../common/containers/sourcerer';
import type { UseFieldBrowserOptionsProps } from '../../../timelines/components/fields_browser';
import { mockCasesContext } from '@kbn/cases-plugin/public/mocks/mock_cases_context';
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx
index 8857f3ca3b079..44958844bae18 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx
@@ -15,13 +15,17 @@ import type { AlertsTableStateProps } from '@kbn/triggers-actions-ui-plugin/publ
import styled from 'styled-components';
import { useDispatch, useSelector } from 'react-redux';
import { getEsQueryConfig } from '@kbn/data-plugin/public';
+import {
+ dataTableActions,
+ dataTableSelectors,
+ getColumnHeaders,
+ tableDefaults,
+ TableId,
+} from '@kbn/securitysolution-data-table';
import { useGlobalTime } from '../../../common/containers/use_global_time';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
import { useLicense } from '../../../common/hooks/use_license';
-import { updateIsLoading, updateTotalCount } from '../../../common/store/data_table/actions';
import { VIEW_SELECTION } from '../../../../common/constants';
import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants';
-import { dataTableActions, dataTableSelectors } from '../../../common/store/data_table';
import { eventsDefaultModel } from '../../../common/components/events_viewer/default_model';
import { GraphOverlay } from '../../../timelines/components/graph_overlay';
import {
@@ -35,16 +39,16 @@ import { StatefulEventContext } from '../../../common/components/events_viewer/s
import { getDataTablesInStorageByIds } from '../../../timelines/containers/local_storage';
import { useSourcererDataView } from '../../../common/containers/sourcerer';
import { SourcererScopeName } from '../../../common/store/sourcerer/model';
-import { TableId } from '../../../../common/types';
import { useKibana } from '../../../common/lib/kibana';
import { useShallowEqualSelector } from '../../../common/hooks/use_selector';
import { getColumns } from '../../configurations/security_solution_detections';
-import { getColumnHeaders } from '../../../common/components/data_table/column_headers/helpers';
import { buildTimeRangeFilter } from './helpers';
import { eventsViewerSelector } from '../../../common/components/events_viewer/selectors';
import type { State } from '../../../common/store';
import * as i18n from './translations';
+const { updateIsLoading, updateTotalCount } = dataTableActions;
+
const storage = new Storage(localStorage);
interface GridContainerProps {
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx
index 3b6eac21ba05b..de43a237c22cf 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx
@@ -7,7 +7,6 @@
import { mount } from 'enzyme';
import { AlertContextMenu } from './alert_context_menu';
-import { TableId, TimelineId } from '../../../../../common/types';
import { TestProviders } from '../../../../common/mock';
import React from 'react';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
@@ -15,6 +14,8 @@ import { mockTimelines } from '../../../../common/mock/mock_timelines_plugin';
import { mockCasesContract } from '@kbn/cases-plugin/public/mocks';
import { initialUserPrivilegesState as mockInitialUserPrivilegesState } from '../../../../common/components/user_privileges/user_privileges_context';
import { useUserPrivileges } from '../../../../common/components/user_privileges';
+import { TableId } from '@kbn/securitysolution-data-table';
+import { TimelineId } from '../../../../../common/types/timeline';
jest.mock('../../../../common/components/user_privileges');
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx
index 55f91c9c3d34d..e5b4640adf8fe 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx
@@ -14,6 +14,7 @@ import { connect } from 'react-redux';
import { ExceptionListTypeEnum } from '@kbn/securitysolution-io-ts-list-types';
import { get } from 'lodash/fp';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import { TableId } from '@kbn/securitysolution-data-table';
import { DEFAULT_ACTION_BUTTON_WIDTH } from '../../../../common/components/header_actions';
import { isActiveTimeline } from '../../../../helpers';
import { useOsqueryContextActionItem } from '../../osquery/use_osquery_context_action_item';
@@ -27,7 +28,6 @@ import { AddExceptionFlyout } from '../../../../detection_engine/rule_exceptions
import * as i18n from '../translations';
import type { inputsModel, State } from '../../../../common/store';
import { inputsSelectors } from '../../../../common/store';
-import { TableId } from '../../../../../common/types';
import type { AlertData, EcsHit } from '../../../../detection_engine/rule_exceptions/utils/types';
import { useQueryAlerts } from '../../../containers/detection_engine/alerts/use_query';
import { ALERTS_QUERY_NAMES } from '../../../containers/detection_engine/alerts/constants';
diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/use_add_bulk_to_timeline.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/use_add_bulk_to_timeline.tsx
index 90d412f9c6b7d..b5933a9e0d6b2 100644
--- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/use_add_bulk_to_timeline.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/use_add_bulk_to_timeline.tsx
@@ -11,8 +11,8 @@ import { useDispatch, useSelector } from 'react-redux';
import type { Filter } from '@kbn/es-query';
import { getEsQueryConfig } from '@kbn/data-plugin/public';
import type { BulkActionsConfig } from '@kbn/triggers-actions-ui-plugin/public/types';
+import { dataTableActions, TableId, tableDefaults } from '@kbn/securitysolution-data-table';
import type { CustomBulkAction } from '../../../../../common/types';
-import { TableId } from '../../../../../common/types';
import { combineQueries } from '../../../../common/lib/kuery';
import { useKibana } from '../../../../common/lib/kibana';
import { BULK_ADD_TO_TIMELINE_LIMIT } from '../../../../../common/constants';
@@ -28,10 +28,10 @@ import { INVESTIGATE_BULK_IN_TIMELINE } from '../translations';
import { TimelineId, TimelineType } from '../../../../../common/types/timeline';
import { sendBulkEventsToTimelineAction } from '../actions';
import type { CreateTimelineProps } from '../types';
-import { tableDefaults } from '../../../../common/store/data_table/defaults';
import type { SourcererScopeName } from '../../../../common/store/sourcerer/model';
import type { Direction } from '../../../../../common/search_strategy';
-import { setEventsLoading, setSelected } from '../../../../common/store/data_table/actions';
+
+const { setEventsLoading, setSelected } = dataTableActions;
export interface UseAddBulkToTimelineActionProps {
/* filters being passed to the Alert/events table */
diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.test.tsx
index 21f2a2fbf9daa..3bee45e94712c 100644
--- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.test.tsx
@@ -25,7 +25,7 @@ import { PreviewHistogram } from './preview_histogram';
import { ALL_VALUES_ZEROS_TITLE } from '../../../../common/components/charts/translation';
import { useGetUserCasesPermissions } from '../../../../common/lib/kibana';
import { useTimelineEvents } from '../../../../common/components/events_viewer/use_timelines_events';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { createStore } from '../../../../common/store';
import { mockEventViewerResponse } from '../../../../common/components/events_viewer/mock';
import type { ReactWrapper } from 'enzyme';
diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.tsx
index e56b569716529..ae3c2b8ebbc8c 100644
--- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/preview_histogram.tsx
@@ -13,6 +13,7 @@ import type { Type } from '@kbn/securitysolution-io-ts-alerting-types';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
import type { DataViewBase } from '@kbn/es-query';
import { buildEsQuery } from '@kbn/es-query';
+import { TableId } from '@kbn/securitysolution-data-table';
import { StatefulEventsViewer } from '../../../../common/components/events_viewer';
import { defaultRowRenderers } from '../../../../timelines/components/timeline/body/renderers';
import * as i18n from './translations';
@@ -28,7 +29,6 @@ import { BarChart } from '../../../../common/components/charts/barchart';
import { usePreviewHistogram } from './use_preview_histogram';
import { getAlertsPreviewDefaultModel } from '../../alerts_table/default_config';
import { SourcererScopeName } from '../../../../common/store/sourcerer/model';
-import { TableId } from '../../../../../common/types';
import { DEFAULT_PREVIEW_INDEX } from '../../../../../common/constants';
import { useSourcererDataView } from '../../../../common/containers/sourcerer';
import { DetailsPanel } from '../../../../timelines/components/side_panel';
@@ -241,7 +241,6 @@ export const PreviewHistogram = ({
{
const useCellActions: AlertsTableConfigurationRegistry['useCellActions'] = ({
diff --git a/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_persistent_controls.tsx b/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_persistent_controls.tsx
index b5edf080758d2..78d736e99c93e 100644
--- a/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_persistent_controls.tsx
+++ b/x-pack/plugins/security_solution/public/detections/hooks/trigger_actions_alert_table/use_persistent_controls.tsx
@@ -8,17 +8,21 @@
import React, { useCallback, useMemo } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { isNoneGroup } from '@kbn/securitysolution-grouping';
+import {
+ dataTableSelectors,
+ tableDefaults,
+ dataTableActions,
+} from '@kbn/securitysolution-data-table';
+import type { ViewSelection, TableId } from '@kbn/securitysolution-data-table';
import type { State } from '../../../common/store';
import { useDataTableFilters } from '../../../common/hooks/use_data_table_filters';
-import { dataTableSelectors } from '../../../common/store/data_table';
-import { changeViewMode } from '../../../common/store/data_table/actions';
-import type { ViewSelection, TableId } from '../../../../common/types';
import { useShallowEqualSelector } from '../../../common/hooks/use_selector';
import { RightTopMenu } from '../../../common/components/events_viewer/right_top_menu';
import { AdditionalFiltersAction } from '../../components/alerts_table/additional_filters_action';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
import { groupSelectors } from '../../../common/store/grouping';
+const { changeViewMode } = dataTableActions;
+
export const getPersistentControlsHook = (tableId: TableId) => {
const usePersistentControls = () => {
const dispatch = useDispatch();
diff --git a/x-pack/plugins/security_solution/public/detections/index.ts b/x-pack/plugins/security_solution/public/detections/index.ts
index f5315e03074c8..b93481c0c253b 100644
--- a/x-pack/plugins/security_solution/public/detections/index.ts
+++ b/x-pack/plugins/security_solution/public/detections/index.ts
@@ -6,8 +6,8 @@
*/
import type { Storage } from '@kbn/kibana-utils-plugin/public';
-import type { TableIdLiteral } from '../../common/types';
-import { TableId } from '../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
+import type { TableIdLiteral } from '@kbn/securitysolution-data-table';
import { getDataTablesInStorageByIds } from '../timelines/containers/local_storage';
import { routes } from './routes';
import type { SecuritySubPlugin } from '../app/types';
diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
index 030dd275c8582..0eacecd46e8fc 100644
--- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
+++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/detection_engine.tsx
@@ -25,12 +25,16 @@ import type { Dispatch } from 'redux';
import { isTab } from '@kbn/timelines-plugin/public';
import type { Filter } from '@kbn/es-query';
import type { DocLinks } from '@kbn/doc-links';
+import {
+ dataTableActions,
+ dataTableSelectors,
+ tableDefaults,
+ FILTER_OPEN,
+ TableId,
+} from '@kbn/securitysolution-data-table';
import { ALERTS_TABLE_REGISTRY_CONFIG_IDS } from '../../../../common/constants';
import { useDataTableFilters } from '../../../common/hooks/use_data_table_filters';
import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
-import { FILTER_OPEN, TableId } from '../../../../common/types';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
-import { dataTableActions, dataTableSelectors } from '../../../common/store/data_table';
import { InputsModelId } from '../../../common/store/inputs/constants';
import { useDeepEqualSelector, useShallowEqualSelector } from '../../../common/hooks/use_selector';
import { SecurityPageName } from '../../../app/types';
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.test.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.test.tsx
index 60b18a6393e3c..611c1fb95a995 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.test.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.test.tsx
@@ -27,7 +27,7 @@ import { HostsTableType } from '../../store/model';
import { mockCasesContract } from '@kbn/cases-plugin/public/mocks';
import type { State } from '../../../../common/store';
import { createStore } from '../../../../common/store';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
jest.mock('../../../../common/lib/kibana', () => {
const original = jest.requireActual('../../../../common/lib/kibana');
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.tsx
index ebbd93afeb42d..944a91f821130 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/details_tabs.tsx
@@ -8,6 +8,7 @@
import React from 'react';
import { Switch } from 'react-router-dom';
import { Route } from '@kbn/shared-ux-router';
+import { TableId } from '@kbn/securitysolution-data-table';
import { RiskScoreEntity } from '../../../../../common/search_strategy';
import { RiskDetailsTabBody } from '../../../components/risk_score/risk_details_tab_body';
import { HostsTableType } from '../../store/model';
@@ -24,7 +25,6 @@ import {
UncommonProcessQueryTabBody,
SessionsTabBody,
} from '../navigation';
-import { TableId } from '../../../../../common/types';
export const HostDetailsTabs = React.memo(
({
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/index.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/index.tsx
index c8cc59a01f67d..c70e7df10bd81 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/details/index.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/details/index.tsx
@@ -19,9 +19,7 @@ import { useDispatch } from 'react-redux';
import type { Filter } from '@kbn/es-query';
import { buildEsQuery } from '@kbn/es-query';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
-import { TableId } from '../../../../../common/types';
-import { tableDefaults } from '../../../../common/store/data_table/defaults';
-import { dataTableSelectors } from '../../../../common/store/data_table';
+import { tableDefaults, dataTableSelectors, TableId } from '@kbn/securitysolution-data-table';
import { AlertsByStatus } from '../../../../overview/components/detection_response/alerts_by_status';
import { useSignalIndex } from '../../../../detections/containers/detection_engine/alerts/use_signal_index';
import { useAlertsPrivileges } from '../../../../detections/containers/detection_engine/alerts/use_alerts_privileges';
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx
index 1476fc9ba01da..d35e443916cd1 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx
@@ -14,7 +14,7 @@ import { useParams } from 'react-router-dom';
import type { Filter } from '@kbn/es-query';
import { isTab } from '@kbn/timelines-plugin/public';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
-import { TableId } from '../../../../common/types';
+import { dataTableSelectors, tableDefaults, TableId } from '@kbn/securitysolution-data-table';
import { InputsModelId } from '../../../common/store/inputs/constants';
import { SecurityPageName } from '../../../app/types';
import type { UpdateDateRange } from '../../../common/components/charts/common';
@@ -55,9 +55,7 @@ import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_
import { ID } from '../containers/hosts';
import { LandingPageComponent } from '../../../common/components/landing_page';
import { fieldNameExistsFilter } from '../../../common/components/visualization_actions/utils';
-import { dataTableSelectors } from '../../../common/store/data_table';
import { useLicense } from '../../../common/hooks/use_license';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
/**
* Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space.
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx
index 3069394c002ac..b161e9617fdad 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx
@@ -9,6 +9,7 @@ import React, { useMemo } from 'react';
import { Switch } from 'react-router-dom';
import { Route } from '@kbn/shared-ux-router';
+import { TableId } from '@kbn/securitysolution-data-table';
import type { HostsTabsProps } from './types';
import { HostsTableType } from '../store/model';
import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body';
@@ -22,7 +23,6 @@ import {
UncommonProcessQueryTabBody,
SessionsTabBody,
} from './navigation';
-import { TableId } from '../../../../common/types';
import { fieldNameExistsFilter } from '../../../common/components/visualization_actions/utils';
export const HostsTabs = React.memo(
diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx
index c08c123a7fdf6..f0682817b7493 100644
--- a/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx
+++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx
@@ -6,7 +6,7 @@
*/
import React, { useMemo } from 'react';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { SecurityPageName } from '../../../../app/types';
import { SessionsView } from '../../../../common/components/sessions_viewer';
import { fieldNameExistsFilter } from '../../../../common/components/visualization_actions/utils';
diff --git a/x-pack/plugins/security_solution/public/explore/index.ts b/x-pack/plugins/security_solution/public/explore/index.ts
index 2141cd45e0fcc..17266dae5b2d6 100644
--- a/x-pack/plugins/security_solution/public/explore/index.ts
+++ b/x-pack/plugins/security_solution/public/explore/index.ts
@@ -7,9 +7,9 @@
import type { Storage } from '@kbn/kibana-utils-plugin/public';
import type { AnyAction, Reducer } from 'redux';
+import { TableId } from '@kbn/securitysolution-data-table';
import type { HostsState } from './hosts/store';
import type { UsersState } from './users/store';
-import { TableId } from '../../common/types';
import type { SecuritySubPluginWithStore } from '../app/types';
import { routes } from './routes';
import type { NetworkState } from './network/store';
diff --git a/x-pack/plugins/security_solution/public/explore/network/pages/details/details_tabs.tsx b/x-pack/plugins/security_solution/public/explore/network/pages/details/details_tabs.tsx
index 20570a26724fe..243985846a64e 100644
--- a/x-pack/plugins/security_solution/public/explore/network/pages/details/details_tabs.tsx
+++ b/x-pack/plugins/security_solution/public/explore/network/pages/details/details_tabs.tsx
@@ -11,7 +11,7 @@ import { Switch } from 'react-router-dom';
import { EuiFlexItem, EuiSpacer } from '@elastic/eui';
import type { DataViewBase, Filter } from '@kbn/es-query';
import { Route } from '@kbn/kibana-react-plugin/public';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { AnomaliesNetworkTable } from '../../../../common/components/ml/tables/anomalies_network_table';
import { FlowTargetSourceDest } from '../../../../../common/search_strategy/security_solution/network';
import { EventsQueryTabBody } from '../../../../common/components/events_tab/events_query_tab_body';
diff --git a/x-pack/plugins/security_solution/public/explore/network/pages/navigation/network_routes.tsx b/x-pack/plugins/security_solution/public/explore/network/pages/navigation/network_routes.tsx
index f39522f177c3c..4c217b3c80ba7 100644
--- a/x-pack/plugins/security_solution/public/explore/network/pages/navigation/network_routes.tsx
+++ b/x-pack/plugins/security_solution/public/explore/network/pages/navigation/network_routes.tsx
@@ -11,6 +11,7 @@ import { Route } from '@kbn/shared-ux-router';
import { EuiFlexItem, EuiSpacer } from '@elastic/eui';
+import { TableId } from '@kbn/securitysolution-data-table';
import { FlowTargetSourceDest } from '../../../../../common/search_strategy/security_solution/network';
import {
@@ -24,7 +25,6 @@ import { EventsQueryTabBody } from '../../../../common/components/events_tab';
import { AnomaliesNetworkTable } from '../../../../common/components/ml/tables/anomalies_network_table';
import { sourceOrDestinationIpExistsFilter } from '../../../../common/components/visualization_actions/utils';
import { AnomaliesQueryTabBody } from '../../../../common/containers/anomalies/anomalies_query_tab_body';
-import { TableId } from '../../../../../common/types';
import { ConditionalFlexGroup } from './conditional_flex_group';
import type { NetworkRoutesProps } from './types';
import { NetworkRouteType } from './types';
diff --git a/x-pack/plugins/security_solution/public/explore/network/pages/network.tsx b/x-pack/plugins/security_solution/public/explore/network/pages/network.tsx
index 94ac8197fb625..4ff83f07c2ccb 100644
--- a/x-pack/plugins/security_solution/public/explore/network/pages/network.tsx
+++ b/x-pack/plugins/security_solution/public/explore/network/pages/network.tsx
@@ -14,7 +14,7 @@ import styled from 'styled-components';
import { isTab } from '@kbn/timelines-plugin/public';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
-import { TableId } from '../../../../common/types';
+import { dataTableSelectors, tableDefaults, TableId } from '@kbn/securitysolution-data-table';
import { InputsModelId } from '../../../common/store/inputs/constants';
import { SecurityPageName } from '../../../app/types';
import type { UpdateDateRange } from '../../../common/components/charts/common';
@@ -51,8 +51,6 @@ import { useDeepEqualSelector, useShallowEqualSelector } from '../../../common/h
import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query';
import { sourceOrDestinationIpExistsFilter } from '../../../common/components/visualization_actions/utils';
import { LandingPageComponent } from '../../../common/components/landing_page';
-import { dataTableSelectors } from '../../../common/store/data_table';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
/**
* Need a 100% height here to account for the graph/analyze tool, which sets no explicit height parameters, but fills the available space.
*/
diff --git a/x-pack/plugins/security_solution/public/explore/users/pages/details/details_tabs.tsx b/x-pack/plugins/security_solution/public/explore/users/pages/details/details_tabs.tsx
index 7b9d6904cd491..55712f6d6f631 100644
--- a/x-pack/plugins/security_solution/public/explore/users/pages/details/details_tabs.tsx
+++ b/x-pack/plugins/security_solution/public/explore/users/pages/details/details_tabs.tsx
@@ -9,6 +9,7 @@ import React from 'react';
import { Switch } from 'react-router-dom';
import { Route } from '@kbn/shared-ux-router';
+import { TableId } from '@kbn/securitysolution-data-table';
import { RiskDetailsTabBody } from '../../../components/risk_score/risk_details_tab_body';
import { RiskScoreEntity } from '../../../../../common/search_strategy';
import { UsersTableType } from '../../store/model';
@@ -16,7 +17,6 @@ import { AnomaliesUserTable } from '../../../../common/components/ml/tables/anom
import type { UsersDetailsTabsProps } from './types';
import { AnomaliesQueryTabBody } from '../../../../common/containers/anomalies/anomalies_query_tab_body';
import { usersDetailsPagePath } from '../constants';
-import { TableId } from '../../../../../common/types';
import { EventsQueryTabBody } from '../../../../common/components/events_tab';
import { AuthenticationsQueryTabBody } from '../navigation';
diff --git a/x-pack/plugins/security_solution/public/explore/users/pages/details/index.tsx b/x-pack/plugins/security_solution/public/explore/users/pages/details/index.tsx
index 725f0edb3ed5a..d991a75880f61 100644
--- a/x-pack/plugins/security_solution/public/explore/users/pages/details/index.tsx
+++ b/x-pack/plugins/security_solution/public/explore/users/pages/details/index.tsx
@@ -19,8 +19,7 @@ import { useDispatch } from 'react-redux';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
import type { Filter } from '@kbn/es-query';
import { buildEsQuery } from '@kbn/es-query';
-import { TableId } from '../../../../../common/types';
-import { dataTableSelectors } from '../../../../common/store/data_table';
+import { dataTableSelectors, TableId } from '@kbn/securitysolution-data-table';
import { AlertsByStatus } from '../../../../overview/components/detection_response/alerts_by_status';
import { useSignalIndex } from '../../../../detections/containers/detection_engine/alerts/use_signal_index';
import { AlertCountByRuleByStatus } from '../../../../common/components/alert_count_by_status';
diff --git a/x-pack/plugins/security_solution/public/explore/users/pages/users_tabs.tsx b/x-pack/plugins/security_solution/public/explore/users/pages/users_tabs.tsx
index 0df9a5446e409..14caf9eb82405 100644
--- a/x-pack/plugins/security_solution/public/explore/users/pages/users_tabs.tsx
+++ b/x-pack/plugins/security_solution/public/explore/users/pages/users_tabs.tsx
@@ -9,6 +9,7 @@ import React, { memo } from 'react';
import { Switch } from 'react-router-dom';
import { Route } from '@kbn/shared-ux-router';
+import { TableId } from '@kbn/securitysolution-data-table';
import type { UsersTabsProps } from './types';
import { UsersTableType } from '../store/model';
import { USERS_PATH } from '../../../../common/constants';
@@ -19,7 +20,6 @@ import { AnomaliesUserTable } from '../../../common/components/ml/tables/anomali
import { UserRiskScoreQueryTabBody } from './navigation/user_risk_score_tab_body';
import { EventsQueryTabBody } from '../../../common/components/events_tab';
import { userNameExistsFilter } from './details/helpers';
-import { TableId } from '../../../../common/types';
export const UsersTabs = memo(
({ deleteQuery, filterQuery, from, indexNames, isInitializing, setQuery, to, type }) => {
diff --git a/x-pack/plugins/security_solution/public/helpers.tsx b/x-pack/plugins/security_solution/public/helpers.tsx
index 7a0f918d4e169..433a5e3ab518f 100644
--- a/x-pack/plugins/security_solution/public/helpers.tsx
+++ b/x-pack/plugins/security_solution/public/helpers.tsx
@@ -14,6 +14,7 @@ import { matchPath, Redirect } from 'react-router-dom';
import type { Capabilities, CoreStart } from '@kbn/core/public';
import type { DocLinks } from '@kbn/doc-links';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import { dataTableActions, TableId } from '@kbn/securitysolution-data-table';
import {
ALERTS_PATH,
APP_UI_ID,
@@ -35,8 +36,7 @@ import { SecurityPageName } from './app/types';
import type { InspectResponse, StartedSubPlugins } from './types';
import { CASES_SUB_PLUGIN_KEY } from './types';
import { timelineActions } from './timelines/store/timeline';
-import { dataTableActions } from './common/store/data_table';
-import { TableId, TimelineId } from '../common/types';
+import { TimelineId } from '../common/types';
export const parseRoute = (location: Pick) => {
if (!isEmpty(location.hash)) {
diff --git a/x-pack/plugins/security_solution/public/kubernetes/pages/index.tsx b/x-pack/plugins/security_solution/public/kubernetes/pages/index.tsx
index 63345e4a94629..740a97ceaf95d 100644
--- a/x-pack/plugins/security_solution/public/kubernetes/pages/index.tsx
+++ b/x-pack/plugins/security_solution/public/kubernetes/pages/index.tsx
@@ -8,7 +8,7 @@
import React, { useCallback, useMemo, useState } from 'react';
import { getEsQueryConfig } from '@kbn/data-plugin/common';
import type { ResponseActionButtonProps } from '@kbn/kubernetes-security-plugin/public/types';
-import { TableId } from '../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { InputsModelId } from '../../common/store/inputs/constants';
import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper';
import { useKibana } from '../../common/lib/kibana';
diff --git a/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.test.tsx
index 5297362aa7dca..2488e80359f82 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.test.tsx
@@ -26,7 +26,7 @@ import { GraphOverlay } from '.';
import { createStore } from '../../../common/store';
import { useStateSyncingActions } from '../../../resolver/view/use_state_syncing_actions';
import { SourcererScopeName } from '../../../common/store/sourcerer/model';
-import { TableId } from '../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
jest.mock('../../../common/containers/use_full_screen', () => ({
useGlobalFullScreen: jest.fn(),
diff --git a/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.tsx
index b152a98a0ac00..be925e2a92f3d 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/graph_overlay/index.tsx
@@ -16,6 +16,7 @@ import {
import { euiThemeVars } from '@kbn/ui-theme';
import { useDispatch } from 'react-redux';
import styled, { css } from 'styled-components';
+import { dataTableSelectors, tableDefaults } from '@kbn/securitysolution-data-table';
import {
getScopedActions,
isActiveTimeline,
@@ -34,8 +35,6 @@ import { Resolver } from '../../../resolver/view';
import { useTimelineDataFilters } from '../../containers/use_timeline_data_filters';
import { timelineSelectors } from '../../store/timeline';
import { timelineDefaults } from '../../store/timeline/defaults';
-import { dataTableSelectors } from '../../../common/store/data_table';
-import { tableDefaults } from '../../../common/store/data_table/defaults';
const SESSION_VIEW_FULL_SCREEN = 'sessionViewFullScreen';
diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx
index 77f42e1fb003a..5cde89c82e796 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/hooks/use_detail_panel.tsx
@@ -8,6 +8,7 @@
import React, { useMemo, useCallback, useRef } from 'react';
import { useDispatch } from 'react-redux';
import type { EntityType } from '@kbn/timelines-plugin/common';
+import { dataTableSelectors } from '@kbn/securitysolution-data-table';
import type { ExpandedDetailType } from '../../../../../common/types';
import { getScopedActions, isInTableScope, isTimelineScope } from '../../../../helpers';
import type { FlowTargetSourceDest } from '../../../../../common/search_strategy';
@@ -19,7 +20,6 @@ import { TimelineTabs, TimelineId } from '../../../../../common/types/timeline';
import { timelineDefaults } from '../../../store/timeline/defaults';
import { useDeepEqualSelector } from '../../../../common/hooks/use_selector';
import { DetailsPanel as DetailsPanelComponent } from '..';
-import { dataTableSelectors } from '../../../../common/store/data_table';
export interface UseDetailPanelConfig {
entityType?: EntityType;
diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.tsx
index 1a91d5b0dc895..329de290c19c8 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.tsx
@@ -12,6 +12,7 @@ import { EuiFlyout } from '@elastic/eui';
import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
import type { EntityType } from '@kbn/timelines-plugin/common';
+import { dataTableSelectors } from '@kbn/securitysolution-data-table';
import { getScopedActions, isInTableScope, isTimelineScope } from '../../../helpers';
import { timelineSelectors } from '../../store/timeline';
import { timelineDefaults } from '../../store/timeline/defaults';
@@ -22,7 +23,6 @@ import { EventDetailsPanel } from './event_details';
import { HostDetailsPanel } from './host_details';
import { NetworkDetailsPanel } from './network_details';
import { UserDetailsPanel } from './user_details';
-import { dataTableSelectors } from '../../../common/store/data_table';
interface DetailsPanelProps {
browserFields: BrowserFields;
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx
index 013bf28b8dbfd..42c34a5f06e0e 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx
@@ -8,6 +8,7 @@
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
import React, { useCallback, useMemo, useRef, useState } from 'react';
import { useDispatch } from 'react-redux';
+import { isEventBuildingBlockType } from '@kbn/securitysolution-data-table';
import { useDeepEqualSelector } from '../../../../../common/hooks/use_selector';
import type {
ColumnHeaderOptions,
@@ -22,7 +23,7 @@ import type {
import type { OnRowSelected } from '../../events';
import { STATEFUL_EVENT_CSS_CLASS_NAME } from '../../helpers';
import { EventsTrGroup, EventsTrSupplement, EventsTrSupplementContainer } from '../../styles';
-import { isEventBuildingBlockType, getEventType, isEvenEqlSequence } from '../helpers';
+import { getEventType, isEvenEqlSequence } from '../helpers';
import { NoteCards } from '../../../notes/note_cards';
import { useEventDetailsWidthContext } from '../../../../../common/components/events_viewer/event_details_width_context';
import { EventColumnView } from './event_column_view';
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/alert_field/alert_field_badge/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/alert_field/alert_field_badge/index.test.tsx
index 621c9a5667aa8..6a90d8bdaf06e 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/alert_field/alert_field_badge/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/alert_field/alert_field_badge/index.test.tsx
@@ -9,7 +9,7 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../../../../../../common/mock';
-import { TableId } from '../../../../../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { AlertFieldBadge } from '.';
const contextId = 'test';
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/helpers/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/helpers/index.test.tsx
index 18d29bfc3d844..ac7e5d585fd51 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/helpers/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/alert_renderer/helpers/index.test.tsx
@@ -10,8 +10,9 @@ import React from 'react';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
import { TestProviders } from '../../../../../../../common/mock';
-import { TableId, TimelineId } from '../../../../../../../../common/types';
import { AlertFieldFlexGroup, DEFAULT_GAP, eventKindMatches, showWith } from '.';
+import { TimelineId } from '../../../../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
describe('helpers', () => {
describe('eventKindMatches', () => {
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.test.tsx
index 93c53484236a0..2795f46bd2065 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.test.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.test.tsx
@@ -14,11 +14,12 @@ import { reasonColumnRenderer } from './reason_column_renderer';
import { plainColumnRenderer } from './plain_column_renderer';
import type { ColumnHeaderOptions, RowRenderer } from '../../../../../../common/types';
-import { TableId, RowRendererId } from '../../../../../../common/types';
import { render } from '@testing-library/react';
import { TestProviders } from '@kbn/timelines-plugin/public/mock';
import { cloneDeep } from 'lodash';
+import { RowRendererId } from '@kbn/timelines-plugin/common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
jest.mock('./plain_column_renderer');
jest.mock('../../../../../common/components/link_to', () => {
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.tsx
index d252989e7a14b..97e5c3fe5f033 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/reason_column_renderer.tsx
@@ -10,8 +10,8 @@ import { isEqual } from 'lodash/fp';
import React, { useMemo } from 'react';
import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs';
+import { TableId } from '@kbn/securitysolution-data-table';
import type { ColumnHeaderOptions, RowRenderer } from '../../../../../../common/types';
-import { TableId } from '../../../../../../common/types';
import type { ColumnRenderer } from './column_renderer';
import { REASON_FIELD_NAME } from './constants';
import { getRowRenderer } from './get_row_renderer';
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.test.tsx
index 62229afb142e8..805cb5bf03e8e 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.test.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.test.tsx
@@ -18,7 +18,7 @@ import {
useGlobalFullScreen,
} from '../../../../common/containers/use_full_screen';
import { useSessionView, useSessionViewNavigation } from './use_session_view';
-import { TableId } from '../../../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
const mockDispatch = jest.fn();
jest.mock('../../../../common/hooks/use_selector');
diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.tsx
index ea50c956af48f..12454a79f1b10 100644
--- a/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/session_tab_content/use_session_view.tsx
@@ -10,7 +10,8 @@ import { EuiButtonEmpty, EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiToolTip }
import styled from 'styled-components';
import type { EntityType } from '@kbn/timelines-plugin/common';
import { useDispatch } from 'react-redux';
-import type { TableId } from '../../../../../common/types/data_table';
+import { dataTableSelectors, tableDefaults } from '@kbn/securitysolution-data-table';
+import type { TableId } from '@kbn/securitysolution-data-table';
import {
getScopedActions,
isActiveTimeline,
@@ -38,8 +39,6 @@ import { useUserPrivileges } from '../../../../common/components/user_privileges
import { timelineActions, timelineSelectors } from '../../../store/timeline';
import { timelineDefaults } from '../../../store/timeline/defaults';
import { useDeepEqualSelector } from '../../../../common/hooks/use_selector';
-import { dataTableSelectors } from '../../../../common/store/data_table';
-import { tableDefaults } from '../../../../common/store/data_table/defaults';
const FullScreenButtonIcon = styled(EuiButtonIcon)`
margin: 4px 0 4px 0;
diff --git a/x-pack/plugins/security_solution/public/timelines/containers/helpers.test.ts b/x-pack/plugins/security_solution/public/timelines/containers/helpers.test.ts
index aaabc253ed52f..dc13b2728de68 100644
--- a/x-pack/plugins/security_solution/public/timelines/containers/helpers.test.ts
+++ b/x-pack/plugins/security_solution/public/timelines/containers/helpers.test.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { TableId } from '../../../common/types';
+import { TableId } from '@kbn/securitysolution-data-table';
import { TimelineId } from '../../../common/types/timeline';
import { skipQueryForDetectionsPage } from './helpers';
diff --git a/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts b/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts
index 42faed90559be..0a644bed44d8b 100644
--- a/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts
+++ b/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts
@@ -5,8 +5,8 @@
* 2.0.
*/
+import { TableId } from '@kbn/securitysolution-data-table';
import type { TimelineResult } from '../../../common/types';
-import { TableId } from '../../../common/types';
import { DEFAULT_ALERTS_INDEX } from '../../../common/constants';
export const getTimelineQueryTypes = (timeline: TimelineResult) => ({
diff --git a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.test.ts b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.test.ts
index b4383385ce256..cf14653a59508 100644
--- a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.test.ts
+++ b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.test.ts
@@ -19,10 +19,9 @@ import {
import { mockDataTableModel, createSecuritySolutionStorageMock } from '../../../common/mock';
import { useKibana } from '../../../common/lib/kibana';
-import type { DataTableModel } from '../../../common/store/data_table/model';
-import { TableId } from '../../../../common/types';
import { VIEW_SELECTION } from '../../../../common/constants';
-import type { DataTableState } from '../../../common/store/data_table/types';
+import type { DataTableModel, DataTableState } from '@kbn/securitysolution-data-table';
+import { TableId } from '@kbn/securitysolution-data-table';
jest.mock('../../../common/lib/kibana');
diff --git a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.tsx
index a234fd46dc5f2..727239ea2d894 100644
--- a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.tsx
+++ b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/index.tsx
@@ -7,13 +7,16 @@
import { isEmpty } from 'lodash/fp';
import type { Storage } from '@kbn/kibana-utils-plugin/public';
-import { TableId } from '../../../../common/types/data_table';
-import type { DataTableState } from '../../../common/store/data_table/types';
+import type {
+ DataTableState,
+ DataTableModel,
+ TableIdLiteral,
+} from '@kbn/securitysolution-data-table';
+import { TableId } from '@kbn/securitysolution-data-table';
+import type { ColumnHeaderOptions } from '@kbn/timelines-plugin/common';
import { ALERTS_TABLE_REGISTRY_CONFIG_IDS, VIEW_SELECTION } from '../../../../common/constants';
-import type { ColumnHeaderOptions, TableIdLiteral } from '../../../../common/types';
import type { DataTablesStorage } from './types';
import { useKibana } from '../../../common/lib/kibana';
-import type { DataTableModel } from '../../../common/store/data_table/model';
export const LOCAL_STORAGE_TABLE_KEY = 'securityDataTable';
const LOCAL_STORAGE_TIMELINE_KEY_LEGACY = 'timelines';
diff --git a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/types.ts b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/types.ts
index 8c439a74c7858..7eb56e844fed5 100644
--- a/x-pack/plugins/security_solution/public/timelines/containers/local_storage/types.ts
+++ b/x-pack/plugins/security_solution/public/timelines/containers/local_storage/types.ts
@@ -5,8 +5,7 @@
* 2.0.
*/
-import type { TableIdLiteral } from '../../../../common/types';
-import type { DataTableModel } from '../../../common/store/data_table/model';
+import type { TableIdLiteral, DataTableModel } from '@kbn/securitysolution-data-table';
export interface DataTablesStorage {
getAllDataTables: () => Record;
diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/types.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/types.ts
index 3fb42e99a032f..539d5df6beb34 100644
--- a/x-pack/plugins/security_solution/public/timelines/store/timeline/types.ts
+++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/types.ts
@@ -11,11 +11,11 @@ import type { Observable } from 'rxjs';
import type { Storage } from '@kbn/kibana-utils-plugin/public';
import type { CoreStart } from '@kbn/core/public';
import type { FilterManager } from '@kbn/data-plugin/public';
+import type { TableById } from '@kbn/securitysolution-data-table';
import type {
ColumnHeaderOptions,
RowRendererId,
SortColumnTimeline,
- TableById,
} from '../../../../common/types';
import type { inputsModel } from '../../../common/store/inputs';
import type { NotesById } from '../../../common/store/app/model';
diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts b/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts
index 84963b78ab4ef..2a852292d60f3 100644
--- a/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts
+++ b/x-pack/plugins/security_solution/server/lib/telemetry/filterlists/endpoint_alerts.ts
@@ -22,6 +22,7 @@ const baseAllowlistFields: AllowlistFields = {
uptime: true,
Ext: {
ancestry: true,
+ api: true,
architecture: true,
code_signature: true,
dll: true,
diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json
index 2693e8d78b593..4d179e84f6dcb 100644
--- a/x-pack/plugins/security_solution/tsconfig.json
+++ b/x-pack/plugins/security_solution/tsconfig.json
@@ -1,7 +1,7 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
- "outDir": "target/types",
+ "outDir": "target/types"
},
"include": [
"common/**/*",
@@ -19,7 +19,7 @@
"target/**/*",
"**/cypress/**",
"public/management/cypress_endpoint.config.ts",
- "public/management/cypress.config.ts",
+ "public/management/cypress.config.ts"
],
"kbn_references": [
"@kbn/core",
@@ -147,10 +147,11 @@
"@kbn/alerts-as-data-utils",
"@kbn/expandable-flyout",
"@kbn/securitysolution-grouping",
+ "@kbn/securitysolution-data-table",
"@kbn/saved-objects-management-plugin",
"@kbn/core-analytics-server",
"@kbn/analytics-client",
"@kbn/security-solution-side-nav",
- "@kbn/core-lifecycle-browser",
+ "@kbn/core-lifecycle-browser"
]
}
diff --git a/x-pack/plugins/session_view/common/types/process_tree/index.ts b/x-pack/plugins/session_view/common/types/process_tree/index.ts
index 4d8808d53999d..264d1685908ae 100644
--- a/x-pack/plugins/session_view/common/types/process_tree/index.ts
+++ b/x-pack/plugins/session_view/common/types/process_tree/index.ts
@@ -191,7 +191,7 @@ export interface ProcessEvent {
'@timestamp'?: string;
event?: {
kind?: EventKind;
- category?: string[];
+ category?: string | string[];
action?: EventAction | EventAction[];
id?: string;
};
diff --git a/x-pack/plugins/session_view/kibana.jsonc b/x-pack/plugins/session_view/kibana.jsonc
index 647990ab6a977..47585565fffde 100644
--- a/x-pack/plugins/session_view/kibana.jsonc
+++ b/x-pack/plugins/session_view/kibana.jsonc
@@ -1,7 +1,7 @@
{
"type": "plugin",
"id": "@kbn/session-view-plugin",
- "owner": "@elastic/awp-viz",
+ "owner": "@elastic/sec-cloudnative-integrations",
"plugin": {
"id": "sessionView",
"server": true,
diff --git a/x-pack/plugins/session_view/public/components/detail_panel_alert_list_item/index.tsx b/x-pack/plugins/session_view/public/components/detail_panel_alert_list_item/index.tsx
index e6f68ce6ae230..cf1da761fde96 100644
--- a/x-pack/plugins/session_view/public/components/detail_panel_alert_list_item/index.tsx
+++ b/x-pack/plugins/session_view/public/components/detail_panel_alert_list_item/index.tsx
@@ -64,7 +64,9 @@ export const DetailPanelAlertListItem = ({
const { args, name: processName } = event.process ?? {};
const { event: processEvent } = event;
const forceState = !isInvestigated ? 'open' : undefined;
- const category = processEvent?.category?.[0];
+ const category = Array.isArray(processEvent?.category)
+ ? processEvent?.category?.[0]
+ : processEvent?.category;
const processEventAlertCategory = category ?? ProcessEventAlertCategory.process;
const alertCategoryDetailDisplayText =
category !== ProcessEventAlertCategory.process
diff --git a/x-pack/plugins/session_view/public/components/process_tree/helpers.ts b/x-pack/plugins/session_view/public/components/process_tree/helpers.ts
index 349a162d6b612..830306af4864f 100644
--- a/x-pack/plugins/session_view/public/components/process_tree/helpers.ts
+++ b/x-pack/plugins/session_view/public/components/process_tree/helpers.ts
@@ -266,6 +266,20 @@ export const autoExpandProcessTree = (processMap: ProcessMap, jumpToEntityId?: s
return processMap;
};
+// recusively collapses all children below provided node
+export const collapseProcessTree = (node: Process) => {
+ if (!node.autoExpand) {
+ return;
+ }
+
+ if (node.children) {
+ node.children.forEach((child) => {
+ child.autoExpand = false;
+ collapseProcessTree(child);
+ });
+ }
+};
+
export const processNewEvents = (
eventsProcessMap: ProcessMap,
events: ProcessEvent[] | undefined,
diff --git a/x-pack/plugins/session_view/public/components/process_tree/index.tsx b/x-pack/plugins/session_view/public/components/process_tree/index.tsx
index 9ba3845d0cab0..9dea1e07a8fdb 100644
--- a/x-pack/plugins/session_view/public/components/process_tree/index.tsx
+++ b/x-pack/plugins/session_view/public/components/process_tree/index.tsx
@@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n';
import { ProcessTreeNode } from '../process_tree_node';
import { BackToInvestigatedAlert } from '../back_to_investigated_alert';
import { useProcessTree } from './hooks';
+import { collapseProcessTree } from './helpers';
import { ProcessTreeLoadMoreButton } from '../process_tree_load_more_button';
import {
AlertStatusEventEntityIdMap,
@@ -97,6 +98,7 @@ export const ProcessTree = ({
verboseMode,
jumpToEntityId,
});
+ const [forceRerender, setForceRerender] = useState(0);
const eventsRemaining = useMemo(() => {
const total = data?.[0]?.total || 0;
@@ -126,6 +128,14 @@ export const ProcessTree = ({
setIsInvestigatedEventVisible(true);
}, [onProcessSelected]);
+ const handleCollapseProcessTree = useCallback(() => {
+ collapseProcessTree(sessionLeader);
+ if (scrollerRef.current) {
+ scrollerRef.current.scrollTop = 0;
+ }
+ setForceRerender(Math.random());
+ }, [sessionLeader]);
+
useEffect(() => {
if (setSearchResults) {
setSearchResults(searchResults);
@@ -160,6 +170,7 @@ export const ProcessTree = ({
ref={scrollerRef}
css={styles.sessionViewProcessTree}
data-test-subj="sessionView:sessionViewProcessTree"
+ key={forceRerender}
>
{sessionLeader && (
{
overflow: 'auto',
height: '100%',
backgroundColor: euiVars.euiColorLightestShade,
- paddingTop: size.base,
- paddingLeft: size.s,
};
const selectionArea: CSSObject = {
diff --git a/x-pack/plugins/session_view/public/components/process_tree_alert/__snapshots__/index.test.tsx.snap b/x-pack/plugins/session_view/public/components/process_tree_alert/__snapshots__/index.test.tsx.snap
index c2b05ef38a3e0..39e1778dd1f4a 100644
--- a/x-pack/plugins/session_view/public/components/process_tree_alert/__snapshots__/index.test.tsx.snap
+++ b/x-pack/plugins/session_view/public/components/process_tree_alert/__snapshots__/index.test.tsx.snap
@@ -54,6 +54,7 @@ Object {
>
cmd test alert
+
cmd test alert
+
{
renderResult = mockedContext.render(
);
expect(renderResult.container.textContent?.replace(/\s+/g, ' ')).toEqual(
- ' bash started by vagrant'
+ ' bash started by vagrant '
);
});
diff --git a/x-pack/plugins/session_view/public/components/process_tree_node/index.tsx b/x-pack/plugins/session_view/public/components/process_tree_node/index.tsx
index fa5c16bee19bd..6ffc4415fb47b 100644
--- a/x-pack/plugins/session_view/public/components/process_tree_node/index.tsx
+++ b/x-pack/plugins/session_view/public/components/process_tree_node/index.tsx
@@ -20,7 +20,7 @@ import React, {
RefObject,
ReactElement,
} from 'react';
-import { EuiButton, EuiIcon, EuiToolTip, formatDate } from '@elastic/eui';
+import { EuiButton, EuiIcon, EuiToolTip, formatDate, EuiButtonIcon } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import { chain } from 'lodash';
@@ -61,6 +61,7 @@ export interface ProcessDeps {
onJumpToOutput: (entityId: string) => void;
loadNextButton?: ReactElement | null;
loadPreviousButton?: ReactElement | null;
+ handleCollapseProcessTree?: () => void;
}
/**
@@ -83,6 +84,7 @@ export function ProcessTreeNode({
onJumpToOutput,
loadPreviousButton,
loadNextButton,
+ handleCollapseProcessTree,
}: ProcessDeps) {
const [childrenExpanded, setChildrenExpanded] = useState(isSessionLeader || process.autoExpand);
const [alertsExpanded, setAlertsExpanded] = useState(false);
@@ -133,7 +135,15 @@ export function ProcessTreeNode({
const alertTypeCounts = useMemo(() => {
const alertCounts: AlertTypeCount[] = chain(alerts)
- .groupBy((alert) => alert.event?.category?.[0])
+ .groupBy((alert) => {
+ const category = alert.event?.category;
+
+ if (Array.isArray(category)) {
+ return category?.[0];
+ }
+
+ return category;
+ })
.map((processAlerts, alertCategory) => ({
category: alertCategory as ProcessEventAlertCategory,
count: processAlerts.length,
@@ -176,8 +186,12 @@ export function ProcessTreeNode({
}
onProcessSelected?.(process);
+
+ if (isSessionLeader && scrollerRef.current) {
+ scrollerRef.current.scrollTop = 0;
+ }
},
- [onProcessSelected, process]
+ [isSessionLeader, onProcessSelected, process, scrollerRef]
);
const processDetails = process.getDetails();
@@ -219,6 +233,19 @@ export function ProcessTreeNode({
const children = process.getChildren(verboseMode);
+ const user = processDetails?.process?.user;
+ const userName = useMemo(() => {
+ if (user?.name) {
+ return user.name;
+ } else if (user?.id === '0') {
+ return 'root';
+ } else if (user?.id) {
+ return `uid: ${user?.id}`;
+ }
+
+ return '-';
+ }, [user?.id, user?.name]);
+
if (!processDetails?.process) {
return null;
}
@@ -231,7 +258,6 @@ export function ProcessTreeNode({
parent,
working_directory: workingDirectory,
start,
- user,
} = processDetails.process;
const shouldRenderChildren = isSessionLeader || (childrenExpanded && children?.length > 0);
@@ -275,7 +301,14 @@ export function ProcessTreeNode({
-
{user?.name || 'ID: ' + user?.id}
+
{userName}
+
+
) : (
<>
diff --git a/x-pack/plugins/session_view/public/components/process_tree_node/styles.ts b/x-pack/plugins/session_view/public/components/process_tree_node/styles.ts
index 3936fc35aac81..32048cfd97585 100644
--- a/x-pack/plugins/session_view/public/components/process_tree_node/styles.ts
+++ b/x-pack/plugins/session_view/public/components/process_tree_node/styles.ts
@@ -95,7 +95,6 @@ export const useStyles = ({
display: 'block',
cursor: 'pointer',
position: 'relative',
- marginBottom: isSessionLeader ? size.s : '0px',
'&:hover:before': {
backgroundColor: hoverColor,
},
@@ -114,6 +113,10 @@ export const useStyles = ({
},
};
+ const jumpToTop: CSSObject = {
+ float: 'right',
+ };
+
const textSection: CSSObject = {
marginLeft: size.s,
span: {
@@ -131,13 +134,23 @@ export const useStyles = ({
display: 'inline-block',
verticalAlign: 'middle',
},
+ paddingLeft: PROCESS_TREE_LEFT_PADDING,
};
- const searchHighlight = `
- color: ${colors.fullShade};
- border-radius: '0px';
- background-color: ${searchResColor};
- `;
+ if (isSessionLeader) {
+ processNode.position = 'sticky';
+ processNode.top = '-' + size.base;
+ processNode.zIndex = 1;
+ processNode.borderTop = `${size.base} solid transparent`;
+ processNode.backgroundColor = euiVars.euiColorLightestShade;
+ processNode.borderBottom = border.editable;
+ }
+
+ const searchHighlight: CSSObject = {
+ color: colors.fullShade,
+ borderRadius: '0px',
+ backgroundColor: searchResColor,
+ };
const wrapper: CSSObject = {
paddingLeft: size.s,
@@ -188,6 +201,7 @@ export const useStyles = ({
icon,
textSection,
sessionLeader,
+ jumpToTop,
};
}, [depth, euiTheme, hasAlerts, hasInvestigatedAlert, isSelected, euiVars, isSessionLeader]);
diff --git a/x-pack/plugins/session_view/public/components/process_tree_node/text_highlight.tsx b/x-pack/plugins/session_view/public/components/process_tree_node/text_highlight.tsx
index 6d21726e0d430..c06b208e6c262 100644
--- a/x-pack/plugins/session_view/public/components/process_tree_node/text_highlight.tsx
+++ b/x-pack/plugins/session_view/public/components/process_tree_node/text_highlight.tsx
@@ -20,7 +20,6 @@ const css: CSSObject = {
display: 'inline',
fontSize: 0,
lineHeight: 0,
- verticalAlign: 'middle',
},
};
// Component that takes an array of matching indices in a text and pass down a highlight
diff --git a/x-pack/plugins/session_view/public/components/session_view/index.tsx b/x-pack/plugins/session_view/public/components/session_view/index.tsx
index 955b042ff9cfb..5f52f5ff8e935 100644
--- a/x-pack/plugins/session_view/public/components/session_view/index.tsx
+++ b/x-pack/plugins/session_view/public/components/session_view/index.tsx
@@ -201,6 +201,10 @@ export const SessionView = ({
[onProcessSelected, searchResults]
);
+ useEffect(() => {
+ onSearchIndexChange(0);
+ }, [onSearchIndexChange, searchResults]);
+
const handleOnAlertDetailsClosed = useCallback((alertUuid: string) => {
setFetchAlertStatus([alertUuid]);
}, []);
diff --git a/x-pack/plugins/session_view/public/utils/alert_category_display_test.test.ts b/x-pack/plugins/session_view/public/utils/alert_category_display_test.test.ts
index 24b474111b860..fdc5cbedfd82e 100644
--- a/x-pack/plugins/session_view/public/utils/alert_category_display_test.test.ts
+++ b/x-pack/plugins/session_view/public/utils/alert_category_display_test.test.ts
@@ -21,24 +21,22 @@ describe('getAlertCategoryDisplayText(alert, category)', () => {
it('should display rule name when alert category is process', () => {
expect(getAlertCategoryDisplayText(mockAlerts[0], ProcessEventAlertCategory.process)).toEqual(
- undefined
+ ''
);
});
it('should display rule name when alert category is undefined', () => {
- expect(getAlertCategoryDisplayText(mockAlerts[0], undefined)).toEqual(undefined);
+ expect(getAlertCategoryDisplayText(mockAlerts[0], undefined)).toEqual('');
});
it('should display rule name when file path is undefined', () => {
const fileAlert = { ...mockFileAlert, file: {} };
- expect(getAlertCategoryDisplayText(fileAlert, ProcessEventAlertCategory.file)).toEqual(
- undefined
- );
+ expect(getAlertCategoryDisplayText(fileAlert, ProcessEventAlertCategory.file)).toEqual('');
});
it('should display rule name when destination address is undefined and alert category is network', () => {
const networkAlert = { ...mockNetworkAlert, destination: undefined };
expect(getAlertCategoryDisplayText(networkAlert, ProcessEventAlertCategory.network)).toEqual(
- undefined
+ ''
);
});
});
diff --git a/x-pack/plugins/session_view/public/utils/alert_category_display_text.ts b/x-pack/plugins/session_view/public/utils/alert_category_display_text.ts
index 3ac2658f37e28..bf4c74681a2be 100644
--- a/x-pack/plugins/session_view/public/utils/alert_category_display_text.ts
+++ b/x-pack/plugins/session_view/public/utils/alert_category_display_text.ts
@@ -19,7 +19,7 @@ export const getAlertCategoryDisplayText = (alert: ProcessEvent, category: strin
if (filePath && category === ProcessEventAlertCategory.file) return dataOrDash(filePath);
if (destination?.address && category === ProcessEventAlertCategory.network)
return dataOrDash(getAlertNetworkDisplay(destination));
- return;
+ return '';
};
export const getAlertNetworkDisplay = (destination: ProcessEventIPAddress) => {
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/email/index.test.ts b/x-pack/plugins/stack_connectors/server/connector_types/email/index.test.ts
index 05f080d8c0b3e..ef504b70ec942 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/email/index.test.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/email/index.test.ts
@@ -523,6 +523,10 @@ describe('execute()', () => {
logger: mockedLogger,
};
+ beforeEach(() => {
+ executorOptions.configurationUtilities = actionsConfigMock.create();
+ });
+
test('ensure parameters are as expected', async () => {
sendEmailMock.mockReset();
const result = await connectorType.executor(executorOptions);
@@ -540,7 +544,7 @@ describe('execute()', () => {
"content": Object {
"message": "a message to you
- --
+ ---
This message was sent by Elastic.",
"subject": "the subject",
@@ -591,7 +595,7 @@ describe('execute()', () => {
"content": Object {
"message": "a message to you
- --
+ ---
This message was sent by Elastic.",
"subject": "the subject",
@@ -642,7 +646,7 @@ describe('execute()', () => {
"content": Object {
"message": "a message to you
- --
+ ---
This message was sent by Elastic.",
"subject": "the subject",
@@ -738,6 +742,28 @@ describe('execute()', () => {
`);
});
+ test('provides no footer link when enableFooterInEmail is false', async () => {
+ const customExecutorOptions: EmailConnectorTypeExecutorOptions = {
+ ...executorOptions,
+ configurationUtilities: {
+ ...configurationUtilities,
+ enableFooterInEmail: jest.fn().mockReturnValue(false),
+ },
+ };
+
+ const connectorTypeWithPublicUrl = getConnectorType({
+ publicBaseUrl: 'https://localhost:1234/foo/bar',
+ });
+
+ await connectorTypeWithPublicUrl.executor(customExecutorOptions);
+
+ expect(customExecutorOptions.configurationUtilities.enableFooterInEmail).toHaveBeenCalledTimes(
+ 1
+ );
+ const sendMailCall = sendEmailMock.mock.calls[0][1];
+ expect(sendMailCall.content.message).toMatchInlineSnapshot(`"a message to you"`);
+ });
+
test('provides a footer link to Elastic when publicBaseUrl is defined', async () => {
const connectorTypeWithPublicUrl = getConnectorType({
publicBaseUrl: 'https://localhost:1234/foo/bar',
@@ -750,7 +776,7 @@ describe('execute()', () => {
expect(sendMailCall.content.message).toMatchInlineSnapshot(`
"a message to you
- --
+ ---
This message was sent by Elastic. [Go to Elastic](https://localhost:1234/foo/bar)."
`);
@@ -779,7 +805,7 @@ describe('execute()', () => {
expect(sendMailCall.content.message).toMatchInlineSnapshot(`
"a message to you
- --
+ ---
This message was sent by Elastic. [View this in Elastic](https://localhost:1234/foo/bar/my/app)."
`);
diff --git a/x-pack/plugins/stack_connectors/server/connector_types/email/index.ts b/x-pack/plugins/stack_connectors/server/connector_types/email/index.ts
index 17669a5a32329..11f18b2ca3c9d 100644
--- a/x-pack/plugins/stack_connectors/server/connector_types/email/index.ts
+++ b/x-pack/plugins/stack_connectors/server/connector_types/email/index.ts
@@ -54,7 +54,7 @@ export const ELASTIC_CLOUD_SERVICE: SMTPConnection.Options = {
secure: false,
};
-const EMAIL_FOOTER_DIVIDER = '\n\n--\n\n';
+const EMAIL_FOOTER_DIVIDER = '\n\n---\n\n';
const ConfigSchemaProps = {
service: schema.string({ defaultValue: 'other' }),
@@ -319,10 +319,14 @@ async function executor(
transport.service = config.service;
}
- const footerMessage = getFooterMessage({
- publicBaseUrl,
- kibanaFooterLink: params.kibanaFooterLink,
- });
+ let actualMessage = params.message;
+ if (configurationUtilities.enableFooterInEmail()) {
+ const footerMessage = getFooterMessage({
+ publicBaseUrl,
+ kibanaFooterLink: params.kibanaFooterLink,
+ });
+ actualMessage = `${params.message}${EMAIL_FOOTER_DIVIDER}${footerMessage}`;
+ }
const sendEmailOptions: SendEmailOptions = {
connectorId: actionId,
@@ -335,7 +339,7 @@ async function executor(
},
content: {
subject: params.subject,
- message: `${params.message}${EMAIL_FOOTER_DIVIDER}${footerMessage}`,
+ message: actualMessage,
},
hasAuth: config.hasAuth,
configurationUtilities,
diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
index 12d9a94fdf16a..2fe96c961f5d1 100644
--- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
+++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx
@@ -1120,12 +1120,12 @@ export const FIELD = (readOnly?: boolean): FieldMap => ({
label: i18n.translate('xpack.synthetics.monitorConfig.textAssertion.label', {
defaultMessage: 'Text assertion',
}),
- required: true,
+ required: false,
helpText: i18n.translate('xpack.synthetics.monitorConfig.textAssertion.helpText', {
defaultMessage: 'Consider the page loaded when the specified text is rendered.',
}),
validation: () => ({
- required: true,
+ required: false,
}),
props: (): EuiFieldTextProps => ({
readOnly,
diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
index e7a42d067533a..f38149d6d6e75 100644
--- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
+++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.ts
@@ -24,14 +24,15 @@ export const ALLOWED_FIELDS = [ConfigKey.ENABLED, ConfigKey.ALERT_CONFIG];
export const format = (fields: Record
, readOnly: boolean = false) => {
const formattedFields = formatter(fields) as MonitorFields;
+ const textAssertion = formattedFields[ConfigKey.TEXT_ASSERTION]
+ ? `
+ await page.getByText('${formattedFields[ConfigKey.TEXT_ASSERTION]}').first().waitFor();`
+ : ``;
const formattedMap = {
[FormMonitorType.SINGLE]: {
...formattedFields,
[ConfigKey.SOURCE_INLINE]: `step('Go to ${formattedFields[ConfigKey.URLS]}', async () => {
- await page.goto('${formattedFields[ConfigKey.URLS]}');
- expect(await page.isVisible('text=${
- formattedFields[ConfigKey.TEXT_ASSERTION]
- }')).toBeTruthy();
+ await page.goto('${formattedFields[ConfigKey.URLS]}');${textAssertion}
});`,
[ConfigKey.FORM_MONITOR_TYPE]: FormMonitorType.SINGLE,
},
diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json
index e71e35dc488b8..3756275f49b70 100644
--- a/x-pack/plugins/translations/translations/fr-FR.json
+++ b/x-pack/plugins/translations/translations/fr-FR.json
@@ -10679,7 +10679,6 @@
"xpack.csp.findings.distributionBar.totalPassedLabel": "Réussite des résultats",
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "Une erreur s’est produite lors de la récupération des résultats de recherche.",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "Afficher le message d'erreur",
- "xpack.csp.findings.findingsByResource.noFindingsTitle": "Il n'y a aucun résultat",
"xpack.csp.findings.findingsByResource.tableRowTypeLabel": "Ressources",
"xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "Sections CIS",
"xpack.csp.findings.findingsErrorToast.searchFailedTitle": "Échec de la recherche",
@@ -10728,10 +10727,8 @@
"xpack.csp.findings.groupBySelector.groupByLabel": "Regrouper par",
"xpack.csp.findings.groupBySelector.groupByNoneLabel": "Aucun",
"xpack.csp.findings.groupBySelector.groupByResourceIdLabel": "Ressource",
- "xpack.csp.findings.latestFindings.noFindingsTitle": "Il n'y a aucun résultat",
"xpack.csp.findings.latestFindings.tableRowTypeLabel": "Résultats",
"xpack.csp.findings.resourceFindings.backToResourcesPageButtonLabel": "Retour aux ressources",
- "xpack.csp.findings.resourceFindings.noFindingsTitle": "Il n'y a aucun résultat",
"xpack.csp.findings.resourceFindings.tableRowTypeLabel": "Résultats",
"xpack.csp.findings.resourceFindingsSharedValues.clusterIdTitle": "ID cluster",
"xpack.csp.findings.resourceFindingsSharedValues.resourceIdTitle": "ID ressource",
@@ -13186,7 +13183,6 @@
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.sslCertificateLabel": "Certificat SSL",
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.usernameLabel": "Nom d'utilisateur",
"xpack.enterpriseSearch.nativeConnectors.mysql.name": "MySQL",
- "xpack.enterpriseSearch.nav.analyticsCollectionsTitle": "Collections",
"xpack.enterpriseSearch.nav.analyticsTitle": "Behavioral Analytics",
"xpack.enterpriseSearch.nav.appSearchTitle": "App Search",
"xpack.enterpriseSearch.nav.contentSettingsTitle": "Paramètres",
@@ -13196,11 +13192,9 @@
"xpack.enterpriseSearch.nav.engine.indicesTitle": "Index",
"xpack.enterpriseSearch.nav.engine.overviewTitle": "Aperçu",
"xpack.enterpriseSearch.nav.engine.schemaTitle": "Schéma",
- "xpack.enterpriseSearch.nav.enginesTitle": "Moteurs",
"xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "Aperçu",
"xpack.enterpriseSearch.nav.searchExperiencesTitle": "Expériences de recherche",
"xpack.enterpriseSearch.nav.searchIndicesTitle": "Index",
- "xpack.enterpriseSearch.nav.searchTitle": "Recherche",
"xpack.enterpriseSearch.nav.standaloneExperiencesTitle": "Expériences autonomes",
"xpack.enterpriseSearch.nav.workplaceSearchTitle": "Workplace Search",
"xpack.enterpriseSearch.notFound.action1": "Retour à votre tableau de bord",
@@ -14301,12 +14295,10 @@
"xpack.fleet.fleetServerLanding.instructions": "Un serveur Fleet est nécessaire pour enregistrer des agents avec Fleet. Suivez les instructions ci-après pour configurer un serveur Fleet. Pour en savoir plus, consultez {userGuideLink}",
"xpack.fleet.fleetServerOnPremRequiredCallout.calloutDescription": "Suivez les instructions ci-après pour configurer un serveur Fleet. Pour en savoir plus, consultez {guideLink}.",
"xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutDescription": "Un serveur Fleet intègre est nécessaire pour enregistrer des agents avec Fleet. Pour en savoir plus, consultez {guideLink}.",
- "xpack.fleet.fleetServerSetup.addFleetServerHostStepDescription": "Tout d'abord, définissez l'IP public ou le nom d'hôte et le port que les agents utiliseront pour atteindre le serveur Fleet. Par défaut, le port {port} est utilisé. Nous générerons ensuite automatiquement une politique à votre place. ",
"xpack.fleet.fleetServerSetup.addFleetServerHostSuccessText": "{host} ajouté. Vous pouvez modifier les hôtes de votre serveur Fleet dans {fleetSettingsLink}.",
"xpack.fleet.fleetServerSetup.cloudSetupText": "Un serveur Fleet est nécessaire pour enregistrer des agents avec Fleet. Le moyen le plus simple d’en obtenir un est d’ajouter un serveur d’intégration, qui prend en charge l’intégration du serveur Fleet. Vous pouvez l’ajouter à votre déploiement dans la console cloud. Pour en savoir plus, consultez {link}",
"xpack.fleet.fleetServerSetup.deploymentModeProductionOption": "{production} – Fournissez vos propres certificats. Cette option demande aux agents de préciser une clé de certificat lors de leur enregistrement avec Fleet",
"xpack.fleet.fleetServerSetup.deploymentModeQuickStartOption": "{quickStart} – Le serveur Fleet va générer un certificat autosigné. Les agents suivants doivent être enregistrés avec l'indicateur --insecure. Non recommandé pour les cas d'utilisation en production.",
- "xpack.fleet.fleetServerSetup.getStartedInstructions": "Tout d'abord, définissez l'IP public ou le nom d'hôte et le port que les agents utiliseront pour atteindre le serveur Fleet. Par défaut, le port {port} est utilisé. Nous générerons ensuite automatiquement une politique à votre place.",
"xpack.fleet.fleetServerSetupPermissionDeniedErrorMessage": "Le serveur Fleet doit être configuré. Pour cela, le privilège de cluster {roleName} est requis. Contactez votre administrateur.",
"xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix} Une version plus récente de ce module est {availableAsIntegrationLink}. Pour en savoir plus sur les intégrations et le nouvel agent Elastic, lisez notre {blogPostLink}.",
"xpack.fleet.integration.settings.versionInfo.updatesAvailableBody": "Passez à la version {latestVersion} pour bénéficier des fonctionnalités les plus récentes",
@@ -20030,10 +20022,6 @@
"xpack.lens.xyChart.annotationDate.placementType": "Type de placement",
"xpack.lens.xyChart.annotationDate.to": "À",
"xpack.lens.xyChart.annotationError.timeFieldEmpty": "Le champ temporel est manquant",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersDescription": "Toutes les dimensions configurées dans ce calque ignorent les filtres définis au niveau de Kibana.",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersLabel": "Ignorer les filtres globaux",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersDescription": "Toutes les dimensions configurées dans ce calque respectent les filtres définis au niveau de Kibana.",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersLabel": "Conserver les filtres globaux",
"xpack.lens.xyChart.appearance": "Apparence",
"xpack.lens.xyChart.applyAsRange": "Appliquer en tant que plage",
"xpack.lens.xyChart.axisOrientation.angled": "En angle",
@@ -27883,7 +27871,6 @@
"xpack.securitySolution.dataProviders.groupAreaAriaLabel": "Vous êtes dans le groupe {group}",
"xpack.securitySolution.dataProviders.showOptionsDataProviderAriaLabel": "{field} {value} Appuyez sur Entrée pour accéder aux options ou sur la barre d'espace pour commencer le glisser-déposer",
"xpack.securitySolution.dataQualityDashboard.securitySolutionDefaultIndexTooltip": "Index et modèles du paramètre {settingName}",
- "xpack.securitySolution.dataTable.unit": "{totalCount, plural, =1 {alerte} other {alertes}}",
"xpack.securitySolution.detectionEngine.alerts.acknowledgedAlertSuccessToastMessage": "Marquage réussi de {totalAlerts} {totalAlerts, plural, =1 {alerte comme reconnue} other {alertes comme reconnues}}.",
"xpack.securitySolution.detectionEngine.alerts.closedAlertSuccessToastMessage": "Fermeture réussie de {totalAlerts} {totalAlerts, plural, =1 {alerte} other {alertes}}.",
"xpack.securitySolution.detectionEngine.alerts.count.columnLabel": "{topN} valeurs les plus élevées de {fieldName}",
@@ -28717,7 +28704,6 @@
"xpack.securitySolution.clipboard.copy": "Copier",
"xpack.securitySolution.clipboard.copy.to.the.clipboard": "Copier dans le presse-papiers",
"xpack.securitySolution.clipboard.to.the.clipboard": "dans le presse-papiers",
- "xpack.securitySolution.columnHeaders.flyout.pane.removeColumnButtonLabel": "Supprimer la colonne",
"xpack.securitySolution.commandExecutionResult.failureTitle": "Action en échec.",
"xpack.securitySolution.commandExecutionResult.pending": "Action en attente.",
"xpack.securitySolution.commandExecutionResult.successTitle": "Action terminée.",
@@ -28919,8 +28905,6 @@
"xpack.securitySolution.dataQualityDashboard.betaBadge": "Bêta",
"xpack.securitySolution.dataQualityDashboard.elasticCommonSchemaReferenceLink": "Elastic Common Schema (ECS)",
"xpack.securitySolution.dataQualityDashboard.pageTitle": "Qualité des données",
- "xpack.securitySolution.dataTable.ariaLabel": "Alertes",
- "xpack.securitySolution.dataTable.loadingEventsDataLabel": "Chargement des événements",
"xpack.securitySolution.dataViewSelectorText1": "Utiliser Kibana ",
"xpack.securitySolution.dataViewSelectorText2": " ou spécifier un(e) ",
"xpack.securitySolution.dataViewSelectorText3": " comme source de données de votre règle à utiliser pour la recherche.",
@@ -31384,7 +31368,6 @@
"xpack.securitySolution.kpiUsers.totalUsers.title": "Utilisateurs",
"xpack.securitySolution.kubernetes.columnContainer": "Conteneur",
"xpack.securitySolution.kubernetes.columnEntryType": "Type d’entrée",
- "xpack.securitySolution.kubernetes.columnEntryUser": "Utilisateur d’entrée de session",
"xpack.securitySolution.kubernetes.columnExecutable": "Leader de session",
"xpack.securitySolution.kubernetes.columnInteractive": "Interactivité",
"xpack.securitySolution.kubernetes.columnNode": "Nœud",
@@ -32053,7 +32036,6 @@
"xpack.securitySolution.selector.summaryView.options.summaryView.description": "Afficher un rendu du flux d'événements pour chaque alerte",
"xpack.securitySolution.sessionsView.columnEntrySourceIp": "IP source",
"xpack.securitySolution.sessionsView.columnEntryType": "Type",
- "xpack.securitySolution.sessionsView.columnEntryUser": "Utilisateur",
"xpack.securitySolution.sessionsView.columnExecutable": "Exécutable",
"xpack.securitySolution.sessionsView.columnHostName": "Nom d'hôte",
"xpack.securitySolution.sessionsView.columnInteractive": "Interactif",
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index f8e1f66528696..f209a10ee17fa 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -10679,7 +10679,6 @@
"xpack.csp.findings.distributionBar.totalPassedLabel": "合格した調査結果",
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "検索結果の取得中にエラーが発生しました",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "エラーメッセージを表示",
- "xpack.csp.findings.findingsByResource.noFindingsTitle": "調査結果はありません",
"xpack.csp.findings.findingsByResource.tableRowTypeLabel": "リソース",
"xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "CISセクション",
"xpack.csp.findings.findingsErrorToast.searchFailedTitle": "検索失敗",
@@ -10728,10 +10727,8 @@
"xpack.csp.findings.groupBySelector.groupByLabel": "グループ分けの条件",
"xpack.csp.findings.groupBySelector.groupByNoneLabel": "なし",
"xpack.csp.findings.groupBySelector.groupByResourceIdLabel": "リソース",
- "xpack.csp.findings.latestFindings.noFindingsTitle": "調査結果はありません",
"xpack.csp.findings.latestFindings.tableRowTypeLabel": "調査結果",
"xpack.csp.findings.resourceFindings.backToResourcesPageButtonLabel": "リソースに戻る",
- "xpack.csp.findings.resourceFindings.noFindingsTitle": "調査結果はありません",
"xpack.csp.findings.resourceFindings.tableRowTypeLabel": "調査結果",
"xpack.csp.findings.resourceFindingsSharedValues.clusterIdTitle": "クラスターID",
"xpack.csp.findings.resourceFindingsSharedValues.resourceIdTitle": "リソースID",
@@ -13185,7 +13182,6 @@
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.sslCertificateLabel": "SSL証明書",
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.usernameLabel": "ユーザー名",
"xpack.enterpriseSearch.nativeConnectors.mysql.name": "MySQL",
- "xpack.enterpriseSearch.nav.analyticsCollectionsTitle": "コレクション",
"xpack.enterpriseSearch.nav.analyticsTitle": "Behavioral Analytics",
"xpack.enterpriseSearch.nav.appSearchTitle": "App Search",
"xpack.enterpriseSearch.nav.contentSettingsTitle": "設定",
@@ -13195,11 +13191,9 @@
"xpack.enterpriseSearch.nav.engine.indicesTitle": "インデックス",
"xpack.enterpriseSearch.nav.engine.overviewTitle": "概要",
"xpack.enterpriseSearch.nav.engine.schemaTitle": "スキーマ",
- "xpack.enterpriseSearch.nav.enginesTitle": "エンジン",
"xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "概要",
"xpack.enterpriseSearch.nav.searchExperiencesTitle": "検索エクスペリエンス",
"xpack.enterpriseSearch.nav.searchIndicesTitle": "インデックス",
- "xpack.enterpriseSearch.nav.searchTitle": "検索",
"xpack.enterpriseSearch.nav.standaloneExperiencesTitle": "スタンドアロン経験",
"xpack.enterpriseSearch.nav.workplaceSearchTitle": "Workplace Search",
"xpack.enterpriseSearch.notFound.action1": "ダッシュボードに戻す",
@@ -14300,12 +14294,10 @@
"xpack.fleet.fleetServerLanding.instructions": "Fleetにエージェントを登録する前に、Fleetサーバーが必要です。Fleetサーバーのセットアップについては、次の手順に従ってください。詳細は{userGuideLink}をご覧ください",
"xpack.fleet.fleetServerOnPremRequiredCallout.calloutDescription": "Fleetサーバーのセットアップについては、次の手順に従ってください。詳細は{guideLink}をご覧ください。",
"xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutDescription": "Fleetにエージェントを登録する前に、正常なFleetサーバーが必要です。 詳細は{guideLink}をご覧ください。",
- "xpack.fleet.fleetServerSetup.addFleetServerHostStepDescription": "まず、エージェントがFleetサーバーに接続するために使用する、公開IPまたはホスト名とポートを設定します。デフォルトでは、ポート{port}が使用されます。これで、自動的にポリシーが生成されます。",
"xpack.fleet.fleetServerSetup.addFleetServerHostSuccessText": "{host}を追加しました。{fleetSettingsLink}でFleetサーバーを編集できます。",
"xpack.fleet.fleetServerSetup.cloudSetupText": "Fleetにエージェントを登録する前に、Fleetサーバーが必要です。取得するための最も簡単な方法は、Fleetサーバー統合を実行する統合サーバーを追加することです。クラウドコンソールでデプロイに追加できます。詳細は{link}をご覧ください",
"xpack.fleet.fleetServerSetup.deploymentModeProductionOption": "{production} – 独自の証明書を指定します。このオプションでは、Fleetに登録するときに、エージェントで証明書鍵を指定する必要があります。",
"xpack.fleet.fleetServerSetup.deploymentModeQuickStartOption": "{quickStart} – Fleetサーバーは自己署名証明書を生成します。後続のエージェントは--insecureフラグを使用して登録する必要があります。本番ユースケースには推奨されません。",
- "xpack.fleet.fleetServerSetup.getStartedInstructions": "まず、エージェントがFleetサーバーに接続するために使用する、公開IPまたはホスト名とポートを設定します。デフォルトでは、ポート{port}が使用されます。これで、自動的にポリシーが生成されます。",
"xpack.fleet.fleetServerSetupPermissionDeniedErrorMessage": "Fleetサーバーを設定する必要があります。これには{roleName}クラスター権限が必要です。管理者にお問い合わせください。",
"xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix}このモジュールの新しいバージョンが{availableAsIntegrationLink}。統合とElasticエージェントの詳細については、{blogPostLink}をお読みください。",
"xpack.fleet.integration.settings.versionInfo.updatesAvailableBody": "バージョン{latestVersion}にアップグレードして最新の機能を入手",
@@ -20030,10 +20022,6 @@
"xpack.lens.xyChart.annotationDate.placementType": "配置タイプ",
"xpack.lens.xyChart.annotationDate.to": "終了:",
"xpack.lens.xyChart.annotationError.timeFieldEmpty": "時刻フィールドがありません",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersDescription": "このレイヤーで構成されたすべてのディメンションは、Kibanaレベルで定義されたフィルターを無視します。",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersLabel": "グローバルフィルターを無視",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersDescription": "このレイヤーで構成されたすべてのディメンションは、Kibanaレベルで定義されたフィルターを適用します。",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersLabel": "グローバルフィルターを保持",
"xpack.lens.xyChart.appearance": "見た目",
"xpack.lens.xyChart.applyAsRange": "範囲として適用",
"xpack.lens.xyChart.axisOrientation.angled": "傾斜",
@@ -27863,7 +27851,6 @@
"xpack.securitySolution.dataProviders.groupAreaAriaLabel": "グループ{group}に属しています",
"xpack.securitySolution.dataProviders.showOptionsDataProviderAriaLabel": "{field} {value}オプションはEnterキーを押します。ドラッグを開始するには、スペースを押します",
"xpack.securitySolution.dataQualityDashboard.securitySolutionDefaultIndexTooltip": "{settingName}設定のインデックスとパターン",
- "xpack.securitySolution.dataTable.unit": "{totalCount, plural, =1 {アラート} other {アラート}}",
"xpack.securitySolution.detectionEngine.alerts.acknowledgedAlertSuccessToastMessage": "{totalAlerts}件の{totalAlerts, plural, =1 {アラート} other {アラート}}が確認済みに設定されました。",
"xpack.securitySolution.detectionEngine.alerts.closedAlertSuccessToastMessage": "{totalAlerts}件の{totalAlerts, plural, =1 {アラート} other {アラート}}が正常にクローズされました。",
"xpack.securitySolution.detectionEngine.alerts.count.columnLabel": "{fieldName}の上位{topN}の値",
@@ -28696,7 +28683,6 @@
"xpack.securitySolution.clipboard.copy": "コピー",
"xpack.securitySolution.clipboard.copy.to.the.clipboard": "クリップボードにコピー",
"xpack.securitySolution.clipboard.to.the.clipboard": "クリップボードに",
- "xpack.securitySolution.columnHeaders.flyout.pane.removeColumnButtonLabel": "列を削除",
"xpack.securitySolution.commandExecutionResult.failureTitle": "アクションが失敗しました。",
"xpack.securitySolution.commandExecutionResult.pending": "アクションが保留中です。",
"xpack.securitySolution.commandExecutionResult.successTitle": "アクションが完了しました。",
@@ -28898,8 +28884,6 @@
"xpack.securitySolution.dataQualityDashboard.betaBadge": "ベータ",
"xpack.securitySolution.dataQualityDashboard.elasticCommonSchemaReferenceLink": "Elastic Common Schema(ECS)",
"xpack.securitySolution.dataQualityDashboard.pageTitle": "データ品質",
- "xpack.securitySolution.dataTable.ariaLabel": "アラート",
- "xpack.securitySolution.dataTable.loadingEventsDataLabel": "イベントを読み込み中",
"xpack.securitySolution.dataViewSelectorText1": "Kibanaを使用 ",
"xpack.securitySolution.dataViewSelectorText2": " または ",
"xpack.securitySolution.dataViewSelectorText3": " 検索するルールのデータソースとして個別に指定します。",
@@ -31363,7 +31347,6 @@
"xpack.securitySolution.kpiUsers.totalUsers.title": "ユーザー",
"xpack.securitySolution.kubernetes.columnContainer": "コンテナー",
"xpack.securitySolution.kubernetes.columnEntryType": "エントリタイプ",
- "xpack.securitySolution.kubernetes.columnEntryUser": "セッションエントリユーザー",
"xpack.securitySolution.kubernetes.columnExecutable": "セッションリーダー",
"xpack.securitySolution.kubernetes.columnInteractive": "インタラクティブ",
"xpack.securitySolution.kubernetes.columnNode": "ノード",
@@ -32032,7 +32015,6 @@
"xpack.securitySolution.selector.summaryView.options.summaryView.description": "各アラートのイベントフローのレンダリングを表示",
"xpack.securitySolution.sessionsView.columnEntrySourceIp": "ソース IP",
"xpack.securitySolution.sessionsView.columnEntryType": "型",
- "xpack.securitySolution.sessionsView.columnEntryUser": "ユーザー",
"xpack.securitySolution.sessionsView.columnExecutable": "実行ファイル",
"xpack.securitySolution.sessionsView.columnHostName": "ホスト名",
"xpack.securitySolution.sessionsView.columnInteractive": "インタラクティブ",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 536018bf4b341..8543c48afec38 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -10679,7 +10679,6 @@
"xpack.csp.findings.distributionBar.totalPassedLabel": "通过的结果",
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "检索搜索结果时遇到问题",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "显示错误消息",
- "xpack.csp.findings.findingsByResource.noFindingsTitle": "无结果",
"xpack.csp.findings.findingsByResource.tableRowTypeLabel": "资源",
"xpack.csp.findings.findingsByResourceTable.cisSectionsColumnLabel": "CIS 部分",
"xpack.csp.findings.findingsErrorToast.searchFailedTitle": "搜索失败",
@@ -10728,10 +10727,8 @@
"xpack.csp.findings.groupBySelector.groupByLabel": "分组依据",
"xpack.csp.findings.groupBySelector.groupByNoneLabel": "无",
"xpack.csp.findings.groupBySelector.groupByResourceIdLabel": "资源",
- "xpack.csp.findings.latestFindings.noFindingsTitle": "无结果",
"xpack.csp.findings.latestFindings.tableRowTypeLabel": "结果",
"xpack.csp.findings.resourceFindings.backToResourcesPageButtonLabel": "返回到资源",
- "xpack.csp.findings.resourceFindings.noFindingsTitle": "无结果",
"xpack.csp.findings.resourceFindings.tableRowTypeLabel": "结果",
"xpack.csp.findings.resourceFindingsSharedValues.clusterIdTitle": "集群 ID",
"xpack.csp.findings.resourceFindingsSharedValues.resourceIdTitle": "资源 ID",
@@ -13186,7 +13183,6 @@
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.sslCertificateLabel": "SSL 证书",
"xpack.enterpriseSearch.nativeConnectors.mysql.configuration.usernameLabel": "用户名",
"xpack.enterpriseSearch.nativeConnectors.mysql.name": "MySQL",
- "xpack.enterpriseSearch.nav.analyticsCollectionsTitle": "集合",
"xpack.enterpriseSearch.nav.analyticsTitle": "行为分析",
"xpack.enterpriseSearch.nav.appSearchTitle": "App Search",
"xpack.enterpriseSearch.nav.contentSettingsTitle": "设置",
@@ -13196,11 +13192,9 @@
"xpack.enterpriseSearch.nav.engine.indicesTitle": "索引",
"xpack.enterpriseSearch.nav.engine.overviewTitle": "概览",
"xpack.enterpriseSearch.nav.engine.schemaTitle": "架构",
- "xpack.enterpriseSearch.nav.enginesTitle": "引擎",
"xpack.enterpriseSearch.nav.enterpriseSearchOverviewTitle": "概览",
"xpack.enterpriseSearch.nav.searchExperiencesTitle": "搜索体验",
"xpack.enterpriseSearch.nav.searchIndicesTitle": "索引",
- "xpack.enterpriseSearch.nav.searchTitle": "搜索",
"xpack.enterpriseSearch.nav.standaloneExperiencesTitle": "独立体验",
"xpack.enterpriseSearch.nav.workplaceSearchTitle": "Workplace Search",
"xpack.enterpriseSearch.notFound.action1": "返回到您的仪表板",
@@ -14301,12 +14295,10 @@
"xpack.fleet.fleetServerLanding.instructions": "需要提供 Fleet 服务器,才能使用 Fleet 注册代理。按照下面的说明设置 Fleet 服务器。有关更多信息,请参见 {userGuideLink}",
"xpack.fleet.fleetServerOnPremRequiredCallout.calloutDescription": "按照下面的说明设置 Fleet 服务器。有关更多信息,请参见 {guideLink}。",
"xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutDescription": "在使用 Fleet 注册代理之前,需要提供运行正常的 Fleet 服务器。 有关更多信息,请参见 {guideLink}。",
- "xpack.fleet.fleetServerSetup.addFleetServerHostStepDescription": "首先,设置代理将用于访问 Fleet 服务器的公共 IP 或主机名和端口。它默认使用端口 {port}。然后,将自动为您生成策略。",
"xpack.fleet.fleetServerSetup.addFleetServerHostSuccessText": "已添加 {host}。您可以在{fleetSettingsLink}中编辑 Fleet 服务器主机。",
"xpack.fleet.fleetServerSetup.cloudSetupText": "需要提供 Fleet 服务器,才能使用 Fleet 注册代理。获取 Fleet 服务器的最简单方法是添加集成服务器,它会运行 Fleet 服务器集成。您可以在云控制台中将其添加到部署中。有关更多信息,请参见 {link}",
"xpack.fleet.fleetServerSetup.deploymentModeProductionOption": "{production} – 提供您自己的证书。注册到 Fleet 时,此选项将需要代理指定证书密钥",
"xpack.fleet.fleetServerSetup.deploymentModeQuickStartOption": "{quickStart} – Fleet 服务器将生成自签名证书。必须使用 --insecure 标志注册后续代理。不推荐用于生产用例。",
- "xpack.fleet.fleetServerSetup.getStartedInstructions": "首先,设置代理将用于访问 Fleet 服务器的公共 IP 或主机名和端口。它默认使用端口 {port}。然后,将自动为您生成策略。",
"xpack.fleet.fleetServerSetupPermissionDeniedErrorMessage": "需要设置 Fleet 服务器。这需要 {roleName} 集群权限。请联系您的管理员。",
"xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix} 此模块的较新版本为 {availableAsIntegrationLink}。要详细了解集成和新 Elastic 代理,请阅读我们的 {blogPostLink}。",
"xpack.fleet.integration.settings.versionInfo.updatesAvailableBody": "升级到版本 {latestVersion} 可获取最新功能",
@@ -20031,10 +20023,6 @@
"xpack.lens.xyChart.annotationDate.placementType": "位置类型",
"xpack.lens.xyChart.annotationDate.to": "至",
"xpack.lens.xyChart.annotationError.timeFieldEmpty": "缺少时间字段",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersDescription": "在此图层中配置的所有维度将忽略在 Kibana 级别定义的筛选。",
- "xpack.lens.xyChart.annotations.ignoreGlobalFiltersLabel": "忽略全局筛选",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersDescription": "在此图层中配置的所有维度将采用在 Kibana 级别定义的筛选。",
- "xpack.lens.xyChart.annotations.keepGlobalFiltersLabel": "保留全局筛选",
"xpack.lens.xyChart.appearance": "外观",
"xpack.lens.xyChart.applyAsRange": "应用为范围",
"xpack.lens.xyChart.axisOrientation.angled": "带角度",
@@ -27878,7 +27866,6 @@
"xpack.securitySolution.dataProviders.groupAreaAriaLabel": "您在组 {group} 中",
"xpack.securitySolution.dataProviders.showOptionsDataProviderAriaLabel": "{field} {value}按 enter 键可显示选项,或按空格键开始拖动",
"xpack.securitySolution.dataQualityDashboard.securitySolutionDefaultIndexTooltip": "{settingName} 设置中的索引和模式",
- "xpack.securitySolution.dataTable.unit": "{totalCount, plural, other {告警}}",
"xpack.securitySolution.detectionEngine.alerts.acknowledgedAlertSuccessToastMessage": "已成功将 {totalAlerts} 个{totalAlerts, plural, other {告警}}标记为已确认。",
"xpack.securitySolution.detectionEngine.alerts.closedAlertSuccessToastMessage": "已成功关闭 {totalAlerts} 个{totalAlerts, plural, other {告警}}。",
"xpack.securitySolution.detectionEngine.alerts.count.columnLabel": "{fieldName} 的排名前 {topN} 的值",
@@ -28712,7 +28699,6 @@
"xpack.securitySolution.clipboard.copy": "复制",
"xpack.securitySolution.clipboard.copy.to.the.clipboard": "复制到剪贴板",
"xpack.securitySolution.clipboard.to.the.clipboard": "至剪贴板",
- "xpack.securitySolution.columnHeaders.flyout.pane.removeColumnButtonLabel": "移除列",
"xpack.securitySolution.commandExecutionResult.failureTitle": "操作失败。",
"xpack.securitySolution.commandExecutionResult.pending": "操作待处理。",
"xpack.securitySolution.commandExecutionResult.successTitle": "操作已完成。",
@@ -28914,8 +28900,6 @@
"xpack.securitySolution.dataQualityDashboard.betaBadge": "公测版",
"xpack.securitySolution.dataQualityDashboard.elasticCommonSchemaReferenceLink": "Elastic Common Schema (ECS)",
"xpack.securitySolution.dataQualityDashboard.pageTitle": "数据质量",
- "xpack.securitySolution.dataTable.ariaLabel": "告警",
- "xpack.securitySolution.dataTable.loadingEventsDataLabel": "正在加载事件",
"xpack.securitySolution.dataViewSelectorText1": "使用 Kibana ",
"xpack.securitySolution.dataViewSelectorText2": " 或指定单个项 ",
"xpack.securitySolution.dataViewSelectorText3": " 作为您规则的数据源以进行搜索。",
@@ -31379,7 +31363,6 @@
"xpack.securitySolution.kpiUsers.totalUsers.title": "用户",
"xpack.securitySolution.kubernetes.columnContainer": "容器",
"xpack.securitySolution.kubernetes.columnEntryType": "条目类型",
- "xpack.securitySolution.kubernetes.columnEntryUser": "会话条目用户",
"xpack.securitySolution.kubernetes.columnExecutable": "会话 Leader",
"xpack.securitySolution.kubernetes.columnInteractive": "交互性",
"xpack.securitySolution.kubernetes.columnNode": "节点",
@@ -32048,7 +32031,6 @@
"xpack.securitySolution.selector.summaryView.options.summaryView.description": "查看每个告警的事件渲染",
"xpack.securitySolution.sessionsView.columnEntrySourceIp": "源 IP",
"xpack.securitySolution.sessionsView.columnEntryType": "类型",
- "xpack.securitySolution.sessionsView.columnEntryUser": "用户",
"xpack.securitySolution.sessionsView.columnExecutable": "可执行",
"xpack.securitySolution.sessionsView.columnHostName": "主机名",
"xpack.securitySolution.sessionsView.columnInteractive": "交互",
diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze/scheduler.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze/scheduler.tsx
index c4e6160955e28..3c65a2afba551 100644
--- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze/scheduler.tsx
+++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze/scheduler.tsx
@@ -9,6 +9,7 @@ import React, { useState, useCallback, useMemo } from 'react';
import moment, { Moment } from 'moment';
import { i18n } from '@kbn/i18n';
import { useUiSetting } from '@kbn/kibana-react-plugin/public';
+import { TIMEZONE_OPTIONS as UI_TIMEZONE_OPTIONS } from '@kbn/core-ui-settings-common';
import { v4 as uuidv4 } from 'uuid';
import {
EuiDatePicker,
@@ -47,7 +48,7 @@ export interface ComponentOpts extends PanelOpts {
hasTitle: boolean;
}
-const TIMEZONE_OPTIONS = moment.tz?.names().map((n) => ({ label: n })) ?? [{ label: 'UTC' }];
+const TIMEZONE_OPTIONS = UI_TIMEZONE_OPTIONS.map((n) => ({ label: n })) ?? [{ label: 'UTC' }];
const useDefaultTimzezone = () => {
const kibanaTz: string = useUiSetting('dateFormat:tz');
diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json
index 1df56579e7291..d2ff5b039022e 100644
--- a/x-pack/plugins/triggers_actions_ui/tsconfig.json
+++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json
@@ -51,9 +51,8 @@
"@kbn/cases-components",
"@kbn/field-types",
"@kbn/ecs",
- "@kbn/alerts-as-data-utils"
+ "@kbn/alerts-as-data-utils",
+ "@kbn/core-ui-settings-common"
],
- "exclude": [
- "target/**/*"
- ]
+ "exclude": ["target/**/*"]
}
diff --git a/x-pack/test/accessibility/apps/maps.ts b/x-pack/test/accessibility/apps/maps.ts
index 0f0054684c4d4..5a315260a0b2d 100644
--- a/x-pack/test/accessibility/apps/maps.ts
+++ b/x-pack/test/accessibility/apps/maps.ts
@@ -14,7 +14,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const inspector = getService('inspector');
const PageObjects = getPageObjects(['common', 'settings', 'header', 'home', 'maps']);
- describe('Maps app Accessibility', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/154913
+ describe.skip('Maps app Accessibility', () => {
before(async () => {
await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', {
useActualUrl: true,
diff --git a/x-pack/test/alerting_api_integration/common/config.ts b/x-pack/test/alerting_api_integration/common/config.ts
index 927a677aa5eab..4e8f8c45abb5b 100644
--- a/x-pack/test/alerting_api_integration/common/config.ts
+++ b/x-pack/test/alerting_api_integration/common/config.ts
@@ -27,6 +27,7 @@ interface CreateTestConfigOptions {
testFiles?: string[];
reportName?: string;
useDedicatedTaskRunner: boolean;
+ enableFooterInEmail?: boolean;
}
// test.not-enabled is specifically not enabled
@@ -75,6 +76,7 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions)
testFiles = undefined,
reportName = undefined,
useDedicatedTaskRunner,
+ enableFooterInEmail = true,
} = options;
return async ({ readConfigFile }: FtrConfigProviderContext) => {
@@ -173,6 +175,7 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions)
'some.non.existent.com',
'smtp.live.com',
])}`,
+ `--xpack.actions.enableFooterInEmail=${enableFooterInEmail}`,
'--xpack.encryptedSavedObjects.encryptionKey="wuGNaIhoMpk5sO4UBxgr3NyW1sFcLgIf"',
'--xpack.alerting.invalidateApiKeysTask.interval="15s"',
'--xpack.alerting.healthCheck.interval="1s"',
diff --git a/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/ms_exchage_server_simulation.ts b/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/ms_exchage_server_simulation.ts
index eba9d41dff32b..0f5f4805d28bc 100644
--- a/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/ms_exchage_server_simulation.ts
+++ b/x-pack/test/alerting_api_integration/common/plugins/actions_simulators/server/ms_exchage_server_simulation.ts
@@ -43,7 +43,7 @@ export function initPlugin(router: IRouter, path: string) {
cc: null,
bcc: null,
subject: 'email-subject',
- html: `email-message
\n--
\nThis message was sent by Elastic. Go to Elastic.
\n`,
+ html: `email-message
\n
\nThis message was sent by Elastic. Go to Elastic.
\n`,
text: 'email-message\n\n--\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).',
headers: {},
},
diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/email.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/email.ts
index 6cd612c3fc431..e2b4e3fa9e346 100644
--- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/email.ts
+++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/actions/connector_types/email.ts
@@ -124,8 +124,8 @@ export default function emailTest({ getService }: FtrProviderContext) {
cc: null,
bcc: null,
subject: 'email-subject',
- html: `email-message
\n--
\nThis message was sent by Elastic. Go to Elastic.
\n`,
- text: 'email-message\n\n--\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).',
+ html: `email-message
\n
\nThis message was sent by Elastic. Go to Elastic.
\n`,
+ text: 'email-message\n\n---\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).',
headers: {},
},
});
@@ -147,10 +147,10 @@ export default function emailTest({ getService }: FtrProviderContext) {
.then((resp: any) => {
const { text, html } = resp.body.data.message;
expect(text).to.eql(
- '_italic_ **bold** https://elastic.co link\n\n--\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).'
+ '_italic_ **bold** https://elastic.co link\n\n---\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).'
);
expect(html).to.eql(
- `italic bold https://elastic.co link
\n--
\nThis message was sent by Elastic. Go to Elastic.
\n`
+ `italic bold https://elastic.co link
\n
\nThis message was sent by Elastic. Go to Elastic.
\n`
);
});
});
@@ -174,10 +174,10 @@ export default function emailTest({ getService }: FtrProviderContext) {
.then((resp: any) => {
const { text, html } = resp.body.data.message;
expect(text).to.eql(
- 'message\n\n--\n\nThis message was sent by Elastic. [View my path in Elastic](https://localhost:5601/my/path).'
+ 'message\n\n---\n\nThis message was sent by Elastic. [View my path in Elastic](https://localhost:5601/my/path).'
);
expect(html).to.eql(
- `message
\n--
\nThis message was sent by Elastic. View my path in Elastic.
\n`
+ `message
\n
\nThis message was sent by Elastic. View my path in Elastic.
\n`
);
});
});
@@ -325,8 +325,8 @@ export default function emailTest({ getService }: FtrProviderContext) {
cc: null,
bcc: null,
subject: 'email-subject',
- html: `email-message
\n--
\nThis message was sent by Elastic. Go to Elastic.
\n`,
- text: 'email-message\n\n--\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).',
+ html: `email-message
\n
\nThis message was sent by Elastic. Go to Elastic.
\n`,
+ text: 'email-message\n\n---\n\nThis message was sent by Elastic. [Go to Elastic](https://localhost:5601).',
headers: {},
},
});
diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/config.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/config.ts
index 3274d91ceb732..009529addea59 100644
--- a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/config.ts
+++ b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/config.ts
@@ -21,4 +21,5 @@ export default createTestConfig('spaces_only', {
useDedicatedTaskRunner: true,
testFiles: [require.resolve('.')],
reportName: 'X-Pack Alerting API Integration Tests - Actions',
+ enableFooterInEmail: false,
});
diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/connector_types/stack/email.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/connector_types/stack/email.ts
index 9bb924fd5c945..f3e31cda00eb2 100644
--- a/x-pack/test/alerting_api_integration/spaces_only/tests/actions/connector_types/stack/email.ts
+++ b/x-pack/test/alerting_api_integration/spaces_only/tests/actions/connector_types/stack/email.ts
@@ -54,6 +54,29 @@ export default function emailTest({ getService }: FtrProviderContext) {
}
});
+ it('does not have a footer', async () => {
+ const from = `bob@${EmailDomainAllowed}`;
+ const conn = await createConnector(from);
+ expect(conn.status).to.be(200);
+
+ const { id } = conn.body;
+ expect(id).to.be.a('string');
+
+ const to = EmailDomainsAllowed.map((domain) => `jeb@${domain}`).sort();
+ const cc = EmailDomainsAllowed.map((domain) => `jim@${domain}`).sort();
+ const bcc = EmailDomainsAllowed.map((domain) => `joe@${domain}`).sort();
+
+ const ccNames = cc.map((email) => `Jimmy Jack <${email}>`);
+
+ const run = await runConnector(id, to, ccNames, bcc);
+ expect(run.status).to.be(200);
+
+ const { status } = run.body || {};
+ expect(status).to.be('ok');
+
+ expect(run.body.data.message.text).to.be('email-message');
+ });
+
describe('fails for invalid email domains', () => {
it('in create when invalid "from" used', async () => {
const from = `bob@not.allowed`;
diff --git a/x-pack/test/api_integration/apis/lists/create_exception_list_item.ts b/x-pack/test/api_integration/apis/lists/create_exception_list_item.ts
index b24cc7d14fef7..037d2750e84f6 100644
--- a/x-pack/test/api_integration/apis/lists/create_exception_list_item.ts
+++ b/x-pack/test/api_integration/apis/lists/create_exception_list_item.ts
@@ -12,7 +12,8 @@ import { FtrProviderContext } from '../../ftr_provider_context';
export default function ({ getService }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const supertest = getService('supertest');
- describe('Lists API', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/151636
+ describe.skip('Lists API', () => {
before(async () => await esArchiver.load('x-pack/test/functional/es_archives/lists'));
after(async () => await esArchiver.unload('x-pack/test/functional/es_archives/lists'));
diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/no_public_base_url/push.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/no_public_base_url/push.ts
index 2921bbfe3a0ac..f0b07da160674 100644
--- a/x-pack/test/cases_api_integration/security_and_spaces/tests/no_public_base_url/push.ts
+++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/no_public_base_url/push.ts
@@ -32,7 +32,8 @@ export default ({ getService }: FtrProviderContext): void => {
const supertest = getService('supertest');
const es = getService('es');
- describe('push_case', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/154640
+ describe.skip('push_case', () => {
describe('incident recorder server', () => {
const actionsRemover = new ActionsRemover(supertest);
let serviceNowSimulatorURL: string = '';
diff --git a/x-pack/test/cloud_security_posture_functional/pages/findings.ts b/x-pack/test/cloud_security_posture_functional/pages/findings.ts
index 8877bc8146804..a35200d540069 100644
--- a/x-pack/test/cloud_security_posture_functional/pages/findings.ts
+++ b/x-pack/test/cloud_security_posture_functional/pages/findings.ts
@@ -175,8 +175,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
});
});
- // FLAKY: https://github.com/elastic/kibana/issues/152913
- describe.skip('Table Sort', () => {
+ describe('Table Sort', () => {
type SortingMethod = (a: string, b: string) => number;
type SortDirection = 'asc' | 'desc';
// Sort by lexical order will sort by the first character of the string (case-sensitive)
@@ -187,6 +186,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
return a.localeCompare(b);
};
+ /* This sleep or delay is added to allow some time for the column to settle down before we get the value and to prevent the test from getting the wrong value*/
+ const sleep = (num: number) => {
+ return new Promise((res) => setTimeout(res, num));
+ };
+
it('sorts by a column, should be case sensitive/insensitive depending on the column', async () => {
type TestCase = [string, SortDirection, SortingMethod];
const testCases: TestCase[] = [
@@ -201,13 +205,19 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
];
for (const [columnName, dir, sortingMethod] of testCases) {
await latestFindingsTable.toggleColumnSort(columnName, dir);
+ /* This sleep or delay is added to allow some time for the column to settle down before we get the value and to prevent the test from getting the wrong value*/
+ await sleep(1000);
const values = (await latestFindingsTable.getColumnValues(columnName)).filter(Boolean);
expect(values).to.not.be.empty();
-
const sorted = values
.slice()
.sort((a, b) => (dir === 'asc' ? sortingMethod(a, b) : sortingMethod(b, a)));
- values.forEach((value, i) => expect(value).to.be(sorted[i]));
+ values.forEach((value, i) => {
+ expect(value).to.be.eql(
+ sorted[i],
+ `Row number ${i + 1} missmatch, expected value: ${value}. Instead got: ${sorted[i]}`
+ );
+ });
}
});
});
diff --git a/x-pack/test/fleet_api_integration/apis/agents/request_diagnostics.ts b/x-pack/test/fleet_api_integration/apis/agents/request_diagnostics.ts
index 7f5ad510723d3..492be32f22861 100644
--- a/x-pack/test/fleet_api_integration/apis/agents/request_diagnostics.ts
+++ b/x-pack/test/fleet_api_integration/apis/agents/request_diagnostics.ts
@@ -44,7 +44,7 @@ export default function (providerContext: FtrProviderContext) {
.set('kbn-xsrf', 'xxx')
.expect(200);
- verifyActionResult(1);
+ await verifyActionResult(1);
});
it('/agents/bulk_request_diagnostics should work for multiple agents by id', async () => {
@@ -55,7 +55,7 @@ export default function (providerContext: FtrProviderContext) {
agents: ['agent2', 'agent3'],
});
- verifyActionResult(2);
+ await verifyActionResult(2);
});
it('/agents/bulk_request_diagnostics should work for multiple agents by kuery', async () => {
@@ -67,7 +67,7 @@ export default function (providerContext: FtrProviderContext) {
})
.expect(200);
- verifyActionResult(4);
+ await verifyActionResult(4);
});
it('/agents/bulk_request_diagnostics should work for multiple agents by kuery in batches async', async () => {
diff --git a/x-pack/test/fleet_api_integration/apis/integrations/elastic_agent.ts b/x-pack/test/fleet_api_integration/apis/integrations/elastic_agent.ts
index 7fad10904a4f4..7cd94543cad30 100644
--- a/x-pack/test/fleet_api_integration/apis/integrations/elastic_agent.ts
+++ b/x-pack/test/fleet_api_integration/apis/integrations/elastic_agent.ts
@@ -6,10 +6,9 @@
*/
import expect from '@kbn/expect';
-import {
- FLEET_ELASTIC_AGENT_PACKAGE,
- FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID,
-} from '@kbn/fleet-plugin/common/constants/epm';
+import { FLEET_ELASTIC_AGENT_PACKAGE } from '@kbn/fleet-plugin/common/constants/epm';
+
+import { DASHBOARD_LOCATORS_IDS } from '@kbn/fleet-plugin/common';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';
import { skipIfNoDockerRegistry } from '../../helpers';
import { setupFleetAndAgents } from '../agents/services';
@@ -47,10 +46,10 @@ export default function (providerContext: FtrProviderContext) {
it('Install elastic agent details dashboard with the correct id', async () => {
const resDashboard = await kibanaServer.savedObjects.get({
type: 'dashboard',
- id: FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID,
+ id: DASHBOARD_LOCATORS_IDS.ELASTIC_AGENT_AGENT_METRICS,
});
- expect(resDashboard.id).to.eql(FLEET_ELASTIC_AGENT_DETAILS_DASHBOARD_ID);
+ expect(resDashboard.id).to.eql(DASHBOARD_LOCATORS_IDS.ELASTIC_AGENT_AGENT_METRICS);
});
after(async () => {
diff --git a/x-pack/test/functional/apps/lens/group1/layer_actions.ts b/x-pack/test/functional/apps/lens/group1/layer_actions.ts
index f3104a7a81c7a..aec1efeebb454 100644
--- a/x-pack/test/functional/apps/lens/group1/layer_actions.ts
+++ b/x-pack/test/functional/apps/lens/group1/layer_actions.ts
@@ -50,7 +50,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
expect(await testSubjects.getVisibleText('lnsChangeIndexPatternSamplingInfo')).to.be('1%');
});
- it('should add an annotation layer and settings shoud not be available', async () => {
+ it('should add an annotation layer and settings shoud be available with ignore filters', async () => {
// configure a date histogram
await PageObjects.lens.configureDimension({
dimension: 'lnsXY_xDimensionPanel > lns-empty-dimension',
@@ -65,10 +65,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
// add annotation layer
await PageObjects.lens.createLayer('annotations');
+
+ expect(await testSubjects.exists('lnsChangeIndexPatternIgnoringFilters')).to.be(true);
+
await PageObjects.lens.openLayerContextMenu(1);
- await testSubjects.existOrFail('lnsXY_annotationLayer_keepFilters');
- // layer settings not available
- await testSubjects.missingOrFail('lnsLayerSettings');
+ await testSubjects.click('lnsLayerSettings');
+ // annotations settings have only ignore filters
+ await testSubjects.click('lnsXY-layerSettings-ignoreGlobalFilters');
+ // now close the panel and check the dataView picker has no icon
+ await testSubjects.click('lns-indexPattern-dimensionContainerBack');
+ expect(await testSubjects.exists('lnsChangeIndexPatternIgnoringFilters')).to.be(false);
});
it('should add a new visualization layer and disable the sampling if max operation is chosen', async () => {
diff --git a/x-pack/test/functional/apps/lens/group3/lens_reporting.ts b/x-pack/test/functional/apps/lens/group3/lens_reporting.ts
index 853173698ad3e..bd7a27a411e7c 100644
--- a/x-pack/test/functional/apps/lens/group3/lens_reporting.ts
+++ b/x-pack/test/functional/apps/lens/group3/lens_reporting.ts
@@ -24,7 +24,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const security = getService('security');
const browser = getService('browser');
- describe('lens reporting', () => {
+ // Failing: See https://github.com/elastic/kibana/issues/154958
+ describe.skip('lens reporting', () => {
before(async () => {
await kibanaServer.importExport.load(
'x-pack/test/functional/fixtures/kbn_archiver/lens/reporting'
diff --git a/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts b/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts
index 6dcfcba1a66ba..f68dc7e0e245d 100644
--- a/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts
+++ b/x-pack/test/functional/apps/ml/data_visualizer/index_data_visualizer.ts
@@ -140,7 +140,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
});
}
- describe('index based', function () {
+ // Failing: See https://github.com/elastic/kibana/issues/137032
+ // Failing: See https://github.com/elastic/kibana/issues/154452
+ describe.skip('index based', function () {
this.tags(['ml']);
before(async () => {
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote');
diff --git a/x-pack/test/functional/apps/ml/short_tests/notifications/notification_list.ts b/x-pack/test/functional/apps/ml/short_tests/notifications/notification_list.ts
index eb0f99c97e3c0..f9719bf55454f 100644
--- a/x-pack/test/functional/apps/ml/short_tests/notifications/notification_list.ts
+++ b/x-pack/test/functional/apps/ml/short_tests/notifications/notification_list.ts
@@ -23,7 +23,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const failConfig = { jobId: 'fq_fail', spaceId: undefined };
- describe('Notifications list', function () {
+ // Failing: See https://github.com/elastic/kibana/issues/154578
+ describe.skip('Notifications list', function () {
before(async () => {
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote');
await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp');
diff --git a/x-pack/test/observability_functional/apps/observability/pages/alerts/add_to_case.ts b/x-pack/test/observability_functional/apps/observability/pages/alerts/add_to_case.ts
index 56bdee85d7261..40cfb2977850e 100644
--- a/x-pack/test/observability_functional/apps/observability/pages/alerts/add_to_case.ts
+++ b/x-pack/test/observability_functional/apps/observability/pages/alerts/add_to_case.ts
@@ -12,7 +12,8 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => {
const observability = getService('observability');
const retry = getService('retry');
- describe('Observability alerts / Add to case >', function () {
+ // Failing: See https://github.com/elastic/kibana/issues/154726
+ describe.skip('Observability alerts / Add to case >', function () {
this.tags('includeFirefox');
before(async () => {
diff --git a/yarn.lock b/yarn.lock
index 365c976479508..66fb913bb59c3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4913,6 +4913,10 @@
version "0.0.0"
uid ""
+"@kbn/securitysolution-data-table@link:x-pack/packages/kbn-securitysolution-data-table":
+ version "0.0.0"
+ uid ""
+
"@kbn/securitysolution-ecs@link:packages/kbn-securitysolution-ecs":
version "0.0.0"
uid ""