From 0764bd1b7d36f97577d3c55eab5623b28f3e304d Mon Sep 17 00:00:00 2001 From: Joseph Crail Date: Tue, 21 Feb 2023 16:46:00 -0800 Subject: [PATCH 01/31] [Profiling] Restore show information window (#151538) ## Summary This PR returns the show information window to the flamegraph view. We also added a minor UI improvement to keep the flamegraph view visually synced up with the differential flamegraph view. Fixes https://github.com/elastic/prodfiler/issues/3009 ### Screenshots The "Show information window" toggle is visible and disabled. ![image](https://user-images.githubusercontent.com/6038/219519101-5e8a9797-faa4-4ffe-ab72-1281df7759dc.png) The "Show information window" toggle is visible and enabled. ![image](https://user-images.githubusercontent.com/6038/219519115-8b9b5539-82f5-4eb9-b667-4b283e6f39d8.png) --- .../components/flame_graphs_view/index.tsx | 295 ++++++++++-------- 1 file changed, 167 insertions(+), 128 deletions(-) diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx index 3f418227fdc3f..7d249c533f3af 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx @@ -27,10 +27,45 @@ import { AsyncComponent } from '../async_component'; import { useProfilingDependencies } from '../contexts/profiling_dependencies/use_profiling_dependencies'; import { FlameGraph } from '../flamegraph'; import { PrimaryAndComparisonSearchBar } from '../primary_and_comparison_search_bar'; +import { PrimaryProfilingSearchBar } from '../profiling_app_page_template/primary_profiling_search_bar'; import { ProfilingAppPageTemplate } from '../profiling_app_page_template'; import { RedirectTo } from '../redirect_to'; import { FlameGraphNormalizationOptions, NormalizationMenu } from './normalization_menu'; +export function FlameGraphInformationWindowSwitch({ + showInformationWindow, + onChange, +}: { + showInformationWindow: boolean; + onChange: () => void; +}) { + return ( + + ); +} + +export function FlameGraphSearchPanel({ + children, + searchBar, +}: { + children: React.ReactNode; + searchBar: JSX.Element; +}) { + return ( + + {searchBar} + + {children} + + ); +} + export function FlameGraphsView({ children }: { children: React.ReactElement }) { const { path, @@ -132,136 +167,140 @@ export function FlameGraphsView({ children }: { children: React.ReactElement }) return ; } + const searchBar = isDifferentialView ? ( + + ) : ( + + ); + + const differentialComparisonMode = ( + + + + +

+ {i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeTitle', + { defaultMessage: 'Format' } + )} +

+
+
+ + { + if (!('comparisonRangeFrom' in query)) { + return; + } + + profilingRouter.push(routePath, { + path, + query: { + ...query, + ...(nextComparisonMode === FlameGraphComparisonMode.Absolute + ? { + comparisonMode: FlameGraphComparisonMode.Absolute, + normalizationMode: FlameGraphNormalizationMode.Time, + } + : { comparisonMode: FlameGraphComparisonMode.Relative }), + }, + }); + }} + options={[ + { + id: FlameGraphComparisonMode.Absolute, + label: i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeAbsoluteButtonLabel', + { + defaultMessage: 'Abs', + } + ), + }, + { + id: FlameGraphComparisonMode.Relative, + label: i18n.translate( + 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeRelativeButtonLabel', + { + defaultMessage: 'Rel', + } + ), + }, + ]} + /> + +
+
+ ); + + const differentialComparisonNormalization = ( + + + + { + profilingRouter.push(routePath, { + path: routePath, + query: { + ...query, + ...pick(options, 'baseline', 'comparison'), + normalizationMode: options.mode, + }, + }); + }} + totalSeconds={ + (new Date(timeRange.end).getTime() - new Date(timeRange.start).getTime()) / 1000 + } + comparisonTotalSeconds={ + (new Date(comparisonTimeRange.end!).getTime() - + new Date(comparisonTimeRange.start!).getTime()) / + 1000 + } + options={ + (normalizationMode === FlameGraphNormalizationMode.Time + ? { mode: FlameGraphNormalizationMode.Time } + : { + mode: FlameGraphNormalizationMode.Scale, + baseline, + comparison, + }) as FlameGraphNormalizationOptions + } + /> + + + + ); + + const informationWindowSwitch = ( + + setShowInformationWindow((prev) => !prev)} + /> + + ); + return ( - + - {isDifferentialView ? ( - - - - - - - - - -

- {i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeTitle', - { defaultMessage: 'Format' } - )} -

-
-
- - { - if (!('comparisonRangeFrom' in query)) { - return; - } - - profilingRouter.push(routePath, { - path, - query: { - ...query, - ...(nextComparisonMode === FlameGraphComparisonMode.Absolute - ? { - comparisonMode: FlameGraphComparisonMode.Absolute, - normalizationMode: FlameGraphNormalizationMode.Time, - } - : { comparisonMode: FlameGraphComparisonMode.Relative }), - }, - }); - }} - options={[ - { - id: FlameGraphComparisonMode.Absolute, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeAbsoluteButtonLabel', - { - defaultMessage: 'Abs', - } - ), - }, - { - id: FlameGraphComparisonMode.Relative, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeRelativeButtonLabel', - { - defaultMessage: 'Rel', - } - ), - }, - ]} - /> - -
-
- {comparisonMode === FlameGraphComparisonMode.Absolute ? ( - - - - { - profilingRouter.push(routePath, { - path: routePath, - // @ts-expect-error Code gets too complicated to satisfy TS constraints - query: { - ...query, - ...pick(options, 'baseline', 'comparison'), - normalizationMode: options.mode, - }, - }); - }} - totalSeconds={ - (new Date(timeRange.end).getTime() - - new Date(timeRange.start).getTime()) / - 1000 - } - comparisonTotalSeconds={ - (new Date(comparisonTimeRange.end!).getTime() - - new Date(comparisonTimeRange.start!).getTime()) / - 1000 - } - options={ - (normalizationMode === FlameGraphNormalizationMode.Time - ? { mode: FlameGraphNormalizationMode.Time } - : { - mode: FlameGraphNormalizationMode.Scale, - baseline, - comparison, - }) as FlameGraphNormalizationOptions - } - /> - - - - ) : undefined} - - { - setShowInformationWindow((prev) => !prev); - }} - label={i18n.translate('xpack.profiling.flameGraph.showInformationWindow', { - defaultMessage: 'Show information window', - })} - /> - -
-
-
- ) : null} + + + {isDifferentialView && differentialComparisonMode} + {isDifferentialView && + comparisonMode === FlameGraphComparisonMode.Absolute && + differentialComparisonNormalization} + {informationWindowSwitch} + + Date: Wed, 22 Feb 2023 00:51:44 -0500 Subject: [PATCH 02/31] [api-docs] 2023-02-22 Daily api_docs build (#151822) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/256 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.mdx | 2 +- api_docs/apm.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.devdocs.json | 413 +++++++++ api_docs/cases.mdx | 4 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.devdocs.json | 90 +- api_docs/content_management.mdx | 4 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.devdocs.json | 205 +++++ api_docs/fleet.mdx | 4 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.devdocs.json | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.devdocs.json | 852 ++++++++++++------ api_docs/kbn_ecs.mdx | 4 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.devdocs.json | 32 +- api_docs/kbn_es_query.mdx | 4 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.devdocs.json | 60 ++ api_docs/observability.mdx | 6 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 22 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.devdocs.json | 52 +- api_docs/rule_registry.mdx | 4 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.devdocs.json | 30 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.devdocs.json | 16 + api_docs/triggers_actions_ui.mdx | 4 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 486 files changed, 1916 insertions(+), 826 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 3e926c99476ef..a257c12adbd18 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-02-21 +date: 2023-02-22 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 8b7c1387882a8..74cb31efe5258 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index c0df2688bc350..f98a2c66e218c 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index adada612c63f6..3c414acb8bda5 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-02-21 +date: 2023-02-22 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 0a1ea8fbc3f59..99082a8c0e8f4 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 390aea6cfea56..2c1caa102e88b 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-02-21 +date: 2023-02-22 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 bd2371a5e5b5e..c8c099671d3e1 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-02-21 +date: 2023-02-22 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 2eb95893c4fb7..752b7215e8ae7 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index 182b65687cabd..22ad30c92f35e 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -1602,6 +1602,23 @@ } ], "misc": [ + { + "parentPluginId": "cases", + "id": "def-common.APP_ID", + "type": "string", + "tags": [], + "label": "APP_ID", + "description": [ + "\nApplication" + ], + "signature": [ + "\"cases\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.Case", @@ -1707,6 +1724,133 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CaseResponse", + "type": "Type", + "tags": [], + "label": "CaseResponse", + "description": [], + "signature": [ + "{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CASES_URL", @@ -1724,6 +1868,260 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetRequestCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetRequestCertainFields", + "description": [], + "signature": [ + "Omit<{ ids: string[]; } & { fields?: string | string[] | undefined; }, \"fields\"> & { fields?: Field[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetResponseCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetResponseCertainFields", + "description": [], + "signature": [ + "Omit<{ cases: ({ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; })[]; errors: { error: string; message: string; status: number | undefined; caseId: string; }[]; }, \"cases\"> & { cases: Pick<{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }, \"id\" | \"version\" | \"owner\" | Field>[]; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CasesFeatures", @@ -1805,6 +2203,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.INTERNAL_BULK_GET_CASES_URL", + "type": "string", + "tags": [], + "label": "INTERNAL_BULK_GET_CASES_URL", + "description": [], + "signature": [ + "\"/internal/cases/_bulk_get\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.OBSERVABILITY_OWNER", diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 1a59ab69ccccf..c101ceb2e6eaf 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 87 | 0 | 71 | 28 | +| 92 | 0 | 75 | 28 | ## Client diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 419e785e6fa23..1b7e764158d98 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-02-21 +date: 2023-02-22 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 f0eeee257c076..94c21a617fa14 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-02-21 +date: 2023-02-22 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 1b66211c3606a..8db4fd37cb73a 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-02-21 +date: 2023-02-22 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 15a13dd2ba2ad..48a2b1d911e48 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-02-21 +date: 2023-02-22 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 1d37f83f96702..8c103e71b3970 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-02-21 +date: 2023-02-22 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 bb69cb33d2319..833923e335df6 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-02-21 +date: 2023-02-22 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 bb9ab23be4031..c25cb6d2b7354 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-02-21 +date: 2023-02-22 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 e7214f8f32f32..09222fa654d76 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index 779fcfac4f572..896f476aaffb2 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -128,6 +128,72 @@ "classes": [], "functions": [], "interfaces": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn", + "type": "Interface", + "tags": [], + "label": "BulkGetIn", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.BulkGetIn", + "text": "BulkGetIn" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.contentTypeId", + "type": "Uncategorized", + "tags": [], + "label": "contentTypeId", + "description": [], + "signature": [ + "T" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.ids", + "type": "Array", + "tags": [], + "label": "ids", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.options", + "type": "Uncategorized", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "Options | undefined" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.CreateIn", @@ -562,7 +628,7 @@ "label": "ProcedureName", "description": [], "signature": [ - "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\"" + "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\" | \"bulkGet\"" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -579,7 +645,7 @@ "label": "procedureNames", "description": [], "signature": [ - "readonly [\"get\", \"create\", \"update\", \"delete\", \"search\"]" + "readonly [\"get\", \"bulkGet\", \"create\", \"update\", \"delete\", \"search\"]" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -617,6 +683,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas.bulkGet", + "type": "Object", + "tags": [], + "label": "bulkGet", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.ProcedureSchemas", + "text": "ProcedureSchemas" + } + ], + "path": "src/plugins/content_management/common/rpc/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "contentManagement", "id": "def-common.schemas.create", diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index de9413917e3c1..5b06857b73d19 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.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 | |-------------------|-----------|------------------------|-----------------| -| 41 | 0 | 41 | 3 | +| 46 | 0 | 46 | 3 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 2031219295dc0..75827a22e17bd 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-02-21 +date: 2023-02-22 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 a498d9daf1215..b186ea13d3731 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 47ccf22f1d4c0..56c213af3d15d 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 5ae45f329d207..4a226601fd315 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index b1841ff331163..8aab1229fe283 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-02-21 +date: 2023-02-22 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 0bcaf823d1053..2afc84872d01d 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 2928c1d74b072..3daeaef637aeb 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-02-21 +date: 2023-02-22 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 1dcd1ce588b5a..3cfe54158cc2e 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-02-21 +date: 2023-02-22 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 06034d231565c..c58a005b3cb09 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-02-21 +date: 2023-02-22 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 93c19543506a5..45717e846a01c 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index de2998519b208..91bd0f29ba3e0 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-02-21 +date: 2023-02-22 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 c1ce80e4c5782..ae3bdeb2edcba 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-02-21 +date: 2023-02-22 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 b1c36f670e74f..1f1af64c0c9f6 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index ef311a52fa2a8..6f1cfe203b95b 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 9a3512c26dfa5..cd8436f4ca388 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index e19682fd4a70f..b80bce172a949 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-02-21 +date: 2023-02-22 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 6af7f3c703902..6f56c66d3c5f4 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-02-21 +date: 2023-02-22 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 14819947d3e54..d42353b6c11cb 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-02-21 +date: 2023-02-22 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 1e6a21f7c8171..16b1019ecd3ed 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-02-21 +date: 2023-02-22 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 161766f380f10..4224021b55423 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-02-21 +date: 2023-02-22 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 efe75258646d6..84ff2ca16e22e 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-02-21 +date: 2023-02-22 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 4d58390c80b3c..d4adf39f2b968 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-02-21 +date: 2023-02-22 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 8184578800fdf..14d20ebf5d61c 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-02-21 +date: 2023-02-22 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 722fe7bde8d81..51fcf854a986e 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-02-21 +date: 2023-02-22 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 d2f42a849ddb1..7d58d610b1dbd 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-02-21 +date: 2023-02-22 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 c0d159cf945b0..73e836f34ba81 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 80baa289f0e2e..cd3691170c384 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-02-21 +date: 2023-02-22 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 b9dccdadd3bc3..9ce0190f9f154 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-02-21 +date: 2023-02-22 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 5811a29f8bfad..9351452fcea4c 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-02-21 +date: 2023-02-22 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 88bdd4792667e..e34b0a5ea27e3 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-02-21 +date: 2023-02-22 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 a6caeb0d77c18..c0014c266d305 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-02-21 +date: 2023-02-22 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 f43139104ef14..deb956943c728 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-02-21 +date: 2023-02-22 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 93a50653e87f8..ee50c931cbfca 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-02-21 +date: 2023-02-22 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 56a58c391c375..683b1b0d518f0 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-02-21 +date: 2023-02-22 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 362ca0c24aea2..38ed006c11b39 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-02-21 +date: 2023-02-22 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 72fdf146aa441..d7f20a1cde784 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-02-21 +date: 2023-02-22 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 ddbaeb42b1332..5b8406d386c8f 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-02-21 +date: 2023-02-22 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 10a0bcb9bf6ad..7884000068cc6 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-02-21 +date: 2023-02-22 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 a5797770c3a7c..b4d2041ed7541 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-02-21 +date: 2023-02-22 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 f43af727a8cc1..e4563923867a6 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-02-21 +date: 2023-02-22 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 9e3bba7f9e307..36869e492a9fa 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 5b0aacb51f4ea..99bdec890e1ab 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-02-21 +date: 2023-02-22 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 3d3220e6d71d5..582a3304e3985 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-02-21 +date: 2023-02-22 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 5e5cbfb19c6e9..7ee3e730809da 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-02-21 +date: 2023-02-22 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 675ad45079f83..1055d8332ffed 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index 283f0825aebf7..c306185cef512 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -511,6 +511,211 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices", + "type": "Interface", + "tags": [], + "label": "FleetStartServices", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "public", + "docId": "kibFleetPluginApi", + "section": "def-public.FleetStartServices", + "text": "FleetStartServices" + }, + " extends ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "common", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-common.CoreStart", + "text": "CoreStart" + }, + ",", + "FleetStartDeps" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.storage", + "type": "Object", + "tags": [], + "label": "storage", + "description": [], + "signature": [ + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.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/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.cloud", + "type": "CompoundType", + "tags": [], + "label": "cloud", + "description": [], + "signature": [ + "(", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudSetup", + "text": "CloudSetup" + }, + " & ", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudStart", + "text": "CloudStart" + }, + ") | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.discover", + "type": "Object", + "tags": [], + "label": "discover", + "description": [], + "signature": [ + { + "pluginId": "discover", + "scope": "public", + "docId": "kibDiscoverPluginApi", + "section": "def-public.DiscoverStart", + "text": "DiscoverStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.spaces", + "type": "Object", + "tags": [], + "label": "spaces", + "description": [], + "signature": [ + { + "pluginId": "spaces", + "scope": "public", + "docId": "kibSpacesPluginApi", + "section": "def-public.SpacesApi", + "text": "SpacesApi" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.authz", + "type": "Object", + "tags": [], + "label": "authz", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "common", + "docId": "kibFleetPluginApi", + "section": "def-common.FleetAuthz", + "text": "FleetAuthz" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.guidedOnboarding", + "type": "Object", + "tags": [], + "label": "guidedOnboarding", + "description": [], + "signature": [ + { + "pluginId": "guidedOnboarding", + "scope": "public", + "docId": "kibGuidedOnboardingPluginApi", + "section": "def-public.GuidedOnboardingPluginStart", + "text": "GuidedOnboardingPluginStart" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-public.IntegrationsAppBrowseRouteState", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 953b463a74548..d02798efed168 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1079 | 3 | 974 | 26 | +| 1087 | 3 | 982 | 27 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 6202396e1e7cb..d3459f079141a 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-02-21 +date: 2023-02-22 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 7bbd0b618c908..5eb36e6d2d4f3 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-02-21 +date: 2023-02-22 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 b1940dbc190b2..8a2a31e1b5fc1 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-02-21 +date: 2023-02-22 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 231db4c6bebdb..9e3231ebde6c8 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-02-21 +date: 2023-02-22 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 c6c75389f83a3..2468270d9ada0 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-02-21 +date: 2023-02-22 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 ea16aa53a349b..95309df53584c 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-02-21 +date: 2023-02-22 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 704f12fc8722c..a24ceb4e08626 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-02-21 +date: 2023-02-22 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 bca3c11993651..13978e702b5f2 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-02-21 +date: 2023-02-22 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 17875d743a453..170b4930f9f05 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-02-21 +date: 2023-02-22 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 f9b3a60039b24..0eca67952998b 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-02-21 +date: 2023-02-22 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 c9696a8715dbc..d601d7690ee28 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-02-21 +date: 2023-02-22 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 ab74febebf3da..b38f867e15aa0 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 427b8b5e49ce6..44cc18ce152e4 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index e216fcc07dda8..f101504bb48ca 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-02-21 +date: 2023-02-22 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 f635927f86b0b..4d579c4710176 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-02-21 +date: 2023-02-22 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 e2d5952a3729f..ea4e28b8f2e8b 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-02-21 +date: 2023-02-22 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 f02f5e1c1c212..7547d77bdc0e9 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-02-21 +date: 2023-02-22 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 e5d41537a41fd..0f3aa1b5cf946 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-02-21 +date: 2023-02-22 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 5c5ef1306ffec..26d8da36afd33 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-02-21 +date: 2023-02-22 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 d9b6680f5bc8f..c0032039d5cbf 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-02-21 +date: 2023-02-22 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 4d3dff27228a7..0532a61460614 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-02-21 +date: 2023-02-22 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 635d6bd97cbb2..6dbb6a3609174 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-02-21 +date: 2023-02-22 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 fafa6c8e15455..80ecc8815df12 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-02-21 +date: 2023-02-22 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 4fb4669907449..6c52bea38b1fd 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-02-21 +date: 2023-02-22 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 0fe3cdd8230a9..46a47c1581576 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-02-21 +date: 2023-02-22 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 2db64454f2fed..4d8428447469d 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-02-21 +date: 2023-02-22 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 2df6c87d68c6d..5833d2ba3df00 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-02-21 +date: 2023-02-22 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 4095c4a302ca3..317810b0333cc 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-02-21 +date: 2023-02-22 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 3fc4f3a6dfbfa..92e75675aeaaf 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-02-21 +date: 2023-02-22 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 cb0ec12455375..0cef396bffa2a 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-02-21 +date: 2023-02-22 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 cbbaab83c591d..cb472c16b3406 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-02-21 +date: 2023-02-22 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 7b27011a7c775..5fa0d302f386d 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-02-21 +date: 2023-02-22 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 7cc043207929f..c0b72619c3f00 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-02-21 +date: 2023-02-22 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 32ef0cd5402a5..17a0ea5332890 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-02-21 +date: 2023-02-22 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 b732297b203fc..c4d4fc73c9276 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-02-21 +date: 2023-02-22 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 3af81131ee414..5dac4f32adb6c 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-02-21 +date: 2023-02-22 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 dd9ec036c7ca7..fe6a3ea0e5272 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-02-21 +date: 2023-02-22 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 4482c7f5dff18..c220185aa000f 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-02-21 +date: 2023-02-22 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 e1ee7cdc865a9..01c59112c239d 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-02-21 +date: 2023-02-22 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 0aa3db7aff995..136a1368b2986 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-02-21 +date: 2023-02-22 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 02cf81a71786b..2a84d532cc7c5 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-02-21 +date: 2023-02-22 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 ea0f9f2e35dc9..4cdb7bd6c864c 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-02-21 +date: 2023-02-22 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 966d45b50d665..9a6b81fbcd30f 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-02-21 +date: 2023-02-22 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 39288e860fd13..92024f3712226 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-02-21 +date: 2023-02-22 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 fa4f7b3aa1112..864193a84d074 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-02-21 +date: 2023-02-22 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 66d85ba70e6ac..eb6a29cb9644d 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-02-21 +date: 2023-02-22 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 1c99d0541add8..7d5043e2e9291 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-02-21 +date: 2023-02-22 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 7d80eb71e06ee..f2bb8b313921a 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-02-21 +date: 2023-02-22 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 e940ee965a119..2ef17b5a00d8b 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-02-21 +date: 2023-02-22 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 6c2c21928f147..fa21277c99eff 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-02-21 +date: 2023-02-22 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 68468e5fb340b..3b0e3beb439b3 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-02-21 +date: 2023-02-22 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 72ee977d01ee9..0bb533a58e003 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-02-21 +date: 2023-02-22 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 3d2f5364882b4..a6a6afe493aa8 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-02-21 +date: 2023-02-22 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 3710af98fb348..7ddb7caa05fc9 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-02-21 +date: 2023-02-22 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 e880d11da6141..e586cf57d11a6 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-02-21 +date: 2023-02-22 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 9ee2552a2662b..adc9ad098e3f7 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-02-21 +date: 2023-02-22 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 412fdaf7d4956..a543d9d6abe6e 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-02-21 +date: 2023-02-22 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 da8667ec9f4a5..68f675d2f7b40 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-02-21 +date: 2023-02-22 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 d6b453ce2cdff..a3d6e47b82c12 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-02-21 +date: 2023-02-22 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 6cf8d2552bcbb..cc2d611962165 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-02-21 +date: 2023-02-22 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 4a0d4e62fcdcb..4edaa1944f399 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-02-21 +date: 2023-02-22 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 8e0e23e4a006f..1144bd453a657 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-02-21 +date: 2023-02-22 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 8da4a0abfb4f6..00ec9c6918cc6 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-02-21 +date: 2023-02-22 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 8220f61b3b760..b844aa16894d1 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-02-21 +date: 2023-02-22 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 b6abbdc10bce1..e0e005cc73040 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-02-21 +date: 2023-02-22 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 dee1ad581964d..7a6250780061e 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-02-21 +date: 2023-02-22 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 1ef5500a4a112..3adbf742482f0 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-02-21 +date: 2023-02-22 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 0d1bfd645fd6b..1e1a95e81a549 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-02-21 +date: 2023-02-22 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 41652a24b2de2..76b82bb483d99 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-02-21 +date: 2023-02-22 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 510c39c764001..06d2fc271d7c2 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-02-21 +date: 2023-02-22 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 41c69f6a08c32..504ccdfb4b0a1 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-02-21 +date: 2023-02-22 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 bc2b2aff1d9af..c932593f181bd 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-02-21 +date: 2023-02-22 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 627967fc335b4..4303b73519fc1 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-02-21 +date: 2023-02-22 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 8ef75740987eb..2ce0848b300f0 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-02-21 +date: 2023-02-22 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 7901f9a98a7e4..a16ced6c58004 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-02-21 +date: 2023-02-22 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 e2d7bcda0a2a9..7699a97f2e5c0 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-02-21 +date: 2023-02-22 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 40bb2bbfc1b85..65bcfeb6e3280 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-02-21 +date: 2023-02-22 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 27b6d914c85f6..0259af4a2d603 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-02-21 +date: 2023-02-22 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 bc66b55f84bc6..3f67e1513fbdb 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-02-21 +date: 2023-02-22 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 8a9ccdacf34fe..55669cff7fcdd 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-02-21 +date: 2023-02-22 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 32f0252b272b9..b29fac3f1ba6a 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-02-21 +date: 2023-02-22 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 c525c3a50c64d..c5cc6b5c0a074 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-02-21 +date: 2023-02-22 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 abb6ba6f2cfec..6b49b420e5b05 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-02-21 +date: 2023-02-22 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 e3b7db75215b8..d2a48b99e821e 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-02-21 +date: 2023-02-22 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 ac9a8ab04a956..be2c94e6b7c87 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-02-21 +date: 2023-02-22 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 1b841b939d068..7435d517d2608 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-02-21 +date: 2023-02-22 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 ff9026332740a..88d24d6e7a5d6 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-02-21 +date: 2023-02-22 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 ff08543c85012..44819cd3529d0 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-02-21 +date: 2023-02-22 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 b489cb0a0e5fc..6f1d357fe621f 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-02-21 +date: 2023-02-22 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 41eb176aeb1b1..a0e4b51510097 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-02-21 +date: 2023-02-22 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 da9070bbd9d5b..e175438b3479f 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-02-21 +date: 2023-02-22 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 91a1eb7e95d14..63fba0e6131d2 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-02-21 +date: 2023-02-22 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 4ac62f82f9a47..50a269c58f111 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-02-21 +date: 2023-02-22 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 5a3747e4e07f2..b2e3a4bb5878f 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-02-21 +date: 2023-02-22 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 0732a260a34ce..3fc01b7d68aae 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-02-21 +date: 2023-02-22 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 20f52ba6731eb..50360bc76b83b 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-02-21 +date: 2023-02-22 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 124a09ff69906..31d18de764c04 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-02-21 +date: 2023-02-22 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 f519ee25f8939..fc7ecb1101b32 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-02-21 +date: 2023-02-22 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 affcecc3d105c..f4fbd702bebee 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-02-21 +date: 2023-02-22 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 09744283fb995..d861cfbff935b 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_http_browser.mdx index 9ae008e7d011a..48361a89b17b8 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-02-21 +date: 2023-02-22 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 24b19ae8f1d73..1204969db77da 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-02-21 +date: 2023-02-22 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 0dc8effe9371b..f344c111a01f7 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_http_common.mdx index 193eb2c930e79..11342669fccce 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-02-21 +date: 2023-02-22 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 5ce70258f0b49..8a342ebb5fe82 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-02-21 +date: 2023-02-22 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 144b306e15894..bf5a6dd183df2 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-02-21 +date: 2023-02-22 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 a83b82030ec1c..b451b1729fbd2 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-02-21 +date: 2023-02-22 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 c1ae8be00852a..693c9b3896489 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-02-21 +date: 2023-02-22 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 ec2499cd82c66..15b472c612510 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-02-21 +date: 2023-02-22 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 0e95e8581367e..608dc2a7f43f7 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-02-21 +date: 2023-02-22 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 292c9086ece26..86cc83d1c4665 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_http_server.mdx index d06fc41f1decb..e7549d47de2fe 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-02-21 +date: 2023-02-22 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 5f70eaeac6401..d1e94c5570913 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-02-21 +date: 2023-02-22 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 6812b745be87e..87dc62e5d452d 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-02-21 +date: 2023-02-22 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 b51b90da236ea..ede9c902005ae 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-02-21 +date: 2023-02-22 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 f0197ce673b94..5c7fbee728cbb 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-02-21 +date: 2023-02-22 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 bc9fbd36bef6d..1d40cfd813e89 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-02-21 +date: 2023-02-22 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 5608bbe492830..973d179d55cf0 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-02-21 +date: 2023-02-22 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 0396bf48da5d1..d86e4225507a1 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-02-21 +date: 2023-02-22 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 179135ccbfd40..4b757b514f144 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-02-21 +date: 2023-02-22 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 d459bf1aeaa3a..5f3b5317f36d5 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-02-21 +date: 2023-02-22 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 205ac88f5e470..bcfd7fdd2b950 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-02-21 +date: 2023-02-22 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 6d6d9a2bb00f2..90e6fa94adfca 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-02-21 +date: 2023-02-22 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 306399cce5929..8c115b0f3c4fc 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-02-21 +date: 2023-02-22 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 c53509c3542d8..632df357250b0 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-02-21 +date: 2023-02-22 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 b08743a11140a..017fae40e6765 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-02-21 +date: 2023-02-22 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 b6e432314e9bb..4be638c9a4730 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-02-21 +date: 2023-02-22 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 c78fcd55ebefc..b91004a22f116 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-02-21 +date: 2023-02-22 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 939b44ee1b714..dbe135950c523 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-02-21 +date: 2023-02-22 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 8053ab596c478..b6fb01da2f86a 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-02-21 +date: 2023-02-22 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 140fd197caed0..90dbf178f1a11 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-02-21 +date: 2023-02-22 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 d36475ee881a3..54e52d609628e 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-02-21 +date: 2023-02-22 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 1daf6aad8e8fe..f6f0efbf8ac4b 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-02-21 +date: 2023-02-22 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 10e6282332ea7..bf86e0307a776 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-02-21 +date: 2023-02-22 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 43685ad91870f..833425d24409e 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-02-21 +date: 2023-02-22 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 069d9964aaae0..56753984ac2d5 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-02-21 +date: 2023-02-22 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 8acfeb3f25e3c..603fe381f870c 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-02-21 +date: 2023-02-22 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 4c64ebacd23f6..5271ba85bb8cf 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-02-21 +date: 2023-02-22 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 6e24319a666e3..5d1e806aaaeeb 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-02-21 +date: 2023-02-22 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 c65c52f49f473..4094ffa9279ce 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-02-21 +date: 2023-02-22 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 77a16b07643c2..7bbcf245b2654 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-02-21 +date: 2023-02-22 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 26a3363d26fbc..631e0151740d6 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-02-21 +date: 2023-02-22 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 47a6777732623..9b269fea20985 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-02-21 +date: 2023-02-22 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 46f1c5fc8196c..9fd7a30065d13 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-02-21 +date: 2023-02-22 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 fade1b5a20320..37a81e48fb305 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-02-21 +date: 2023-02-22 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 339686def13c0..47298a50463c1 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-02-21 +date: 2023-02-22 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 92bea55f56f76..fc627fc8cd415 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-02-21 +date: 2023-02-22 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 33347b183b6a7..4584ddefeb046 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-02-21 +date: 2023-02-22 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 4ff83cf8191d2..0e9a904c09835 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-02-21 +date: 2023-02-22 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 dc367f111add3..7af3419dac952 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-02-21 +date: 2023-02-22 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 e0d550041cfc5..36b4b5b764626 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-02-21 +date: 2023-02-22 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 e4b629ab32037..fbb30254f1632 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-02-21 +date: 2023-02-22 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 2b735abc2620b..002488742db38 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-02-21 +date: 2023-02-22 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 8c265cb3c7e6c..c84e51b6284a3 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-02-21 +date: 2023-02-22 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 06b40ffd1cdb3..66e44d5d323bf 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-02-21 +date: 2023-02-22 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 a060864d5066e..31a641a09f371 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index f0edb4776f5ad..e7e5661abf931 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-02-21 +date: 2023-02-22 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 a7cde7f878840..e59bb460fd89c 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-02-21 +date: 2023-02-22 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 8b9e4f3ba610b..29c07b02f6c92 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-02-21 +date: 2023-02-22 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 f73eab4ae5a5b..50cb340388b7c 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-02-21 +date: 2023-02-22 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 3a7bbd2e54977..55f92d7fe094c 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-02-21 +date: 2023-02-22 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 1bfa37135bf73..e3f24535b399f 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-02-21 +date: 2023-02-22 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 c9f7d61a8cd39..f79a5328c145c 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-02-21 +date: 2023-02-22 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 50387786c60ff..3988c40ca812d 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-02-21 +date: 2023-02-22 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 8605324724902..e83c272b4f4a4 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 0e20bceeb2556..9257f125a7a8f 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-02-21 +date: 2023-02-22 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 9284ecaae1c2e..ba31ad24940a6 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-02-21 +date: 2023-02-22 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 7b3b9b8536d31..455fe0aa30903 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-02-21 +date: 2023-02-22 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 32f3c5b7b6655..0d7df56f344f2 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-02-21 +date: 2023-02-22 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 a1d597c1c6fe5..10decba9473ff 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-02-21 +date: 2023-02-22 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 3d87c55f1428c..16739d78d82dd 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-02-21 +date: 2023-02-22 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 d56b7f4bbfd15..df1906cd3d36c 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-02-21 +date: 2023-02-22 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 4404fda72564c..f6c6032dda09b 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-02-21 +date: 2023-02-22 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 7ce5cb45bdeb1..5059eb4c600d3 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-02-21 +date: 2023-02-22 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 9c64990d286b0..651efcc5127be 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-02-21 +date: 2023-02-22 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 424888c8aa2b6..3394b59a4e384 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-02-21 +date: 2023-02-22 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 6477075fa3bfc..76a4a454d2741 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-02-21 +date: 2023-02-22 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 6782772b8c228..451104ef23225 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-02-21 +date: 2023-02-22 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 4b77a88937a30..05ddf5ec40ab7 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-02-21 +date: 2023-02-22 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 ae5239538d38d..33e4d2581b485 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-02-21 +date: 2023-02-22 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 f70e4c3534ed7..aeab2763123c6 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-02-21 +date: 2023-02-22 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 14d9281233b2e..289d9f3ee3ff9 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-02-21 +date: 2023-02-22 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 0270000c32ef3..f7af932306c4e 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-02-21 +date: 2023-02-22 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 996595528a76e..98f0fdf81c560 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-02-21 +date: 2023-02-22 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 68891b4c19a72..5347ab6ce4a8c 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-02-21 +date: 2023-02-22 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 ec326db54267f..446420ce5cba7 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-02-21 +date: 2023-02-22 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 12ceb96f1f953..e8415191c6f2d 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-02-21 +date: 2023-02-22 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 1433e8e0b8451..80d8d789e59f1 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-02-21 +date: 2023-02-22 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 ce0be9d0eecfc..4219007df1164 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-02-21 +date: 2023-02-22 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 b56e363c1707b..fa1ce48f374ed 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 4383dc30150f4..96536c2679aba 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 141a3b67487b1..0b7f73027b692 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-02-21 +date: 2023-02-22 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 0b18ce294fb2e..d95fc2e2168f0 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-02-21 +date: 2023-02-22 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 cb352de9c7071..cdea14facbf0f 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-02-21 +date: 2023-02-22 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 4a7b514af95dd..a3004471ffad8 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-02-21 +date: 2023-02-22 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 0ba98d7e11377..71c7a8855bbbb 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-02-21 +date: 2023-02-22 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 e711636756b4a..1d500f2ffe217 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-02-21 +date: 2023-02-22 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 0eb371a73845b..a4ec585d44796 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-02-21 +date: 2023-02-22 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 ed21fc5391ab5..1b910aad919f4 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-02-21 +date: 2023-02-22 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 ea9449b2b1c96..dfe1f317447aa 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-02-21 +date: 2023-02-22 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 3908f6b4f8204..257691719951d 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-02-21 +date: 2023-02-22 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 3cfd155383384..2deb130739bd1 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-02-21 +date: 2023-02-22 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 37baabb24a6eb..b9e9cb6e2132a 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-02-21 +date: 2023-02-22 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 33e17e03beb13..84d9d9c9fe907 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-02-21 +date: 2023-02-22 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 e44589c5ad5c8..ab9a84010f7f1 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index b829e281babcd..75685baffbc4a 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -658,7 +658,7 @@ "label": "observability", "description": [], "signature": [ - "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; }" + "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; readonly syntheticsMigrateFromIntegration: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 004ce641602e4..7cdb6bb36ab2d 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-02-21 +date: 2023-02-22 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 ed1b9fa7f8442..9c31bda65af2d 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 49148bf13e43e..1f86b4a42c1f1 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.devdocs.json b/api_docs/kbn_ecs.devdocs.json index 32c5b52fbc08d..8d623867a82be 100644 --- a/api_docs/kbn_ecs.devdocs.json +++ b/api_docs/kbn_ecs.devdocs.json @@ -1570,7 +1570,7 @@ "\nECS version this event conforms to. `ecs.version` is a required field and must exist in all events.\nWhen querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events." ], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/ecs.ts", "deprecated": false, @@ -6780,7 +6780,7 @@ "label": "indicator", "description": [], "signature": [ - "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" + "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; tlp_version?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, @@ -6827,20 +6827,6 @@ "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsThreat.threat", - "type": "Object", - "tags": [], - "label": "threat", - "description": [], - "signature": [ - "{ indicator?: { marking?: { tlp?: { version?: string | undefined; } | undefined; } | undefined; } | undefined; } | undefined" - ], - "path": "packages/kbn-ecs/generated/threat.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false @@ -8350,7 +8336,7 @@ "label": "EcsVersion", "description": [], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/index.ts", "deprecated": false, @@ -142151,10 +142137,150 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp_version'", "description": [], "path": "packages/kbn-ecs/generated/ecs_flat.ts", "deprecated": false, @@ -142162,7 +142288,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -142173,7 +142299,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.description", "type": "string", "tags": [], "label": "description", @@ -142184,7 +142310,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -142195,7 +142321,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -142206,7 +142332,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -142217,7 +142343,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -142228,7 +142354,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -142239,7 +142365,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -142253,7 +142379,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -142264,7 +142390,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -166692,6 +166818,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.threat.indicator.modified_at", @@ -175551,132 +175803,6 @@ } ] }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.tls.cipher", @@ -345721,10 +345847,10 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp'", "description": [], "path": "packages/kbn-ecs/generated/ecs_nested.ts", "deprecated": false, @@ -345732,7 +345858,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -345743,7 +345869,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.description", "type": "string", "tags": [], "label": "description", @@ -345754,7 +345880,147 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -345765,7 +346031,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -345776,7 +346042,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -345787,7 +346053,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -345798,7 +346064,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -345809,7 +346075,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -345823,7 +346089,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -345834,7 +346100,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -370262,6 +370528,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsNested.threat.fields.threat.indicator.modified_at", @@ -379120,132 +379512,6 @@ "trackAdoption": false } ] - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - } - ] } ] }, diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 488cebb89a3b6..95d72a575996d 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 35102 | 0 | 34695 | 0 | +| 35125 | 0 | 34718 | 0 | ## Common diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index f0092b0f8bb11..4bb6302bb165f 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-02-21 +date: 2023-02-22 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 de79ec32efbca..070d93a08d00b 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-02-21 +date: 2023-02-22 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 2f5e0c942eb0f..15253132f300a 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-02-21 +date: 2023-02-22 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 93fa195ba86cd..a08a01774a28d 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index 94daa358e2546..15f5ca2dcacdb 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -3616,7 +3616,15 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => boolean" + "[] | undefined, comparatorOptions?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined) => boolean" ], "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", "deprecated": false, @@ -3665,6 +3673,28 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.onlyDisabledFiltersChanged.$3", + "type": "Object", + "tags": [], + "label": "comparatorOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined" + ], + "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [ diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 22bee16d0585c..12b22ea813f83 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 250 | 1 | 192 | 15 | +| 251 | 1 | 193 | 15 | ## Common diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 16e8ec6d3ae5c..64d6b0993ae37 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-02-21 +date: 2023-02-22 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 0837f234cf360..97f6d6680f269 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 8213f9ee28f66..d2c3dc8088d43 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-02-21 +date: 2023-02-22 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 68e4f0d3116fb..8d33659226e2c 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-02-21 +date: 2023-02-22 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 affa92183f493..6285bd78aad1c 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-02-21 +date: 2023-02-22 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 3fd8dc4fad5c3..a12b731e81a82 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 5e2a8257212e6..1fb38a717abf6 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-02-21 +date: 2023-02-22 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 dfcaeb8177ede..933afc75407ab 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-02-21 +date: 2023-02-22 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 d832fa1f08892..a433c650e6636 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-02-21 +date: 2023-02-22 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 904c8e9030cd9..d8c608dda917f 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-02-21 +date: 2023-02-22 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 64a8be7ee09a6..c189c00ae487d 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-02-21 +date: 2023-02-22 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 6055316ebaff3..c3965c5a54d8c 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-02-21 +date: 2023-02-22 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 2cb9c9a8cfa3a..7b89b37412f27 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-02-21 +date: 2023-02-22 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 9ff4b65f97fcc..2c328b138b0ed 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-02-21 +date: 2023-02-22 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 40b31612ad951..e7eae573de8f3 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-02-21 +date: 2023-02-22 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 abc36c4c5455c..7e8856c341331 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-02-21 +date: 2023-02-22 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 1e18a8d3b7586..8f6ef7d12cfae 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-02-21 +date: 2023-02-22 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 234d28e295b15..27990ece5fc2e 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-02-21 +date: 2023-02-22 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 c85a757c4ed59..6186787494de9 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-02-21 +date: 2023-02-22 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 97a034693722e..584ffc19f24fc 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-02-21 +date: 2023-02-22 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 ae7075c556124..7473276664b6a 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-02-21 +date: 2023-02-22 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 78b6689e3620b..c61c2d5b5b1ee 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-02-21 +date: 2023-02-22 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 b52baaa950073..1a5486690d201 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-02-21 +date: 2023-02-22 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 0f17dea4d5288..f650b29e4c6ca 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-02-21 +date: 2023-02-22 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 09afe4a531470..0f86a458ef364 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-02-21 +date: 2023-02-22 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 87352e3142191..f33c3258798d8 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-02-21 +date: 2023-02-22 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 0b2ad6dcde023..b2f900ba95a6c 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-02-21 +date: 2023-02-22 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 b5a408b845b23..5b4aea536a671 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-02-21 +date: 2023-02-22 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 a17bf71066b85..e983c66de8941 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-02-21 +date: 2023-02-22 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 de78d68d1e53e..d05f4b24ea6a8 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-02-21 +date: 2023-02-22 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 41209eacc44a6..a562498f029bf 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-02-21 +date: 2023-02-22 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 9e80df4909ede..080e636896bf6 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-02-21 +date: 2023-02-22 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_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 6bc362697e9a2..caee19e6bf1cf 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-02-21 +date: 2023-02-22 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 596fe6523a2d2..927faf5319566 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-02-21 +date: 2023-02-22 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_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 99b64dfadbf3a..9944e12d0adb5 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-02-21 +date: 2023-02-22 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 9a2501165adad..689dfe081bf8b 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 447ef2dddf8e1..7522ca07a0cbb 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-02-21 +date: 2023-02-22 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 b1f02f021a94e..2a93e781316a8 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-02-21 +date: 2023-02-22 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 f12bb05c5e02a..152fe5e3ca41a 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-02-21 +date: 2023-02-22 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 bc4d50e4a8ec0..203f3cee97663 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-02-21 +date: 2023-02-22 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 6b2260140b27b..b400ae67ba67a 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-02-21 +date: 2023-02-22 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 0b7384d58217f..9eef0e20e6173 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-02-21 +date: 2023-02-22 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 e38e032918779..f1307f4ee611e 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-02-21 +date: 2023-02-22 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 18856c87584df..7515ba1dede62 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-02-21 +date: 2023-02-22 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 139bc59f09efd..a6795262f5ad7 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-02-21 +date: 2023-02-22 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 450ab51bb769e..fd451237e9748 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-02-21 +date: 2023-02-22 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 a3afc7e6e394c..a4d97d360ed83 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index ef8fbeddce1b6..93592dd5f1941 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-02-21 +date: 2023-02-22 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 ce2c207c44cb9..cb19994ce5109 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 213798600769a..e3dc7195c25c7 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index add3cfd3ddcb2..cd2efdb8ab695 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-02-21 +date: 2023-02-22 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 e1e4d7c386a6a..8d250e2a4fab0 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-02-21 +date: 2023-02-22 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 4a2c126f2c3f4..648ddb83dcba6 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-02-21 +date: 2023-02-22 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_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 741e6e52093bc..ac65688098133 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-02-21 +date: 2023-02-22 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 d64bd39381a14..9e2f3c66e32a0 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-02-21 +date: 2023-02-22 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 c1933b1d716a9..5d865ae5787cb 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-02-21 +date: 2023-02-22 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 d18659ef45b36..1bfb2c392e0f3 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-02-21 +date: 2023-02-22 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 7830db8ad32bf..1b8b85d173f05 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-02-21 +date: 2023-02-22 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 959df4c94ed3d..c4e0abe6b5080 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-02-21 +date: 2023-02-22 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 edfb2c6cdcc37..9c900ecd8652f 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-02-21 +date: 2023-02-22 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 8fa3a18ea5633..048f7ab49a733 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-02-21 +date: 2023-02-22 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.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index a93c450c85fcf..02ec6d3200784 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index 940401dcb1966..df55f55ed2e06 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-02-21 +date: 2023-02-22 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 455c90cf9eae3..1395de4f17b34 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-02-21 +date: 2023-02-22 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 ee287d3470065..b36dda44e671d 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-02-21 +date: 2023-02-22 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 1b5ebe0ee3ab9..ed54250119af9 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-02-21 +date: 2023-02-22 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 20564c2a15c2c..ce4d9fdde00cf 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-02-21 +date: 2023-02-22 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 8dd64775f30e8..262c77e7f062b 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-02-21 +date: 2023-02-22 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 6cfe61898f43f..c1e50f7dba731 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-02-21 +date: 2023-02-22 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 af72da48648c7..3914362340354 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-02-21 +date: 2023-02-22 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 9a1487ae5aca8..b5d1660e9df95 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-02-21 +date: 2023-02-22 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 8b7a45e188408..689e8ad2e124c 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-02-21 +date: 2023-02-22 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 84d5531642146..17c2dfb715875 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-02-21 +date: 2023-02-22 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 d6b422d937535..a2fea2e3111fb 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-02-21 +date: 2023-02-22 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 08f0073f79005..a67cf07e5b28b 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-02-21 +date: 2023-02-22 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 98e19c9f6c08e..5913a20118344 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-02-21 +date: 2023-02-22 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 e0f939a4b42ac..a6801384bf8b8 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-02-21 +date: 2023-02-22 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 bfd3ddd58aef3..198ae5b49b00d 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-02-21 +date: 2023-02-22 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 0e75a42baf3a8..493f47f4e9b67 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-02-21 +date: 2023-02-22 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 98cc4fdf9bf71..6640872b7d604 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-02-21 +date: 2023-02-22 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_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 0a87ef2e49859..59fd93a6babed 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-02-21 +date: 2023-02-22 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 41a8a4bc37989..9893d1871bf06 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-02-21 +date: 2023-02-22 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 b925d3df6c55e..bfcde889bef09 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-02-21 +date: 2023-02-22 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 c01f812af5a4b..bd926c128a8f3 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-02-21 +date: 2023-02-22 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 4b68fa6dc58ca..df204af883f7a 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-02-21 +date: 2023-02-22 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 1c703a2369b3c..49eddd8a9f06c 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-02-21 +date: 2023-02-22 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 3768fbcd49cc6..4510a233a9511 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-02-21 +date: 2023-02-22 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 6b1e2b8a5984b..5092b87c3d55f 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-02-21 +date: 2023-02-22 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 ec00c6ac80b1a..1ced6ba3f37bb 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-02-21 +date: 2023-02-22 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 42ab9f9f06b3b..177fa9c24afd1 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-02-21 +date: 2023-02-22 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 16b4ac7220b90..db05046ebedf6 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-02-21 +date: 2023-02-22 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 bdb90364b95ee..0dfdcc4f8b2c0 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-02-21 +date: 2023-02-22 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 120916cd68c1d..8d8dcd15f257d 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-02-21 +date: 2023-02-22 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 eb96fd40af573..8d46675145ce2 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-02-21 +date: 2023-02-22 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 b6d1deae0b930..84ec584b3fd88 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-02-21 +date: 2023-02-22 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 f427553fea303..653125f0b90f9 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-02-21 +date: 2023-02-22 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 d3cedcf51828e..bde06d7261bc4 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-02-21 +date: 2023-02-22 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 26a062a60edee..7a304119b3b06 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-02-21 +date: 2023-02-22 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 b39d624eb71e4..06c5add7a7c6c 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-02-21 +date: 2023-02-22 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 66fac2533b311..daafb4f8465c2 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-02-21 +date: 2023-02-22 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 35cc667e36f5a..fabe1be18825b 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-02-21 +date: 2023-02-22 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 049ebcb17cb97..7aeae3a3a6b1a 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-02-21 +date: 2023-02-22 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 be11e8095ce12..3bea26b657ab2 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-02-21 +date: 2023-02-22 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 0d993dc36582b..22e4e29361eeb 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-02-21 +date: 2023-02-22 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 08ebaf46f88dc..cef4a3bf686d4 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-02-21 +date: 2023-02-22 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 3c3692c849172..f3577ce09bd65 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-02-21 +date: 2023-02-22 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 471d20db13daf..e0ce41f2d312a 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-02-21 +date: 2023-02-22 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 6af2033dfd0e7..b934c66b352b7 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-02-21 +date: 2023-02-22 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 2fa8c47bf0f20..02f78612b0e19 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-02-21 +date: 2023-02-22 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 013b04a6ab6a3..e81a3caac6a1b 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-02-21 +date: 2023-02-22 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 6487d555a588c..15343a9d10fd3 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-02-21 +date: 2023-02-22 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 0e7fb7d9c2538..e37e7404e01bd 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-02-21 +date: 2023-02-22 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 355290bae78bf..8c623011ee80b 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-02-21 +date: 2023-02-22 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 5443337f7498c..823128b1507ce 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-02-21 +date: 2023-02-22 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 1987689104e19..7f38834280a2c 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-02-21 +date: 2023-02-22 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 5b5f002032916..da196b99a2eb5 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-02-21 +date: 2023-02-22 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 e8c2d9140e38d..b0186a7eaef38 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-02-21 +date: 2023-02-22 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 4f630f5bb6c26..709dc8fe5d4a7 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-02-21 +date: 2023-02-22 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 590c9f141a32c..6699e3ae3a72e 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-02-21 +date: 2023-02-22 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 2d95a6167fe2b..406b0d31950b9 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-02-21 +date: 2023-02-22 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 9c162f36e195c..ad5ab07afb3b4 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-02-21 +date: 2023-02-22 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 9e569eb13c66f..baea6336505ac 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-02-21 +date: 2023-02-22 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 28c69ad56caa3..332d054c84c64 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-02-21 +date: 2023-02-22 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 a81f4e3a573cb..979da7e8af8b6 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-02-21 +date: 2023-02-22 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 0c8e51749bce7..7d0023fc7afd3 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-02-21 +date: 2023-02-22 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 471920263bfca..0ad6d61a8d1c6 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-02-21 +date: 2023-02-22 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 a1cd10b5d2323..5963e56f66d7e 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-02-21 +date: 2023-02-22 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 443a6f043921b..e247b5efe098b 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-02-21 +date: 2023-02-22 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 16cacfa325773..008b6803db948 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index b5294a551334e..6acfa2346e9fb 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-02-21 +date: 2023-02-22 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 40ce8a38d116e..790f98e3ddd5d 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-02-21 +date: 2023-02-22 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 77bedb1b11517..9ff6e16060236 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-02-21 +date: 2023-02-22 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 8ebf24f36e2e5..492b0b8e9eff8 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-02-21 +date: 2023-02-22 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 561435c2be514..34e21f90f69ca 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-02-21 +date: 2023-02-22 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 6d6bbc6a02f26..43029c741cf22 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-02-21 +date: 2023-02-22 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 f02a89ac26fcb..5263f92208fec 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-02-21 +date: 2023-02-22 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 3eb4448752b3e..df6f491f4f595 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-02-21 +date: 2023-02-22 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 6635a01a23bb7..f8ea753a35c43 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-02-21 +date: 2023-02-22 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 228899752c821..022b03256e6b1 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-02-21 +date: 2023-02-22 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 76588c2a1f27a..0416a4f58c2fa 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-02-21 +date: 2023-02-22 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 c1ef320f6acc1..4788c5b1b8020 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-02-21 +date: 2023-02-22 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 9a21cb27a02d1..a9fe231cb944b 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-02-21 +date: 2023-02-22 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 9c86e4b570f5f..ac81901ba529d 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-02-21 +date: 2023-02-22 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 9c56b9606c241..0f547a2ec7bfd 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -2380,6 +2380,20 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.appId", @@ -2630,6 +2644,38 @@ ], "returnComment": [] }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad", + "type": "Function", + "tags": [], + "label": "onLoad", + "description": [], + "signature": [ + "((loading: boolean) => void) | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad.$1", + "type": "boolean", + "tags": [], + "label": "loading", + "description": [], + "signature": [ + "boolean" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.caseOwner", @@ -2800,6 +2846,20 @@ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.searchSessionId", + "type": "string", + "tags": [], + "label": "searchSessionId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 920856da040ca..2bdf7a44c55a8 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; -Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) for questions regarding this plugin. +Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 615 | 43 | 609 | 32 | +| 619 | 43 | 613 | 32 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 18a3338a0bd36..5857090cae573 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-02-21 +date: 2023-02-22 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 c859b841720ff..823e0e09fc7ab 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-02-21 +date: 2023-02-22 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 | |--------------|----------|------------------------| -| 573 | 469 | 39 | +| 573 | 469 | 38 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 67651 | 515 | 58481 | 1232 | +| 67699 | 515 | 58528 | 1234 | ## Plugin Directory @@ -35,7 +35,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 87 | 0 | 71 | 28 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 92 | 0 | 75 | 28 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | @@ -47,7 +47,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 41 | 0 | 41 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 46 | 0 | 46 | 3 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 270 | 0 | 266 | 9 | | 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 | @@ -90,7 +90,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1079 | 3 | 974 | 26 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1087 | 3 | 982 | 27 | | ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 | @@ -127,7 +127,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 34 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 615 | 43 | 609 | 32 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 619 | 43 | 613 | 32 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 | | painlessLab | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 219 | 7 | 163 | 12 | @@ -135,7 +135,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 257 | 0 | 228 | 13 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 258 | 0 | 229 | 13 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 19 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 216 | 2 | 175 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 16 | 0 | 16 | 0 | @@ -164,7 +164,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 257 | 1 | 214 | 20 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 559 | 11 | 530 | 49 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 560 | 11 | 531 | 50 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 267 | 0 | 242 | 7 | @@ -394,12 +394,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-docs](https://github.com/orgs/elastic/teams/kibana-docs) | - | 68 | 0 | 68 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 11 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35102 | 0 | 34695 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35125 | 0 | 34718 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 9 | 0 | 1 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 250 | 1 | 192 | 15 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 251 | 1 | 193 | 15 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 16 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b9618c23b8f65..ca90f53818d29 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-02-21 +date: 2023-02-22 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 db28fdc75ba51..92a6bf72ba860 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-02-21 +date: 2023-02-22 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 df53b30d642e5..80802750fb4e7 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-02-21 +date: 2023-02-22 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 9cb366395527d..b643c0c5e765d 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-02-21 +date: 2023-02-22 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 a253b1d85aad9..c4ec0e27c4ed1 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index 9e7abc7076580..899300a8b0ad8 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -321,9 +321,9 @@ "section": "def-common.RuleTypeParams", "text": "RuleTypeParams" }, - " = never>({ query, aggs, _source, track_total_hits: trackTotalHits, size, index, sort, search_after: searchAfter, }: { query?: object | undefined; aggs?: object | undefined; index: string | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; size?: number | undefined; sort?: ", + " = never>({ aggs, featureIds, index, query, search_after: searchAfter, size, sort, track_total_hits: trackTotalHits, _source, }: { aggs?: object | undefined; featureIds?: string[] | undefined; index?: string | undefined; query?: object | undefined; search_after?: (string | number)[] | undefined; size?: number | undefined; sort?: ", "SortOptions", - "[] | undefined; search_after?: (string | number)[] | undefined; }) => Promise<", + "[] | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; }) => Promise<", "SearchResponse", ">, Record[]>; getCurrent: []>; bulkGet: (params?: ", + ">(params: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" + "section": "def-public.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" }, - " | undefined) => Promise<", + ") => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.GetUserProfileResponse", - "text": "GetUserProfileResponse" + "section": "def-common.UserProfile", + "text": "UserProfile" }, - ">; bulkGet: []>; getCurrent: (params: ", + ">(params?: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" + "section": "def-public.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" }, - ") => Promise<", + " | undefined) => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" + "section": "def-common.GetUserProfileResponse", + "text": "GetUserProfileResponse" }, - "[]>; }" + ">; }" ], "path": "x-pack/plugins/security/public/plugin.tsx", "deprecated": false, diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 70191ab01dddd..20f3f67992499 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-02-21 +date: 2023-02-22 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 7d8ff51f0d821..3fca53000d055 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-02-21 +date: 2023-02-22 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 753021b212885..3c4112f5b12bb 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 0a2150f3472a8..7c88529509d63 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-02-21 +date: 2023-02-22 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 a07946b0b092d..6a9ef464b4a1a 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-02-21 +date: 2023-02-22 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 cc10d7b96133a..b7a23034f97ae 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-02-21 +date: 2023-02-22 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 fba351dcf90a6..5e6dd0c326df3 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-02-21 +date: 2023-02-22 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 1e632a9600bba..53877c1f379f1 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-02-21 +date: 2023-02-22 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 8e881116157f5..d27609972d4ea 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-02-21 +date: 2023-02-22 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 8a6bbb9e3cbaa..45a23863a7603 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-02-21 +date: 2023-02-22 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 0c6893e47cc3a..aec602235ecea 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-02-21 +date: 2023-02-22 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 58d6865457bff..7d8cb8fbfdc83 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-02-21 +date: 2023-02-22 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 8d75936a263a8..56d906f61b8bd 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-02-21 +date: 2023-02-22 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 6349f41c5699b..8f6afa0b6a22d 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-02-21 +date: 2023-02-22 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 de4bac799f58a..06481d7cb1e1f 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-02-21 +date: 2023-02-22 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 76a65f5eb8c92..183bea6a7a636 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-02-21 +date: 2023-02-22 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 688489bebe219..bd2c23e17e0fc 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -2762,6 +2762,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.AlertsTableProps.casesData", + "type": "Object", + "tags": [], + "label": "casesData", + "description": [], + "signature": [ + "{ cases: Map; isLoading: boolean; }" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "triggersActionsUi", "id": "def-public.AlertsTableProps.columns", diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 0cd2f8955e1a1..86bbc27828a92 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 559 | 11 | 530 | 49 | +| 560 | 11 | 531 | 50 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 4125cdb045e35..d2f75cdadaf80 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-02-21 +date: 2023-02-22 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 eea96407dace6..bf728dcf6e4af 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 34d2c09362829..46fe9159c1b3a 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index ddc71d4cfd0b3..b41ff3a4825b7 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-02-21 +date: 2023-02-22 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 651e8c93786c9..152a96e32fcfa 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-02-21 +date: 2023-02-22 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 e5bcf93633d3f..c6f0835d6d807 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-02-21 +date: 2023-02-22 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 73feec578abc9..259a59040d68e 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-02-21 +date: 2023-02-22 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 35aae853c2e12..5c7d485d13000 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-02-21 +date: 2023-02-22 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 3b184cd0f3e92..f1a6c2942c2c5 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-02-21 +date: 2023-02-22 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 c1909f3b2ff58..e5721b92a859b 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-02-21 +date: 2023-02-22 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 d0eb416f6c0b0..27036c12206fb 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-02-21 +date: 2023-02-22 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 e12b5502a0c0f..9cd7efc20188d 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-02-21 +date: 2023-02-22 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 444127e1ec286..e1cec18a5f5e7 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-02-21 +date: 2023-02-22 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 8b4667ed7e8b3..0032031091454 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-02-21 +date: 2023-02-22 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 72a47efd044dd..65b5fe199ab0d 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-02-21 +date: 2023-02-22 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 e45229f25e088..0ab63eb8a1f12 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-02-21 +date: 2023-02-22 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 10248e6aa1b28..867534e663eb3 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-02-21 +date: 2023-02-22 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 f1761d76647b8..3a61dfd4e18bb 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-02-21 +date: 2023-02-22 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 01232bd409ecd..ca42d227a9945 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-02-21 +date: 2023-02-22 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 fb6fa4c55159c..46dd73403f330 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-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 67e19ec2b2433dc720d308ded44e71e7bbea312b Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Wed, 22 Feb 2023 08:42:19 +0200 Subject: [PATCH 03/31] [Visualizations] Fixes legend actions accessibility (#151678) ## Summary Closes https://github.com/elastic/kibana/issues/148647 Fixes accessibility problem on legend actions button. --- .../public/utils/get_legend_actions.tsx | 3 +++ .../expression_xy/public/components/legend_action_popover.tsx | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx index 9ef6fbb13d50d..9852040060e7c 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx +++ b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx @@ -130,6 +130,9 @@ export const getLegendActions = ( data-test-subj={`legend-${title}`} onKeyPress={() => setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionPartitionVis.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} > diff --git a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx index e01ed18b106ce..1a6fae2feb153 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx @@ -98,6 +98,9 @@ export const LegendActionPopover: React.FunctionComponent setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionXY.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} > From cfe91b199dab7e1951bb27a08a27af785de27267 Mon Sep 17 00:00:00 2001 From: Or Ouziel Date: Wed, 22 Feb 2023 09:25:35 +0200 Subject: [PATCH 04/31] [Cloud Posture] add tests for findings flyout toggling (#150551) --- .../findings_flyout/findings_flyout.tsx | 3 +- .../latest_findings_table.test.tsx | 66 +++++++++---------- .../pages/findings/layout/findings_layout.tsx | 2 + .../public/pages/findings/test_subjects.ts | 2 + 4 files changed, 38 insertions(+), 35 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx index 8229084c10dd9..0c1f9dd288e8d 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx @@ -33,6 +33,7 @@ import { RuleTab } from './rule_tab'; import type { BenchmarkId } from '../../../../common/types'; import { CISBenchmarkIcon } from '../../../components/cis_benchmark_icon'; import { BenchmarkName } from '../../../../common/types'; +import { FINDINGS_FLYOUT } from '../test_subjects'; const tabs = [ { @@ -112,7 +113,7 @@ export const FindingsRuleFlyout = ({ onClose, findings }: FindingFlyoutProps) => const [tab, setTab] = useState(tabs[0]); return ( - + diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx index 968db8feb53b2..443f7c9d51de3 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx @@ -19,14 +19,15 @@ const chance = new Chance(); type TableProps = PropsOf; describe('', () => { - it('renders the zero state when status success and data has a length of zero ', async () => { + const renderWrapper = (opts?: Partial) => { const props: TableProps = { loading: false, - items: [], + items: opts?.items || [], sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, + pagination: { pageSize: 10, pageIndex: 1, totalItemCount: opts?.items?.length || 0 }, setTableOptions: jest.fn(), onAddFilter: jest.fn(), + ...opts, }; render( @@ -34,6 +35,24 @@ describe('', () => { ); + return props; + }; + + it('opens/closes the flyout when clicked on expand/close buttons ', () => { + renderWrapper({ items: [getFindingsFixture()] }); + + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)); + expect(screen.getByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId('euiFlyoutCloseButton')); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + }); + + 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) @@ -42,22 +61,12 @@ describe('', () => { it('renders the table with provided items', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - onAddFilter: jest.fn(), - }; - - render( - - - - ); + renderWrapper({ items: data }); data.forEach((item) => { expect(screen.getByText(item.rule.name)).toBeInTheDocument(); @@ -66,23 +75,12 @@ describe('', () => { it('adds filter with a cell button click', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); - - const filterProps = { onAddFilter: jest.fn() }; - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - ...filterProps, - }; + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - render( - - - - ); + const props = renderWrapper({ items: data }); const row = data[0]; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx index 5a37f67333f60..6b46eba1a87bc 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx @@ -28,6 +28,7 @@ import { CspEvaluationBadge } from '../../../components/csp_evaluation_badge'; import { FINDINGS_TABLE_CELL_ADD_FILTER, FINDINGS_TABLE_CELL_ADD_NEGATED_FILTER, + FINDINGS_TABLE_EXPAND_COLUMN, } from '../test_subjects'; export type OnAddFilter = (key: T, value: Serializable, negate: boolean) => void; @@ -51,6 +52,7 @@ export const getExpandColumn = ({ width: '40px', actions: [ { + 'data-test-subj': FINDINGS_TABLE_EXPAND_COLUMN, name: i18n.translate('xpack.csp.expandColumnNameLabel', { defaultMessage: 'Expand' }), description: i18n.translate('xpack.csp.expandColumnDescriptionLabel', { defaultMessage: 'Expand', diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts index d7a2e89fad9fb..daf1edd4f8550 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts @@ -5,6 +5,8 @@ * 2.0. */ +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'; From c2f639d1691d2dfe647db19d655beec7122330f0 Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Wed, 22 Feb 2023 12:29:31 +0400 Subject: [PATCH 05/31] [Enterprise Search] Fixes an index name inconsistency bug (#151720) This fixes a bug where sometimes (after creating a crawler index) we'd see some inconsistent index name usage with unexpected redirects. This was caused by the search index component not unloading properly. Removing the `prop` usage makes sure we're no longer relying on loading/unloading to set the index name. --- .../search_index/documents_logic.test.ts | 11 +++---- .../search_index/index_name_logic.ts | 32 +++++++++---------- .../search_index/index_view_logic.test.ts | 29 ++++++++++------- ...ipelines_json_configurations_logic.test.ts | 8 +++-- .../components/search_index/search_index.tsx | 1 + .../search_index/search_index_router.tsx | 6 ++-- 6 files changed, 46 insertions(+), 41 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts index 28037f346c1ad..3dd9c0f41533c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts @@ -41,12 +41,11 @@ describe('DocumentsLogic', () => { beforeEach(() => { jest.clearAllMocks(); - // due to connect, need to pass props down to each logic - const indexNameProps = { indexName: 'indexName' }; - mountIndexNameLogic(undefined, indexNameProps); - mountMappingsApiLogic(undefined, indexNameProps); - mountSearchDocumentsApiLogic(undefined, indexNameProps); - mount(undefined, indexNameProps); + const indexNameLogic = mountIndexNameLogic(); + mountMappingsApiLogic(); + mountSearchDocumentsApiLogic(); + mount(); + indexNameLogic.actions.setIndexName('indexName'); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts index b18f1dc6a15b3..c2a94b21f47b2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts @@ -17,20 +17,18 @@ export interface IndexNameActions { setIndexName: (indexName: string) => { indexName: string }; } -export const IndexNameLogic = kea>( - { - actions: { - setIndexName: (indexName) => ({ indexName }), - }, - path: ['enterprise_search', 'content', 'index_name'], - reducers: ({ props }) => ({ - indexName: [ - // Short-circuiting this to empty string is necessary to enable testing logics relying on this - props.indexName ?? '', - { - setIndexName: (_, { indexName }) => indexName, - }, - ], - }), - } -); +export const IndexNameLogic = kea>({ + actions: { + setIndexName: (indexName) => ({ indexName }), + }, + path: ['enterprise_search', 'content', 'index_name'], + reducers: () => ({ + indexName: [ + // Short-circuiting this to empty string is necessary to enable testing logics relying on this + '', + { + setIndexName: (_, { indexName }) => indexName, + }, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts index 3ff4355636f89..5e4256f92a97b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts @@ -31,21 +31,27 @@ import { IndexViewLogic } from './index_view_logic'; // And the timeoutId is non-deterministic. We use expect.object.containing throughout this test file const DEFAULT_VALUES = { connector: undefined, + connectorError: undefined, connectorId: null, error: null, - fetchIndexApiData: undefined, - fetchIndexApiStatus: Status.IDLE, + fetchIndexApiData: {}, + fetchIndexApiStatus: Status.SUCCESS, hasAdvancedFilteringFeature: false, hasBasicFilteringFeature: false, hasFilteringFeature: false, - index: undefined, - indexData: null, + htmlExtraction: undefined, + index: { + ingestionMethod: IngestionMethod.API, + ingestionStatus: IngestionStatus.CONNECTED, + lastUpdated: null, + }, + indexData: {}, indexName: 'index-name', ingestionMethod: IngestionMethod.API, ingestionStatus: IngestionStatus.CONNECTED, isCanceling: false, isConnectorIndex: false, - isInitialLoading: true, + isInitialLoading: false, isSyncing: false, isWaitingForSync: false, lastUpdated: null, @@ -68,7 +74,7 @@ const CONNECTOR_VALUES = { describe('IndexViewLogic', () => { const { mount: apiLogicMount } = new LogicMounter(StartSyncApiLogic); const { mount: fetchIndexMount } = new LogicMounter(CachedFetchIndexApiLogic); - const indexNameLogic = new LogicMounter(IndexNameLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount } = new LogicMounter(IndexViewLogic); const { flashSuccessToast } = mockFlashMessageHelpers; const { http } = mockHttpValues; @@ -76,16 +82,15 @@ describe('IndexViewLogic', () => { beforeEach(() => { jest.clearAllMocks(); jest.useRealTimers(); - indexNameLogic.mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + http.get.mockReturnValueOnce(Promise.resolve({})); + const indexNameLogic = indexNameMount(); apiLogicMount(); - fetchIndexMount({ indexName: 'index-name' }, { indexName: 'index-name' }); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + fetchIndexMount(); + mount(); + indexNameLogic.actions.setIndexName('index-name'); }); it('has expected default values', () => { - http.get.mockReturnValueOnce(Promise.resolve(() => ({}))); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); - expect(IndexViewLogic.values).toEqual(DEFAULT_VALUES); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts index 2359cf6e67390..6fbeffd30b714 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts @@ -10,6 +10,8 @@ import { nextTick } from '@kbn/test-jest-helpers'; import { FetchCustomPipelineApiLogic } from '../../../api/index/fetch_custom_pipeline_api_logic'; +import { IndexNameLogic } from '../index_name_logic'; + import { IndexPipelinesConfigurationsLogic, IndexPipelinesConfigurationsValues, @@ -28,13 +30,15 @@ const DEFAULT_VALUES: IndexPipelinesConfigurationsValues = { describe('IndexPipelinesConfigurationsLogic', () => { const { mount } = new LogicMounter(IndexPipelinesConfigurationsLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount: mountFetchCustomPipelineApiLogic } = new LogicMounter(FetchCustomPipelineApiLogic); beforeEach(async () => { jest.clearAllMocks(); - const indexNameProps = { indexName }; + const indexNameLogic = indexNameMount(); mountFetchCustomPipelineApiLogic(); - mount(undefined, indexNameProps); + mount(); + indexNameLogic.actions.setIndexName(indexName); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx index b09a0a9d8a96a..0643cce0f8173 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx @@ -97,6 +97,7 @@ export const SearchIndex: React.FC = () => { useEffect(() => { if ( isConnectorIndex(index) && + index.name === indexName && index.connector.is_native && index.connector.service_type === null ) { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx index 1e85b3b3e2ba9..128fb3ea8fc6e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx @@ -27,12 +27,10 @@ import { SearchIndex } from './search_index'; export const SearchIndexRouter: React.FC = () => { const indexName = decodeURIComponent(useParams<{ indexName: string }>().indexName); - - const indexNameLogic = IndexNameLogic({ indexName }); - const { setIndexName } = useActions(indexNameLogic); + const { setIndexName } = useActions(IndexNameLogic); const { stopFetchIndexPoll } = useActions(IndexViewLogic); useEffect(() => { - const unmountName = indexNameLogic.mount(); + const unmountName = IndexNameLogic.mount(); const unmountView = IndexViewLogic.mount(); return () => { stopFetchIndexPoll(); From c0a1f072efa9eb1b4134f2204dd4402b44ae9ea7 Mon Sep 17 00:00:00 2001 From: Achyut Jhunjhunwala Date: Wed, 22 Feb 2023 10:09:43 +0100 Subject: [PATCH 06/31] [APM]update kibana docs for maxTraceItems (#151734) ## Summary Since we have this PR merged - https://github.com/elastic/kibana/pull/149062 the documentation too needs to be updated --- docs/settings/apm-settings.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/settings/apm-settings.asciidoc b/docs/settings/apm-settings.asciidoc index 9c3a893fd0214..c503b4cdcbf9c 100644 --- a/docs/settings/apm-settings.asciidoc +++ b/docs/settings/apm-settings.asciidoc @@ -69,7 +69,7 @@ Maximum number of traces per request for generating the global service map. Defa Set to `false` to hide the APM app from the main menu. Defaults to `true`. `xpack.apm.ui.maxTraceItems` {ess-icon}:: -Maximum number of child items displayed when viewing trace details. Defaults to `1000`. +Maximum number of child items displayed when viewing trace details. Defaults to `5000`. `xpack.observability.annotations.index` {ess-icon}:: Index name where Observability annotations are stored. Defaults to `observability-annotations`. From 24a1011691bd482d71958e8f2d781ac9a2246b5a Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Wed, 22 Feb 2023 09:27:56 +0000 Subject: [PATCH 07/31] [Fleet] Fix flaky package policy integration test (#151769) ## Summary Closes #151661 I think creating all of the package policies at once in this test is causing it to be flaky, reverting to creating them one by one. ``` TypeError: Cannot read properties of undefined (reading 'id') at createPackagePolicy (upgrade.ts:1303:60) ``` --- .../apis/package_policy/upgrade.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts index 11f315237024f..557d5a9b4d9b2 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts @@ -1299,7 +1299,12 @@ export default function (providerContext: FtrProviderContext) { }, }, }); - + if (!packagePolicyResponse.item || !packagePolicyResponse.item.id) { + throw new Error( + 'Package policy id is missing, response: ' + + JSON.stringify(packagePolicyResponse, null, 2) + ); + } packagePolicyIds.push(packagePolicyResponse.item.id); expectedAssets.push( { id: `logs-somedataset${id}-3.0.0`, type: 'ingest_pipeline' }, @@ -1309,9 +1314,9 @@ export default function (providerContext: FtrProviderContext) { ); }; - await Promise.all( - new Array(POLICY_COUNT).fill(0).map((_, i) => createPackagePolicy(i.toString())) - ); + for (let i = 0; i < POLICY_COUNT; i++) { + await createPackagePolicy(i.toString()); + } }); afterEach(async function () { From e7c77c3b50e49f67fb479ae7b3fa7734ce1f1497 Mon Sep 17 00:00:00 2001 From: Kfir Peled <61654899+kfirpeled@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:57:23 +0200 Subject: [PATCH 08/31] [Cloud Security] Plugin Initialize - Updating `logs-cloud_security_posture.scores-default` index mappings (#151619) --- .../server/create_indices/create_indices.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts index 93ea23a4e5b1e..ea93ae458eb2b 100644 --- a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts +++ b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts @@ -65,7 +65,16 @@ const createBenchmarkScoreIndex = async (esClient: ElasticsearchClient, logger: priority: 500, }); - await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + const result = await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + + if (result === 'already-exists') { + await updateIndexSafe( + esClient, + logger, + BENCHMARK_SCORE_INDEX_DEFAULT_NS, + benchmarkScoreMapping + ); + } } catch (e) { logger.error( `Failed to upsert index template [Template: ${BENCHMARK_SCORE_INDEX_TEMPLATE_NAME}]` From f7f29d758be3e31f67900bd788cf16e3dde98dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kopyci=C5=84ski?= Date: Wed, 22 Feb 2023 11:08:10 +0100 Subject: [PATCH 09/31] =?UTF-8?q?[Osquery]=20Fix=20logic=20responsible=20f?= =?UTF-8?q?or=20retrieving=20agent=20policies=20in=20Live=E2=80=A6=20(#151?= =?UTF-8?q?315)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … query form --- .../osquery/server/routes/fleet_wrapper/get_package_policies.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts index 44cd21a88fc9e..2b9004ee3c882 100644 --- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts +++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts @@ -29,6 +29,7 @@ export const getPackagePoliciesRoute = (router: IRouter, osqueryContext: Osquery const packagePolicyService = osqueryContext.service.getPackagePolicyService(); const policies = await packagePolicyService?.list(internalSavedObjectsClient, { kuery, + perPage: 1000, }); return response.ok({ From 355f77b75216067a3de4c4e515276bd52ffe37dd Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 22 Feb 2023 11:13:41 +0100 Subject: [PATCH 10/31] [CM] Add example app story, adjust client API (#151163) ## Summary **In this PR:** - Adds an example demo app that uses a content type CRUD and search. - The example uses client-side CRUD (see `TodosClient`), it doesn't use server-side registry - I plan to follow up with an end-to-end example plugin that uses the server-side registry and re-uses most of the client side `demo/` code - Adjust the `CrudClient` interface to not use generics on methods as this made it impossible to use properly for implementing the client-side custom client like `TodosClient` (I was hitting this https://github.com/elastic/kibana/pull/151163#discussion_r1106926899) - Adjust the types on the client to match the recent server-side changes - Fix missing types in client APIs - Invalidate active queries after updates succeed (in mutation hooks for now) https://ci-artifacts.kibana.dev/storybooks/pr-151163/7dcb085da80cdbf15978de0e005c5c2568bb3e79/content_management_plugin/index.html Screenshot 2023-02-21 at 11 20 20 **The main goal of this PR was to try to use the CM API and find any caveats. Something I struggled with:** - `CrudClient` with generics on the methods was impossible to use as an interfaces for a custom client-side crud client. See https://github.com/elastic/kibana/pull/151163#discussion_r1106926899. I simplified and seems like didn't use any typescript value - For Todo app use case we work with a single content type. But the apis require to specify `contentTypeId` everywhere separately instead of once. see https://github.com/elastic/kibana/pull/151163#discussion_r1106930934. Maybe we should add `Scoped*` version of the APIs where you don't need to specify `contentTypeId` every time --- .../steps/storybooks/build_and_upload.ts | 1 + src/dev/storybook/aliases.ts | 1 + .../content_management/.storybook/main.js | 9 ++ .../demo/todo/todo.stories.test.tsx | 90 ++++++++++++ .../demo/todo/todo.stories.tsx | 35 +++++ .../content_management/demo/todo/todos.tsx | 133 ++++++++++++++++++ .../demo/todo/todos_client.ts | 64 +++++++++ .../public/content_client/content_client.tsx | 18 +-- .../content_client_mutation_hooks.tsx | 22 ++- .../public/crud_client/crud_client.ts | 10 +- src/plugins/content_management/tsconfig.json | 2 +- 11 files changed, 367 insertions(+), 18 deletions(-) create mode 100644 src/plugins/content_management/.storybook/main.js create mode 100644 src/plugins/content_management/demo/todo/todo.stories.test.tsx create mode 100644 src/plugins/content_management/demo/todo/todo.stories.tsx create mode 100644 src/plugins/content_management/demo/todo/todos.tsx create mode 100644 src/plugins/content_management/demo/todo/todos_client.ts diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.ts b/.buildkite/scripts/steps/storybooks/build_and_upload.ts index d6dff037dd98a..fbe8daee88370 100644 --- a/.buildkite/scripts/steps/storybooks/build_and_upload.ts +++ b/.buildkite/scripts/steps/storybooks/build_and_upload.ts @@ -19,6 +19,7 @@ const STORYBOOKS = [ 'cloud_chat', 'coloring', 'chart_icons', + 'content_management_plugin', 'controls', 'custom_integrations', 'dashboard_enhanced', diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index d7bafce5fe508..fc80a35a2def8 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -18,6 +18,7 @@ export const storybookAliases = { language_documentation_popover: 'packages/kbn-language-documentation-popover/.storybook', chart_icons: 'packages/kbn-chart-icons/.storybook', content_management: 'packages/content-management/.storybook', + content_management_plugin: 'src/plugins/content_management/.storybook', controls: 'src/plugins/controls/storybook', custom_integrations: 'src/plugins/custom_integrations/storybook', dashboard_enhanced: 'x-pack/plugins/dashboard_enhanced/.storybook', diff --git a/src/plugins/content_management/.storybook/main.js b/src/plugins/content_management/.storybook/main.js new file mode 100644 index 0000000000000..8dc3c5d1518f4 --- /dev/null +++ b/src/plugins/content_management/.storybook/main.js @@ -0,0 +1,9 @@ +/* + * 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. + */ + +module.exports = require('@kbn/storybook').defaultConfig; diff --git a/src/plugins/content_management/demo/todo/todo.stories.test.tsx b/src/plugins/content_management/demo/todo/todo.stories.test.tsx new file mode 100644 index 0000000000000..e2f0a21643445 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.test.tsx @@ -0,0 +1,90 @@ +/* + * 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 { render, screen, within, waitForElementToBeRemoved } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { SimpleTodoApp } from './todo.stories'; + +test('SimpleTodoApp works', async () => { + render(); + + // check initial todos + let todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + let [firstTodo, secondTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + expect(secondTodo).toHaveTextContent('Learn Kibana'); + + const [firstTodoCheckbox, secondTodoCheckbox] = await screen.findAllByRole('checkbox'); + expect(firstTodoCheckbox).toBeChecked(); + expect(secondTodoCheckbox).not.toBeChecked(); + + // apply "completed" filter + let todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + let completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + + // apply "todo" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const todoFilter = within(todoFilters).getByTestId('todo'); + userEvent.click(todoFilter); + + // check only todo todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Kibana'); + + // apply "all" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const allFilter = within(todoFilters).getByTestId('all'); + userEvent.click(allFilter); + + // check all todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, secondTodo] = todos; + + // add new todo + const newTodoInput = screen.getByTestId('newTodo'); + userEvent.type(newTodoInput, 'Learn React{enter}'); + + // wait for new todo to be added + await screen.findByText('Learn React'); + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(3); + let newTodo = todos[2]; + + // mark new todo as completed + userEvent.click(within(newTodo).getByRole('checkbox')); + + // apply "completed" filter again + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown and a new todo is there + await screen.findByText('Learn React'); // wait for new todo to be there + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, newTodo] = todos; + expect(newTodo).toHaveTextContent('Learn React'); + + // remove new todo + userEvent.click(within(newTodo).getByLabelText('Delete')); + + // wait for new todo to be removed + await waitForElementToBeRemoved(() => screen.getByText('Learn React')); +}); diff --git a/src/plugins/content_management/demo/todo/todo.stories.tsx b/src/plugins/content_management/demo/todo/todo.stories.tsx new file mode 100644 index 0000000000000..23cd2a194cf6d --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.tsx @@ -0,0 +1,35 @@ +/* + * 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 * as React from 'react'; +import { Todos } from './todos'; +import { ContentClientProvider, ContentClient } from '../../public/content_client'; +import { TodosClient } from './todos_client'; + +export default { + title: 'Content Management/Demo/Todo', + description: 'A demo todo app that uses content management', + parameters: {}, +}; + +const todosClient = new TodosClient(); +const contentClient = new ContentClient((contentType: string) => { + switch (contentType) { + case 'todos': + return todosClient; + + default: + throw new Error(`Unknown content type: ${contentType}`); + } +}); + +export const SimpleTodoApp = () => ( + + + +); diff --git a/src/plugins/content_management/demo/todo/todos.tsx b/src/plugins/content_management/demo/todo/todos.tsx new file mode 100644 index 0000000000000..667e455029ab4 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos.tsx @@ -0,0 +1,133 @@ +/* + * 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 { EuiButtonGroup, EuiButtonIcon, EuiCheckbox, EuiFieldText, EuiSpacer } from '@elastic/eui'; + +import { + useCreateContentMutation, + useDeleteContentMutation, + useSearchContentQuery, + useUpdateContentMutation, + // eslint-disable-next-line @kbn/imports/no_boundary_crossing +} from '../../public/content_client'; +import type { Todo, TodoCreateIn, TodoDeleteIn, TodoSearchIn, TodoUpdateIn } from './todos_client'; + +const useCreateTodoMutation = () => useCreateContentMutation(); +const useDeleteTodoMutation = () => useDeleteContentMutation(); +const useUpdateTodoMutation = () => useUpdateContentMutation(); +const useSearchTodosQuery = ({ filter }: { filter: TodoSearchIn['query']['filter'] }) => + useSearchContentQuery({ + contentTypeId: 'todos', + query: { filter }, + }); + +type TodoFilter = 'all' | 'completed' | 'todo'; +const filters = [ + { + id: `all`, + label: 'All', + }, + { + id: `completed`, + label: 'Completed', + }, + { + id: `todo`, + label: 'Todo', + }, +]; + +export const Todos = () => { + const [filterIdSelected, setFilterIdSelected] = React.useState('all'); + + const { data, isLoading, isError, error } = useSearchTodosQuery({ + filter: filterIdSelected === 'all' ? undefined : filterIdSelected, + }); + + const createTodoMutation = useCreateTodoMutation(); + const deleteTodoMutation = useDeleteTodoMutation(); + const updateTodoMutation = useUpdateTodoMutation(); + + if (isLoading) return

Loading...

; + if (isError) return

Error: {error}

; + + return ( + <> + { + setFilterIdSelected(id as TodoFilter); + }} + /> + +
    + {data.hits.map((todo: Todo) => ( + +
  • + { + updateTodoMutation.mutate({ + contentTypeId: 'todos', + id: todo.id, + data: { + completed: e.target.checked, + }, + }); + }} + label={todo.title} + data-test-subj={`todoCheckbox-${todo.id}`} + /> + + { + deleteTodoMutation.mutate({ contentTypeId: 'todos', id: todo.id }); + }} + /> +
  • + +
    + ))} +
+ +
{ + const inputRef = (e.target as HTMLFormElement).elements.namedItem( + 'newTodo' + ) as HTMLInputElement; + if (!inputRef || !inputRef.value) return; + + createTodoMutation.mutate({ + contentTypeId: 'todos', + data: { + title: inputRef.value, + }, + }); + + inputRef.value = ''; + e.preventDefault(); + }} + > + + + + ); +}; diff --git a/src/plugins/content_management/demo/todo/todos_client.ts b/src/plugins/content_management/demo/todo/todos_client.ts new file mode 100644 index 0000000000000..c6f5fe4bf5f36 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos_client.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 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 { v4 as uuidv4 } from 'uuid'; +import type { CrudClient } from '../../public/crud_client'; +import type { CreateIn, DeleteIn, GetIn, SearchIn, UpdateIn } from '../../common'; + +export interface Todo { + id: string; + title: string; + completed: boolean; +} + +export type TodoCreateIn = CreateIn<'todos', { title: string }>; +export type TodoUpdateIn = UpdateIn<'todos', Partial>>; +export type TodoDeleteIn = DeleteIn<'todos', { id: string }>; +export type TodoGetIn = GetIn<'todos'>; +export type TodoSearchIn = SearchIn<'todos', { filter?: 'todo' | 'completed' }>; + +export class TodosClient implements CrudClient { + private todos: Todo[] = [ + { id: uuidv4(), title: 'Learn Elasticsearch', completed: true }, + { id: uuidv4(), title: 'Learn Kibana', completed: false }, + ]; + + async create(input: TodoCreateIn): Promise { + const todo = { + id: uuidv4(), + title: input.data.title, + completed: false, + }; + this.todos.push(todo); + return todo; + } + + async delete(input: TodoDeleteIn): Promise { + this.todos = this.todos.filter((todo) => todo.id !== input.id); + } + + async get(input: TodoGetIn): Promise { + return this.todos.find((todo) => todo.id === input.id)!; + } + + async search(input: TodoSearchIn): Promise<{ hits: Todo[] }> { + const filter = input.query.filter; + if (filter === 'todo') return { hits: this.todos.filter((t) => !t.completed) }; + if (filter === 'completed') return { hits: this.todos.filter((t) => t.completed) }; + return { hits: [...this.todos] }; + } + + async update(input: TodoUpdateIn): Promise { + const idToUpdate = input.id; + const todoToUpdate = this.todos.find((todo) => todo.id === idToUpdate)!; + if (todoToUpdate) { + Object.assign(todoToUpdate, input.data); + } + return { ...todoToUpdate }; + } +} diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 149e509ae9510..8dfb13223735e 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -11,13 +11,13 @@ import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; -const queryKeyBuilder = { +export const queryKeyBuilder = { all: (type: string) => [type] as const, item: (type: string, id: string) => { return [...queryKeyBuilder.all(type), id] as const; }, - search: (type: string, params: unknown) => { - return [...queryKeyBuilder.all(type), 'search', params] as const; + search: (type: string, query: unknown) => { + return [...queryKeyBuilder.all(type), 'search', query] as const; }, }; @@ -30,13 +30,13 @@ const createQueryOptionBuilder = ({ get: (input: I) => { return { queryKey: queryKeyBuilder.item(input.contentTypeId, input.id), - queryFn: () => crudClientProvider(input.contentTypeId).get(input), + queryFn: () => crudClientProvider(input.contentTypeId).get(input) as Promise, }; }, search: (input: I) => { return { queryKey: queryKeyBuilder.search(input.contentTypeId, input.query), - queryFn: () => crudClientProvider(input.contentTypeId).search(input), + queryFn: () => crudClientProvider(input.contentTypeId).search(input) as Promise, }; }, }; @@ -62,19 +62,19 @@ export class ContentClient { } create(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).create(input); + return this.crudClientProvider(input.contentTypeId).create(input) as Promise; } update(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).update(input); + return this.crudClientProvider(input.contentTypeId).update(input) as Promise; } delete(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).delete(input); + return this.crudClientProvider(input.contentTypeId).delete(input) as Promise; } search(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).search(input); + return this.crudClientProvider(input.contentTypeId).search(input) as Promise; } search$(input: I) { diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx index dcde9ae1c8fe4..f41449fe7e8f3 100644 --- a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx @@ -9,12 +9,18 @@ import { useMutation } from '@tanstack/react-query'; import { useContentClient } from './content_client_context'; import type { CreateIn, UpdateIn, DeleteIn } from '../../common'; +import { queryKeyBuilder } from './content_client'; export const useCreateContentMutation = () => { const contentClient = useContentClient(); return useMutation({ mutationFn: (input: I) => { - return contentClient.create(input); + return contentClient.create(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -23,7 +29,12 @@ export const useUpdateContentMutation = { - return contentClient.update(input); + return contentClient.update(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -32,7 +43,12 @@ export const useDeleteContentMutation = { - return contentClient.delete(input); + return contentClient.delete(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; diff --git a/src/plugins/content_management/public/crud_client/crud_client.ts b/src/plugins/content_management/public/crud_client/crud_client.ts index 094703a97d0c0..4976c7937dc4d 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.ts @@ -9,9 +9,9 @@ import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; export interface CrudClient { - get(input: I): Promise; - create(input: I): Promise; - update(input: I): Promise; - delete(input: I): Promise; - search(input: I): Promise; + get(input: GetIn): Promise; + create(input: CreateIn): Promise; + update(input: UpdateIn): Promise; + delete(input: DeleteIn): Promise; + search(input: SearchIn): Promise; } diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index f2cd5ce1b5e59..dfdb4b0f93f2a 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "target/types", }, - "include": ["common/**/*", "public/**/*", "server/**/*", ".storybook/**/*"], + "include": ["common/**/*", "public/**/*", "server/**/*", "demo/**/*"], "kbn_references": [ "@kbn/core", "@kbn/config-schema", From 9ddb989a60a75f1e29d375d3d19b59a1c8512cdf Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:21:37 +0100 Subject: [PATCH 11/31] [Fleet] agent_status total deprecated, added all and active (#151564) ## Summary Fixes https://github.com/elastic/kibana/issues/135980 Marked `total` deprecated in `/agent_status` API response, instead added `all` (all agents) and `active` (all - inactive - unenrolled). ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- x-pack/plugins/fleet/common/openapi/bundled.json | 13 +++++++++++-- x-pack/plugins/fleet/common/openapi/bundled.yaml | 7 +++++++ .../fleet/common/openapi/paths/agent_status.yaml | 7 +++++++ .../plugins/fleet/common/types/rest_spec/agent.ts | 3 +++ .../plugins/fleet/server/services/agents/status.ts | 10 ++++++---- .../reducer/initial_policy_details_state.ts | 2 ++ .../fleet_api_integration/apis/agents/status.ts | 4 ++++ 7 files changed, 40 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index 11ddf379df042..8f5dd3bf44bcf 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1308,10 +1308,17 @@ "type": "integer" }, "total": { - "type": "integer" + "type": "integer", + "deprecated": true }, "updating": { "type": "integer" + }, + "all": { + "type": "integer" + }, + "active": { + "type": "integer" } }, "required": [ @@ -1322,7 +1329,9 @@ "online", "other", "total", - "updating" + "updating", + "all", + "active" ] } } diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 5b4b6a61a9fff..932a7b9e5a013 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -824,8 +824,13 @@ paths: type: integer total: type: integer + deprecated: true updating: type: integer + all: + type: integer + active: + type: integer required: - error - events @@ -835,6 +840,8 @@ paths: - other - total - updating + - all + - active operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml index 872aca9eb2758..71e078b07c08c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml @@ -25,8 +25,13 @@ get: type: integer total: type: integer + deprecated: true updating: type: integer + all: + type: integer + active: + type: integer required: - error - events @@ -36,6 +41,8 @@ get: - other - total - updating + - all + - active operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts index 10866da70d93e..7a73829838d55 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts @@ -185,6 +185,7 @@ export interface GetAgentStatusRequest { export interface GetAgentStatusResponse { results: { events: number; + // deprecated total: number; online: number; error: number; @@ -193,6 +194,8 @@ export interface GetAgentStatusResponse { updating: number; inactive: number; unenrolled: number; + all: number; + active: number; }; } diff --git a/x-pack/plugins/fleet/server/services/agents/status.ts b/x-pack/plugins/fleet/server/services/agents/status.ts index 88761c53ee473..041298d57b4eb 100644 --- a/x-pack/plugins/fleet/server/services/agents/status.ts +++ b/x-pack/plugins/fleet/server/services/agents/status.ts @@ -126,16 +126,18 @@ export async function getAgentStatusForAgentPolicy( const { healthy: online, unhealthy: error, ...otherStatuses } = agentStatusesToSummary(statuses); const combinedStatuses = { online, error, ...otherStatuses }; + const allStatuses = Object.values(statuses).reduce((acc, val) => acc + val, 0); + const allActive = allStatuses - combinedStatuses.unenrolled - combinedStatuses.inactive; return { ...combinedStatuses, /* @deprecated no agents will have other status */ other: 0, /* @deprecated Agent events do not exists anymore */ events: 0, - total: - Object.values(statuses).reduce((acc, val) => acc + val, 0) - - combinedStatuses.unenrolled - - combinedStatuses.inactive, + /* @deprecated use active instead */ + total: allActive, + all: allStatuses, + active: allActive, }; } export async function getIncomingDataByAgentsId( diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts index 20b8b46538f53..bdce8d49573f7 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts @@ -25,6 +25,8 @@ export const initialPolicyDetailsState: () => Immutable = () online: 0, total: 0, other: 0, + all: 0, + active: 0, }, artifacts: { location: { diff --git a/x-pack/test/fleet_api_integration/apis/agents/status.ts b/x-pack/test/fleet_api_integration/apis/agents/status.ts index 89a3a67bbf3f5..4908e1d2e8c6d 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/status.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/status.ts @@ -219,6 +219,8 @@ export default function ({ getService }: FtrProviderContext) { other: 0, total: 8, online: 2, + active: 8, + all: 11, error: 2, offline: 1, updating: 3, @@ -298,6 +300,8 @@ export default function ({ getService }: FtrProviderContext) { other: 0, total: 10, online: 3, + active: 10, + all: 11, error: 2, offline: 1, updating: 4, From 5ecd092aabdbc0fa4971b4819707ade1cd8e4ca9 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Wed, 22 Feb 2023 11:22:24 +0100 Subject: [PATCH 12/31] [ML] Transforms: Fix to retain existing query when there's no base filter criteria. (#151665) When a data view had a time field, `getPreviewTransformRequestBody()` would even add an empty array of base filter criteria. The code later on would then not recognize that as a default query and add an empty bool filter query. This could even end up as nested empty bool filters when cloning a transform. This fixes it by adding a check for an empty array of base filter criteria. A jest unit test was also added to cover the original problem. --- .../public/app/common/request.test.ts | 36 ++++++++++++++++--- .../transform/public/app/common/request.ts | 5 ++- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/transform/public/app/common/request.test.ts b/x-pack/plugins/transform/public/app/common/request.test.ts index 60ad397f6f30a..f308465549bb9 100644 --- a/x-pack/plugins/transform/public/app/common/request.test.ts +++ b/x-pack/plugins/transform/public/app/common/request.test.ts @@ -11,11 +11,11 @@ import { PIVOT_SUPPORTED_AGGS } from '../../../common/types/pivot_aggs'; import { PivotGroupByConfig } from '.'; -import { StepDefineExposedState } from '../sections/create_transform/components/step_define'; -import { StepDetailsExposedState } from '../sections/create_transform/components/step_details'; +import type { StepDefineExposedState } from '../sections/create_transform/components/step_define'; +import type { StepDetailsExposedState } from '../sections/create_transform/components/step_details'; import { PIVOT_SUPPORTED_GROUP_BY_AGGS } from './pivot_group_by'; -import { PivotAggsConfig } from './pivot_aggs'; +import type { PivotAggsConfig } from './pivot_aggs'; import { defaultQuery, getPreviewTransformRequestBody, @@ -30,7 +30,7 @@ import { matchAllQuery, type TransformConfigQuery, } from './request'; -import { LatestFunctionConfigUI } from '../../../common/types/transform'; +import type { LatestFunctionConfigUI } from '../../../common/types/transform'; import type { RuntimeField } from '@kbn/data-views-plugin/common'; const simpleQuery: TransformConfigQuery = { query_string: { query: 'airline:AAL' } }; @@ -105,6 +105,34 @@ describe('Transform: Common', () => { }); }); + test('getPreviewTransformRequestBody() with time field and default query', () => { + const query = { query_string: { query: '*', default_operator: 'AND' } }; + + const request = getPreviewTransformRequestBody( + { + getIndexPattern: () => 'the-data-view-title', + timeFieldName: 'the-time-field-name', + } as DataView, + query, + { + pivot: { + aggregations: { 'the-agg-agg-name': { avg: { field: 'the-agg-field' } } }, + group_by: { 'the-group-by-agg-name': { terms: { field: 'the-group-by-field' } } }, + }, + } + ); + + expect(request).toEqual({ + pivot: { + aggregations: { 'the-agg-agg-name': { avg: { field: 'the-agg-field' } } }, + group_by: { 'the-group-by-agg-name': { terms: { field: 'the-group-by-field' } } }, + }, + source: { + index: ['the-data-view-title'], + }, + }); + }); + test('getPreviewTransformRequestBody() with comma-separated index pattern', () => { const query = getTransformConfigQuery('the-query'); const request = getPreviewTransformRequestBody( diff --git a/x-pack/plugins/transform/public/app/common/request.ts b/x-pack/plugins/transform/public/app/common/request.ts index 42162498f3f3c..81a53d60392a9 100644 --- a/x-pack/plugins/transform/public/app/common/request.ts +++ b/x-pack/plugins/transform/public/app/common/request.ts @@ -217,7 +217,10 @@ export function getPreviewTransformRequestBody( }, }; - const query = hasValidTimeField ? queryWithBaseFilterCriteria : transformConfigQuery; + const query = + hasValidTimeField && baseFilterCriteria.length > 0 + ? queryWithBaseFilterCriteria + : transformConfigQuery; return { source: { From 26bd714af81916fff7ae7a909f7326e4a6652973 Mon Sep 17 00:00:00 2001 From: Francesco Gualazzi Date: Wed, 22 Feb 2023 11:23:39 +0100 Subject: [PATCH 13/31] profiling: update copy in setup button (#151828) Small update to copy in the Universal Profiling button. Signed-off-by: inge4pres --- x-pack/plugins/profiling/public/components/check_setup.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/profiling/public/components/check_setup.tsx b/x-pack/plugins/profiling/public/components/check_setup.tsx index aff650446303f..bbfd4a35a9dfc 100644 --- a/x-pack/plugins/profiling/public/components/check_setup.tsx +++ b/x-pack/plugins/profiling/public/components/check_setup.tsx @@ -179,7 +179,7 @@ export function CheckSetup({ children }: { children: React.ReactElement }) { > {!postSetupLoading ? i18n.translate('xpack.profiling.noDataConfig.action.buttonLabel', { - defaultMessage: 'Setup Universal Profiling', + defaultMessage: 'Set up Universal Profiling', }) : i18n.translate('xpack.profiling.noDataConfig.action.buttonLoadingLabel', { defaultMessage: 'Setting up Universal Profiling...', From 5c8bf9a94c2a46665e858a0a61dfdd078fa591fb Mon Sep 17 00:00:00 2001 From: Dzmitry Lemechko Date: Wed, 22 Feb 2023 12:25:48 +0100 Subject: [PATCH 14/31] [scalability testing] skip unloading archives after journey (#151476) ## Summary Sometimes scalability testing might make Kibana not responding and it causes after hook with unloading kbn archives to [fail](https://buildkite.com/elastic/kibana-apis-capacity-testing/builds/241#01865418-2579-4559-bd4e-432c48a2104d): ``` 2023-02-15T08:33:37.825Z proc [scalability-tests] proc [gatling: test] Simulation org.kibanaLoadTest.simulation.generic.GenericJourney completed in 268 seconds 2023-02-15T08:38:06.749Z proc [scalability-tests] proc [gatling: test] java.lang.reflect.InvocationTargetException 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/java.lang.reflect.Method.invoke(Method.java:568) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at io.gatling.plugin.util.ForkMain.runMain(ForkMain.java:67) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at io.gatling.plugin.util.ForkMain.main(ForkMain.java:35) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] Caused by: java.lang.RuntimeException: Login request failed: org.apache.http.NoHttpResponseException: localhost:5620 failed to respond 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.getCookie(KbnClient.scala:72) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.getClientAndConnectionManager(KbnClient.scala:50) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.unload(KbnClient.scala:139) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$5(GenericJourney.scala:153) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$5$adapted(GenericJourney.scala:153) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$testDataLoader$2(GenericJourney.scala:47) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$testDataLoader$2$adapted(GenericJourney.scala:46) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1321) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.testDataLoader(GenericJourney.scala:46) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$4(GenericJourney.scala:154) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$18(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$18$adapted(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at scala.collection.immutable.List.foreach(List.scala:333) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$17(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Runner.run(Runner.scala:62) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.start(Gatling.scala:89) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.fromArgs(Gatling.scala:51) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.main(Gatling.scala:39) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling.main(Gatling.scala) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] ... 6 more ``` The journey is marked as failed though we actually got the metrics. This PR add flag to Gatling runner command that skips running cleanup on journey teardown. --- x-pack/test/scalability/runner.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x-pack/test/scalability/runner.ts b/x-pack/test/scalability/runner.ts index e9468f698b22a..222eaf9fba902 100644 --- a/x-pack/test/scalability/runner.ts +++ b/x-pack/test/scalability/runner.ts @@ -83,6 +83,8 @@ export async function ScalabilityTestRunner( `-Dgatling.core.outputDirectoryBaseName=${gatlingReportBaseDir}`, '-Dgatling.simulationClass=org.kibanaLoadTest.simulation.generic.GenericJourney', `-DjourneyPath=${scalabilityJsonPath}`, + // skip unloading kbn/es archives on journey finish since we shutdown instances anyway + `-DskipCleanupOnTeardown=true`, ], cwd: gatlingProjectRootPath, env: { From 245f38500759ea8086e897bbf217fc13a42b45f1 Mon Sep 17 00:00:00 2001 From: Tre Date: Wed, 22 Feb 2023 11:39:06 +0000 Subject: [PATCH 15/31] [Build Kite][Code Coverage] Drop ftr_run_order.json (#151114) ## Summary As of last year we stopped supporting FTR configs in the code coverage buildkite job. While investigating a flaky test, I noticed the file's presence in the buildkite artifacts ui. This pr drops that. **Note to Reviewers:** `.buildkite/scripts/steps/test/pick_test_group_run_order.sh` is currently used in 4 places: 1. `.buildkite/pipelines/code_coverage/daily.yml` **this is where this pr is concerned** 1. `.buildkite/pipelines/pull_request/base.yml` 1. `.buildkite/pipelines/on_merge.yml` 1. `.buildkite/pipelines/es_snapshots/verify.yml` This change is small but this file is shared, so we've to keep this in mind. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../ci-stats/pick_test_group_run_order.ts | 24 +++++++++++---- .buildkite/pipelines/code_coverage/daily.yml | 2 -- .../steps/code_coverage/node_scripts.sh | 30 ------------------- 3 files changed, 18 insertions(+), 38 deletions(-) delete mode 100755 .buildkite/scripts/steps/code_coverage/node_scripts.sh diff --git a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts index 6050867fb5b94..99f107d56f02b 100644 --- a/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts +++ b/.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts @@ -179,6 +179,15 @@ export async function pickTestGroupRunOrder() { throw new Error(`invalid FUNCTIONAL_MAX_MINUTES: ${process.env.FUNCTIONAL_MAX_MINUTES}`); } + /** + * This env variable corresponds to the env stanza within + * https://github.com/elastic/kibana/blob/bc2cb5dc613c3d455a5fed9c54450fd7e46ffd92/.buildkite/pipelines/code_coverage/daily.yml#L17 + * + * It is a flag that signals the job for which test runners will be executed. + * + * For example in code coverage pipeline definition, it is "limited" + * to 'unit,integration'. This means FTR tests will not be executed. + */ const LIMIT_CONFIG_TYPE = process.env.LIMIT_CONFIG_TYPE ? process.env.LIMIT_CONFIG_TYPE.split(',') .map((t) => t.trim()) @@ -218,9 +227,10 @@ export async function pickTestGroupRunOrder() { : ['build']; const { defaultQueue, ftrConfigsByQueue } = getEnabledFtrConfigs(FTR_CONFIG_PATTERNS); - if (!LIMIT_CONFIG_TYPE.includes('functional')) { - ftrConfigsByQueue.clear(); - } + + const ftrConfigsIncluded = LIMIT_CONFIG_TYPE.includes('functional'); + + if (!ftrConfigsIncluded) ftrConfigsByQueue.clear(); const jestUnitConfigs = LIMIT_CONFIG_TYPE.includes('unit') ? globby.sync(['**/jest.config.js', '!**/__fixtures__/**'], { @@ -377,9 +387,11 @@ export async function pickTestGroupRunOrder() { Fs.writeFileSync('jest_run_order.json', JSON.stringify({ unit, integration }, null, 2)); bk.uploadArtifacts('jest_run_order.json'); - // write the config for functional steps to an artifact that can be used by the individual functional jobs - Fs.writeFileSync('ftr_run_order.json', JSON.stringify(ftrRunOrder, null, 2)); - bk.uploadArtifacts('ftr_run_order.json'); + if (ftrConfigsIncluded) { + // write the config for functional steps to an artifact that can be used by the individual functional jobs + Fs.writeFileSync('ftr_run_order.json', JSON.stringify(ftrRunOrder, null, 2)); + bk.uploadArtifacts('ftr_run_order.json'); + } // upload the step definitions to Buildkite bk.uploadSteps( diff --git a/.buildkite/pipelines/code_coverage/daily.yml b/.buildkite/pipelines/code_coverage/daily.yml index bef3182c89690..a2b73329b4b01 100644 --- a/.buildkite/pipelines/code_coverage/daily.yml +++ b/.buildkite/pipelines/code_coverage/daily.yml @@ -13,7 +13,6 @@ steps: queue: kibana-default env: FTR_CONFIGS_DEPS: '' - # LIMIT_CONFIG_TYPE: 'unit,functional,integration' LIMIT_CONFIG_TYPE: 'unit,integration' JEST_UNIT_SCRIPT: '.buildkite/scripts/steps/code_coverage/jest.sh' JEST_INTEGRATION_SCRIPT: '.buildkite/scripts/steps/code_coverage/jest_integration.sh' @@ -25,6 +24,5 @@ steps: depends_on: - jest - jest-integration - # - ftr-configs timeout_in_minutes: 30 key: ingest diff --git a/.buildkite/scripts/steps/code_coverage/node_scripts.sh b/.buildkite/scripts/steps/code_coverage/node_scripts.sh deleted file mode 100755 index 20e475101995a..0000000000000 --- a/.buildkite/scripts/steps/code_coverage/node_scripts.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -buildPlatformPlugins() { - echo "--- Build Platform Plugins" - - NODE_OPTIONS=--max_old_space_size=14336 \ - node scripts/build_kibana_platform_plugins \ - --no-examples --test-plugins --workers 4 -} - -runFTRInstrumented() { - local ftrConfig=$1 - echo "--- $ runFTRInstrumented against $ftrConfig" - - NODE_OPTIONS=--max_old_space_size=16384 \ - ./node_modules/.bin/nyc \ - --nycrc-path ./src/dev/code_coverage/nyc_config/nyc.server.config.js \ - node scripts/functional_tests \ - --config="$ftrConfig" \ - --exclude-tag "skipCoverage" -} - -reportMergeFunctional() { - echo "--- Merging code coverage for FTR Configs" - - NODE_OPTIONS=--max_old_space_size=16384 yarn nyc report \ - --nycrc-path src/dev/code_coverage/nyc_config/nyc.functional.config.js --reporter json -} From ed191f25eb234057ead45e3cc5b4e411b0d7d69f Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Wed, 22 Feb 2023 12:48:39 +0100 Subject: [PATCH 16/31] [Lens] Centralize visualization initialize call flow (#150689) ## Summary This is a followup from #149684 where the confusion arised from the two distinct flows of `initialize` and `fromPersistable` methods in the visualization API. This PR merges the two calls together providing a single entrance `initialize` to call. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../editor_frame/state_helpers.ts | 4 +- .../lens/public/embeddable/embeddable.tsx | 10 +- .../__snapshots__/load_initial.test.tsx.snap | 4 +- x-pack/plugins/lens/public/types.ts | 16 +- .../public/visualizations/xy/state_helpers.ts | 5 + .../visualizations/xy/visualization.test.ts | 162 +++++++++--------- .../visualizations/xy/visualization.tsx | 13 +- 7 files changed, 113 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts index 02410b6994c34..cea4597be577a 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/state_helpers.ts @@ -239,8 +239,10 @@ export function initializeVisualization({ }) { if (visualizationState?.activeId) { return ( - visualizationMap[visualizationState.activeId]?.fromPersistableState?.( + visualizationMap[visualizationState.activeId]?.initialize( + () => '', visualizationState.state, + undefined, references, initialContext ) ?? visualizationState.state diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.tsx index a430f8ab66e1e..39bc64adef207 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.tsx @@ -538,11 +538,11 @@ export class Embeddable private get activeVisualizationState() { if (!this.activeVisualization) return; - return ( - this.activeVisualization.fromPersistableState?.( - this.savedVis?.state.visualization, - this.savedVis?.references - ) || this.activeVisualization.initialize(() => '', this.savedVis?.state.visualization) + return this.activeVisualization.initialize( + () => '', + this.savedVis?.state.visualization, + undefined, + this.savedVis?.references ); } diff --git a/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap b/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap index d30a68e5e52b0..8b7050304fb80 100644 --- a/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap +++ b/x-pack/plugins/lens/public/state_management/__snapshots__/load_initial.test.tsx.snap @@ -98,7 +98,9 @@ Object { }, "visualization": Object { "activeId": "testVis", - "state": Object {}, + "state": Object { + "newState": "newState", + }, }, }, } diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 0ab04eac70f90..d48b956c0c383 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -1018,7 +1018,7 @@ interface VisualizationStateFromContextChangeProps { context: VisualizeEditorContext; } -export interface Visualization { +export interface Visualization { /** Plugin ID, such as "lnsXY" */ id: string; @@ -1028,7 +1028,13 @@ export interface Visualization { * - Loading from a saved visualization * - When using suggestions, the suggested state is passed in */ - initialize: (addNewLayer: () => string, state?: T, mainPalette?: PaletteOutput) => T; + initialize: ( + addNewLayer: () => string, + state?: T | P, + mainPalette?: PaletteOutput, + references?: SavedObjectReference[], + initialContext?: VisualizeFieldContext | VisualizeEditorContext + ) => T; getUsedDataView?: (state: T, layerId: string) => string | undefined; /** @@ -1060,12 +1066,6 @@ export interface Visualization { getDescription: (state: T) => { icon?: IconType; label: string }; /** Visualizations can have references as well */ getPersistableState?: (state: T) => { state: P; savedObjectReferences: SavedObjectReference[] }; - /** Hydrate from persistable state and references to final state */ - fromPersistableState?: ( - state: P, - references?: SavedObjectReference[], - initialContext?: VisualizeFieldContext | VisualizeEditorContext - ) => T; /** Frame needs to know which layers the visualization is currently using */ getLayerIds: (state: T) => string[]; /** Reset button on each layer triggers this */ diff --git a/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts b/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts index 236cd25dd2e2d..ab20281a81d53 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/state_helpers.ts @@ -136,6 +136,11 @@ export function extractReferences(state: XYState) { return { savedObjectReferences, state: { ...state, layers: persistableLayers } }; } +export function isPersistedState(state: XYPersistedState | XYState): state is XYPersistedState { + const annotationLayers = state.layers.filter((l) => isAnnotationsLayer(l)); + return annotationLayers.some((l) => !('indexPatternId' in l)); +} + export function injectReferences( state: XYPersistedState, references?: SavedObjectReference[], 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 8dd7d9b1f2dbe..9e7f5fcdb2bc2 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.test.ts @@ -219,6 +219,88 @@ describe('xy_visualization', () => { it('loads from persisted state', () => { expect(xyVisualization.initialize(() => 'first', exampleState())).toEqual(exampleState()); }); + + it('should inject references on annotation layers', () => { + const baseState = exampleState(); + expect( + xyVisualization.initialize!( + () => 'first', + { + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }, + undefined, + [ + { + type: 'index-pattern', + name: `xy-visualization-layer-annotation`, + id: 'indexPattern1', + }, + ] + ) + ).toEqual({ + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + indexPatternId: 'indexPattern1', + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }); + }); + + it('should fallback to the first dataView reference in case there are missing annotation references', () => { + const baseState = exampleState(); + expect( + xyVisualization.initialize!( + () => 'first', + { + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }, + undefined, + [ + { + type: 'index-pattern', + name: 'something-else', + id: 'indexPattern1', + }, + ] + ) + ).toEqual({ + ...baseState, + layers: [ + ...baseState.layers, + { + layerId: 'annotation', + layerType: layerTypes.ANNOTATIONS, + indexPatternId: 'indexPattern1', + annotations: [exampleAnnotation2], + ignoreGlobalFilters: true, + }, + ], + }); + }); }); describe('#removeLayer', () => { @@ -2883,86 +2965,6 @@ describe('xy_visualization', () => { }); }); - describe('#fromPersistableState', () => { - it('should inject references on annotation layers', () => { - const baseState = exampleState(); - expect( - xyVisualization.fromPersistableState!( - { - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }, - [ - { - type: 'index-pattern', - name: `xy-visualization-layer-annotation`, - id: 'indexPattern1', - }, - ] - ) - ).toEqual({ - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - indexPatternId: 'indexPattern1', - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }); - }); - - it('should fallback to the first dataView reference in case there are missing annotation references', () => { - const baseState = exampleState(); - expect( - xyVisualization.fromPersistableState!( - { - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }, - [ - { - type: 'index-pattern', - name: 'something-else', - id: 'indexPattern1', - }, - ] - ) - ).toEqual({ - ...baseState, - layers: [ - ...baseState.layers, - { - layerId: 'annotation', - layerType: layerTypes.ANNOTATIONS, - indexPatternId: 'indexPattern1', - annotations: [exampleAnnotation2], - ignoreGlobalFilters: true, - }, - ], - }); - }); - }); - describe('layer actions', () => { it('should return no actions for a data layer', () => { expect(xyVisualization.getSupportedActionsForLayer?.('first', exampleState())).toHaveLength( diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx index a019f9c6b1988..44c19e5cd4467 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx @@ -57,6 +57,7 @@ import { getAnnotationLayerErrors, injectReferences, isHorizontalChart, + isPersistedState, } from './state_helpers'; import { toExpression, toPreviewExpression, getSortedAccessors } from './to_expression'; import { getAccessorColorConfigs, getColorAssignments } from './color_assignment'; @@ -210,10 +211,6 @@ export const getXyVisualization = ({ return extractReferences(state); }, - fromPersistableState(state, references, initialContext) { - return injectReferences(state, references, initialContext); - }, - getDescription, switchVisualizationType(seriesType: string, state: State) { @@ -228,9 +225,13 @@ export const getXyVisualization = ({ triggers: [VIS_EVENT_TO_TRIGGER.filter, VIS_EVENT_TO_TRIGGER.brush], - initialize(addNewLayer, state) { + initialize(addNewLayer, state, _, references, initialContext) { + const finalState = + state && isPersistedState(state) + ? injectReferences(state, references, initialContext) + : state; return ( - state || { + finalState || { title: 'Empty XY chart', legend: { isVisible: true, position: Position.Right }, valueLabels: 'hide', From 5037ca12bee23fc1b51ae6ec7a3091a4139e444f Mon Sep 17 00:00:00 2001 From: Jordan <51442161+JordanSh@users.noreply.github.com> Date: Wed, 22 Feb 2023 14:00:53 +0200 Subject: [PATCH 17/31] [Cloud Security] `posture_type` Backward compatibility changes (#151647) --- .../get_belongs_to_runtime_mapping.ts | 16 +++---- .../get_safe_posture_type_runtime_mapping.ts | 34 ++++++++++++++ .../hooks/use_navigate_findings.test.ts | 29 +++++++++--- .../common/hooks/use_navigate_findings.ts | 46 +++++++++++++------ .../dashboard_sections/benchmarks_section.tsx | 13 ++---- .../cluster_details_box.tsx | 9 ++-- .../dashboard_sections/summary_section.tsx | 20 +++++--- .../compliance_dashboard.ts | 13 ++++-- .../compliance_dashboard/get_clusters.ts | 16 +++++-- .../get_grouped_findings_evaluation.ts | 15 ++++-- .../routes/compliance_dashboard/get_stats.ts | 14 ++++-- .../server/tasks/findings_stats_task.ts | 6 ++- 12 files changed, 169 insertions(+), 62 deletions(-) create mode 100644 x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts diff --git a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts index 3ad655738e24e..ac978f3b220e4 100644 --- a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts +++ b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_belongs_to_runtime_mapping.ts @@ -18,8 +18,8 @@ export const getBelongsToRuntimeMapping = (): MappingRuntimeFields => ({ source: ` if (!doc.containsKey('rule.benchmark.posture_type')) { - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } else @@ -29,21 +29,21 @@ export const getBelongsToRuntimeMapping = (): MappingRuntimeFields => ({ def policy_template_type = doc["rule.benchmark.posture_type"].value; if (policy_template_type == "cspm") { - def identifier = doc["cloud.account.name"].value; - emit(identifier); + def belongs_to = doc["cloud.account.name"].value; + emit(belongs_to); return } if (policy_template_type == "kspm") { - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } } - def identifier = doc["cluster_id"].value; - emit(identifier); + def belongs_to = doc["cluster_id"].value; + emit(belongs_to); return } `, diff --git a/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts new file mode 100644 index 0000000000000..2fb06e6ea550c --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/common/runtime_mappings/get_safe_posture_type_runtime_mapping.ts @@ -0,0 +1,34 @@ +/* + * 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 { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; + +/** + * Creates the `safe_posture_type` runtime field with the value of either + * `kspm` or `cspm` based on the value of `rule.benchmark.posture_type` + */ +export const getSafePostureTypeRuntimeMapping = (): MappingRuntimeFields => ({ + safe_posture_type: { + type: 'keyword', + script: { + source: ` + if (!doc.containsKey('rule.benchmark.posture_type')) + { + def safe_posture_type = 'kspm'; + emit(safe_posture_type); + return + } + else + { + def safe_posture_type = doc["rule.benchmark.posture_type"].value; + emit(safe_posture_type); + return + } + `, + }, + }, +}); diff --git a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts index 616fa533e7c52..b18a5833a093f 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.test.ts @@ -35,37 +35,52 @@ describe('useNavigateFindings', () => { const push = jest.fn(); (useHistory as jest.Mock).mockReturnValueOnce({ push }); - const filter = { foo: 1 }; + const { result } = renderHook(() => useNavigateFindings()); + + act(() => { + result.current({ foo: 1 }); + }); + + expect(push).toHaveBeenCalledWith({ + pathname: '/cloud_security_posture/findings/default', + search: + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!f,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", + }); + expect(push).toHaveBeenCalledTimes(1); + }); + + it('creates a URL to findings page with correct path and negated filter', () => { + const push = jest.fn(); + (useHistory as jest.Mock).mockReturnValueOnce({ push }); const { result } = renderHook(() => useNavigateFindings()); act(() => { - result.current({ filter }); + result.current({ foo: { value: 1, negate: true } }); }); expect(push).toHaveBeenCalledWith({ pathname: '/cloud_security_posture/findings/default', search: - "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:filter,negate:!f,params:(query:(foo:1)),type:phrase),query:(match_phrase:(filter:(foo:1))))),query:(language:kuery,query:''))", + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!t,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", }); expect(push).toHaveBeenCalledTimes(1); }); + it('creates a URL to findings resource page with correct path and filter', () => { const push = jest.fn(); (useHistory as jest.Mock).mockReturnValueOnce({ push }); - const filter = { foo: 1 }; - const { result } = renderHook(() => useNavigateFindingsByResource()); act(() => { - result.current({ filter }); + result.current({ foo: 1 }); }); expect(push).toHaveBeenCalledWith({ pathname: '/cloud_security_posture/findings/resource', search: - "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:filter,negate:!f,params:(query:(foo:1)),type:phrase),query:(match_phrase:(filter:(foo:1))))),query:(language:kuery,query:''))", + "cspq=(filters:!((meta:(alias:!n,disabled:!f,key:foo,negate:!f,type:phrase),query:(match_phrase:(foo:1)))),query:(language:kuery,query:''))", }); expect(push).toHaveBeenCalledTimes(1); }); diff --git a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts index 946941b181292..08d4a169c6aba 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/hooks/use_navigate_findings.ts @@ -12,25 +12,45 @@ import { findingsNavigation } from '../navigation/constants'; import { encodeQuery } from '../navigation/query_utils'; import { useKibana } from './use_kibana'; -const createFilter = (key: string, value: string, negate = false): Filter => ({ - meta: { - alias: null, - negate, - disabled: false, - type: 'phrase', - key, - params: { query: value }, - }, - query: { match_phrase: { [key]: value } }, -}); +interface NegatedValue { + value: string | number; + negate: boolean; +} + +type FilterValue = string | number | NegatedValue; + +export type NavFilter = Record; + +const createFilter = (key: string, filterValue: FilterValue): Filter => { + let negate = false; + let value = filterValue; + if (typeof filterValue === 'object') { + negate = filterValue.negate; + value = filterValue.value; + } + + return { + meta: { + alias: null, + negate, + disabled: false, + type: 'phrase', + key, + }, + query: { match_phrase: { [key]: value } }, + }; +}; const useNavigate = (pathname: string) => { const history = useHistory(); const { services } = useKibana(); return useCallback( - (filterParams: Record = {}) => { - const filters = Object.entries(filterParams).map(([key, value]) => createFilter(key, value)); + (filterParams: NavFilter = {}) => { + const filters = Object.entries(filterParams).map(([key, filterValue]) => + createFilter(key, filterValue) + ); + history.push({ pathname, search: encodeQuery({ diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx index 44d2795337bf4..036bf86003d2e 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx @@ -26,7 +26,7 @@ import { KSPM_POLICY_TEMPLATE, RULE_FAILED, } from '../../../../common/constants'; -import { useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; +import { NavFilter, useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; import { ClusterDetailsBox } from './cluster_details_box'; import { dashboardColumnsGrow, getPolicyTemplateQuery } from './summary_section'; import { @@ -36,15 +36,12 @@ import { const CLUSTER_DEFAULT_SORT_ORDER = 'asc'; -export const getClusterIdQuery = (cluster: Cluster) => { +export const getClusterIdQuery = (cluster: Cluster): NavFilter => { if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) { - return { 'cloud.account.name': cluster.meta.cloud?.account.name }; + // TODO: remove assertion after typing CspFinding as discriminating union + return { 'cloud.account.name': cluster.meta.cloud!.account.name }; } - if (cluster.meta.benchmark.posture_type === 'kspm') { - return { cluster_id: cluster.meta.assetIdentifierId }; - } - - return {}; + return { cluster_id: cluster.meta.assetIdentifierId }; }; export const BenchmarksSection = ({ diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx index 39fb171fbb64a..7b42445d26b99 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/cluster_details_box.tsx @@ -20,7 +20,7 @@ import moment from 'moment'; import React from 'react'; import { i18n } from '@kbn/i18n'; import { getClusterIdQuery } from './benchmarks_section'; -import { INTERNAL_FEATURE_FLAGS } from '../../../../common/constants'; +import { CSPM_POLICY_TEMPLATE, INTERNAL_FEATURE_FLAGS } from '../../../../common/constants'; import { Cluster } from '../../../../common/types'; import { useNavigateFindings } from '../../../common/hooks/use_navigate_findings'; import { CISBenchmarkIcon } from '../../../components/cis_benchmark_icon'; @@ -31,13 +31,16 @@ const defaultClusterTitle = i18n.translate( ); const getClusterTitle = (cluster: Cluster) => { - if (cluster.meta.benchmark.posture_type === 'cspm') return cluster.meta.cloud?.account.name; + if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) { + return cluster.meta.cloud?.account.name; + } + return cluster.meta.cluster?.name; }; const getClusterId = (cluster: Cluster) => { const assetIdentifierId = cluster.meta.assetIdentifierId; - if (cluster.meta.benchmark.posture_type === 'cspm') return assetIdentifierId; + if (cluster.meta.benchmark.posture_type === CSPM_POLICY_TEMPLATE) return assetIdentifierId; return assetIdentifierId.slice(0, 6); }; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx index c5e71e0090668..647b022036676 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx @@ -8,6 +8,7 @@ import React, { useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiFlexItemProps } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { css } from '@emotion/react'; import { statusColors } from '../../../common/constants'; import { DASHBOARD_COUNTER_CARDS } from '../test_subjects'; import { CspCounterCard, CspCounterCardProps } from '../../../components/csp_counter_card'; @@ -21,6 +22,7 @@ import type { } from '../../../../common/types'; import { RisksTable } from '../compliance_charts/risks_table'; import { + NavFilter, useNavigateFindings, useNavigateFindingsByResource, } from '../../../common/hooks/use_navigate_findings'; @@ -36,12 +38,12 @@ export const dashboardColumnsGrow: Record = { third: 8, }; -export const getPolicyTemplateQuery = (policyTemplate: PosturePolicyTemplate) => { - if (policyTemplate === CSPM_POLICY_TEMPLATE) +export const getPolicyTemplateQuery = (policyTemplate: PosturePolicyTemplate): NavFilter => { + if (policyTemplate === CSPM_POLICY_TEMPLATE) { return { 'rule.benchmark.posture_type': CSPM_POLICY_TEMPLATE }; - if (policyTemplate === KSPM_POLICY_TEMPLATE) - return { 'rule.benchmark.posture_type': KSPM_POLICY_TEMPLATE }; - return {}; + } + + return { 'rule.benchmark.posture_type': { value: CSPM_POLICY_TEMPLATE, negate: true } }; }; export const SummarySection = ({ @@ -131,7 +133,13 @@ export const SummarySection = ({ }); return ( - + {counters.map((counter) => ( diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts index 6789b8674499a..d242c7a587dda 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/compliance_dashboard.ts @@ -8,6 +8,8 @@ import { transformError } from '@kbn/securitysolution-es-utils'; import type { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { schema } from '@kbn/config-schema'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; +import { getSafePostureTypeRuntimeMapping } from '../../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; import type { PosturePolicyTemplate, ComplianceDashboardData } from '../../../common/types'; import { CSPM_POLICY_TEMPLATE, @@ -69,17 +71,20 @@ export const defineGetComplianceDashboardRoute = (router: CspRouter): void => const policyTemplate = request.params.policy_template as PosturePolicyTemplate; + // runtime mappings create the `safe_posture_type` field, which equals to `kspm` or `cspm` based on the value and existence of the `posture_type` field which was introduced at 8.7 + // the `query` is then being passed to our getter functions to filter per posture type even for older findings before 8.7 + const runtimeMappings: MappingRuntimeFields = getSafePostureTypeRuntimeMapping(); const query: QueryDslQueryContainer = { bool: { - filter: [{ term: { 'rule.benchmark.posture_type': policyTemplate } }], + filter: [{ term: { safe_posture_type: policyTemplate } }], }, }; const [stats, groupedFindingsEvaluation, clustersWithoutTrends, trends] = await Promise.all( [ - getStats(esClient, query, pitId), - getGroupedFindingsEvaluation(esClient, query, pitId), - getClusters(esClient, query, pitId), + getStats(esClient, query, pitId, runtimeMappings), + getGroupedFindingsEvaluation(esClient, query, pitId, runtimeMappings), + getClusters(esClient, query, pitId, runtimeMappings), getTrends(esClient, policyTemplate), ] ); diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts index 736ba66a25508..750c035dc9e08 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_clusters.ts @@ -13,6 +13,7 @@ import type { AggregationsTopHitsAggregate, SearchHit, } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { CspFinding } from '../../../common/schemas/csp_finding'; import type { Cluster } from '../../../common/types'; import { @@ -40,9 +41,15 @@ interface ClustersQueryResult { export type ClusterWithoutTrend = Omit; -export const getClustersQuery = (query: QueryDslQueryContainer, pitId: string): SearchRequest => ({ +export const getClustersQuery = ( + query: QueryDslQueryContainer, + pitId: string, + runtimeMappings: MappingRuntimeFields +): SearchRequest => ({ size: 0, - runtime_mappings: getIdentifierRuntimeMapping(), + // creates the `asset_identifier` and `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: { ...runtimeMappings, ...getIdentifierRuntimeMapping() }, query, aggs: { aggs_by_asset_identifier: { @@ -101,10 +108,11 @@ export const getClustersFromAggs = (clusters: ClusterBucket[]): ClusterWithoutTr export const getClusters = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const queryResult = await esClient.search( - getClustersQuery(query, pitId) + getClustersQuery(query, pitId, runtimeMappings) ); const clusters = queryResult.aggregations?.aggs_by_asset_identifier.buckets; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts index f20b43619e914..239801350c7af 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_grouped_findings_evaluation.ts @@ -11,6 +11,7 @@ import type { QueryDslQueryContainer, SearchRequest, } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { calculatePostureScore } from '../../../common/utils/helpers'; import type { ComplianceDashboardData } from '../../../common/types'; import { KeyDocCount } from './compliance_dashboard'; @@ -62,8 +63,15 @@ export const failedFindingsAggQuery = { }, }; -export const getRisksEsQuery = (query: QueryDslQueryContainer, pitId: string): SearchRequest => ({ +export const getRisksEsQuery = ( + query: QueryDslQueryContainer, + pitId: string, + runtimeMappings: MappingRuntimeFields +): SearchRequest => ({ size: 0, + // creates the `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: runtimeMappings, query, aggs: failedFindingsAggQuery, pit: { @@ -90,10 +98,11 @@ export const getFailedFindingsFromAggs = ( export const getGroupedFindingsEvaluation = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const resourceTypesQueryResult = await esClient.search( - getRisksEsQuery(query, pitId) + getRisksEsQuery(query, pitId, runtimeMappings) ); const ruleSections = resourceTypesQueryResult.aggregations?.aggs_by_resource_type.buckets; diff --git a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts index a59d7487488e0..2f0e1c1b17102 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/compliance_dashboard/get_stats.ts @@ -7,6 +7,7 @@ import { ElasticsearchClient } from '@kbn/core/server'; import type { QueryDslQueryContainer, SearchRequest } from '@elastic/elasticsearch/lib/api/types'; +import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/types'; import { calculatePostureScore } from '../../../common/utils/helpers'; import type { ComplianceDashboardData } from '../../../common/types'; @@ -41,10 +42,14 @@ const uniqueResourcesCountQuery = { export const getEvaluationsQuery = ( query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): SearchRequest => ({ - query, size: 0, + // creates the `safe_posture_type` runtime fields, + // `safe_posture_type` is used by the `query` to filter by posture type for older findings without this field + runtime_mappings: runtimeMappings, + query, aggs: { ...findingsEvaluationAggsQuery, ...uniqueResourcesCountQuery, @@ -75,10 +80,11 @@ export const getStatsFromFindingsEvaluationsAggs = ( export const getStats = async ( esClient: ElasticsearchClient, query: QueryDslQueryContainer, - pitId: string + pitId: string, + runtimeMappings: MappingRuntimeFields ): Promise => { const evaluationsQueryResult = await esClient.search( - getEvaluationsQuery(query, pitId) + getEvaluationsQuery(query, pitId, runtimeMappings) ); const findingsEvaluations = evaluationsQueryResult.aggregations; diff --git a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts index 2e8401cebd932..6f21112efcb90 100644 --- a/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts +++ b/x-pack/plugins/cloud_security_posture/server/tasks/findings_stats_task.ts @@ -14,6 +14,7 @@ import { import { SearchRequest } from '@kbn/data-plugin/common'; import { ElasticsearchClient } from '@kbn/core/server'; import type { Logger } from '@kbn/core/server'; +import { getSafePostureTypeRuntimeMapping } from '../../common/runtime_mappings/get_safe_posture_type_runtime_mapping'; import { getIdentifierRuntimeMapping } from '../../common/runtime_mappings/get_identifier_runtime_mapping'; import { FindingsStatsTaskResult, TaskHealthStatus, ScoreByPolicyTemplateBucket } from './types'; import { @@ -108,14 +109,15 @@ export function taskRunner(coreStartServices: CspServerPluginStartServices, logg const getScoreQuery = (): SearchRequest => ({ index: LATEST_FINDINGS_INDEX_DEFAULT_NS, size: 0, - runtime_mappings: getIdentifierRuntimeMapping(), + // creates the safe_posture_type and asset_identifier runtime fields + runtime_mappings: { ...getIdentifierRuntimeMapping(), ...getSafePostureTypeRuntimeMapping() }, query: { match_all: {}, }, aggs: { score_by_policy_template: { terms: { - field: 'rule.benchmark.posture_type', + field: 'safe_posture_type', }, aggs: { total_findings: { From acf7d0134ea01756511de9cb6a03b64538fc4289 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Wed, 22 Feb 2023 13:33:43 +0100 Subject: [PATCH 18/31] [HTTP] Versioned API router designs (#151596) ## Summary This PR contains the initial designs for our versioned router API. This contribution contains only types, any implementation will come in later PRs. Previous PR https://github.com/elastic/kibana/pull/149943 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Ahmad Bamieh --- .github/CODEOWNERS | 1 + package.json | 1 + .../core-version-http-server/README.md | 13 ++ .../core-version-http-server/index.ts | 10 + .../core-version-http-server/jest.config.js | 13 ++ .../core-version-http-server/kibana.jsonc | 5 + .../core-version-http-server/package.json | 7 + .../core-version-http-server/src/example.ts | 82 ++++++++ .../src/version_http_toolkit.ts | 179 ++++++++++++++++++ .../core-version-http-server/tsconfig.json | 20 ++ tsconfig.base.json | 2 + yarn.lock | 4 + 12 files changed, 337 insertions(+) create mode 100644 packages/core/versioning/core-version-http-server/README.md create mode 100644 packages/core/versioning/core-version-http-server/index.ts create mode 100644 packages/core/versioning/core-version-http-server/jest.config.js create mode 100644 packages/core/versioning/core-version-http-server/kibana.jsonc create mode 100644 packages/core/versioning/core-version-http-server/package.json create mode 100644 packages/core/versioning/core-version-http-server/src/example.ts create mode 100644 packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts create mode 100644 packages/core/versioning/core-version-http-server/tsconfig.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ca7c43c33ec46..b785f7c94a20f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -281,6 +281,7 @@ packages/core/usage-data/core-usage-data-base-server-internal @elastic/kibana-co packages/core/usage-data/core-usage-data-server @elastic/kibana-core packages/core/usage-data/core-usage-data-server-internal @elastic/kibana-core packages/core/usage-data/core-usage-data-server-mocks @elastic/kibana-core +packages/core/versioning/core-version-http-server @elastic/kibana-core x-pack/plugins/cross_cluster_replication @elastic/platform-deployment-management packages/kbn-crypto @elastic/kibana-security packages/kbn-crypto-browser @elastic/kibana-core diff --git a/package.json b/package.json index 62f48220cd2cd..b5edb45a7726f 100644 --- a/package.json +++ b/package.json @@ -326,6 +326,7 @@ "@kbn/core-usage-data-base-server-internal": "link:packages/core/usage-data/core-usage-data-base-server-internal", "@kbn/core-usage-data-server": "link:packages/core/usage-data/core-usage-data-server", "@kbn/core-usage-data-server-internal": "link:packages/core/usage-data/core-usage-data-server-internal", + "@kbn/core-version-http-server": "link:packages/core/versioning/core-version-http-server", "@kbn/cross-cluster-replication-plugin": "link:x-pack/plugins/cross_cluster_replication", "@kbn/crypto": "link:packages/kbn-crypto", "@kbn/crypto-browser": "link:packages/kbn-crypto-browser", diff --git a/packages/core/versioning/core-version-http-server/README.md b/packages/core/versioning/core-version-http-server/README.md new file mode 100644 index 0000000000000..b419f083b0d7e --- /dev/null +++ b/packages/core/versioning/core-version-http-server/README.md @@ -0,0 +1,13 @@ +# @kbn/core-version-http-server + +This package contains types for sever-side HTTP versioning. + +## Experimental + +The types in this package are all experimental and may be subject to extensive changes. +Use this package as a reference for current thinking and as a starting point to +raise questions and discussion. + +## Versioning specification + +Currently the versioning spec is being designed. \ No newline at end of file diff --git a/packages/core/versioning/core-version-http-server/index.ts b/packages/core/versioning/core-version-http-server/index.ts new file mode 100644 index 0000000000000..2ed8fca6a33f4 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/index.ts @@ -0,0 +1,10 @@ +/* + * 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. + */ + +// TODO: export once types are ready +export {}; diff --git a/packages/core/versioning/core-version-http-server/jest.config.js b/packages/core/versioning/core-version-http-server/jest.config.js new file mode 100644 index 0000000000000..7f87846044ae9 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/jest.config.js @@ -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 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. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/packages/core/versioning/core-version-http-server'], +}; diff --git a/packages/core/versioning/core-version-http-server/kibana.jsonc b/packages/core/versioning/core-version-http-server/kibana.jsonc new file mode 100644 index 0000000000000..38c17bf30d2a5 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/core-version-http-server", + "owner": "@elastic/kibana-core" +} diff --git a/packages/core/versioning/core-version-http-server/package.json b/packages/core/versioning/core-version-http-server/package.json new file mode 100644 index 0000000000000..160267c76a449 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/core-version-http-server", + "private": true, + "version": "1.0.0", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/core/versioning/core-version-http-server/src/example.ts b/packages/core/versioning/core-version-http-server/src/example.ts new file mode 100644 index 0000000000000..de529ccb07d9d --- /dev/null +++ b/packages/core/versioning/core-version-http-server/src/example.ts @@ -0,0 +1,82 @@ +/* + * 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'; +import type { IRouter, RequestHandlerContextBase } from '@kbn/core-http-server'; +import type { VersionHTTPToolkit } from './version_http_toolkit'; + +interface MyCustomContext extends RequestHandlerContextBase { + fooService: { create: (value: string, id: undefined | string, name?: string) => Promise }; +} +const vtk = {} as unknown as VersionHTTPToolkit; +const router = {} as unknown as IRouter; + +const versionedRouter = vtk.createVersionedRouter({ router }); + +// @ts-ignore unused variable +const versionedRoute = versionedRouter + .post({ + path: '/api/my-app/foo/{id?}', + options: { timeout: { payload: 60000 } }, + }) + .addVersion( + { + version: '1', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ foo: schema.string() }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.foo, req.params.id, req.query.name); + return res.ok({ body: { foo: req.body.foo } }); + } + ) + // BREAKING CHANGE: { foo: string } => { fooString: string } in body + .addVersion( + { + version: '2', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ fooString: schema.string() }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + return res.ok({ body: { fooName: req.body.fooString } }); + } + ) + // BREAKING CHANGES: Enforce min/max length on fooString + .addVersion( + { + version: '3', + validate: { + query: schema.object({ + name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + }), + params: schema.object({ + id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + }), + body: schema.object({ fooString: schema.string({ minLength: 0, maxLength: 1000 }) }), + }, + }, + async (ctx, req, res) => { + await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + return res.ok({ body: { fooName: req.body.fooString } }); + } + ); diff --git a/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts b/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts new file mode 100644 index 0000000000000..719e0075c0070 --- /dev/null +++ b/packages/core/versioning/core-version-http-server/src/version_http_toolkit.ts @@ -0,0 +1,179 @@ +/* + * 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 type { + IRouter, + RouteConfig, + RouteMethod, + RequestHandler, + RouteValidatorFullConfig, + RequestHandlerContextBase, +} from '@kbn/core-http-server'; + +type RqCtx = RequestHandlerContextBase; + +/** + * Assuming that version will be a monotonically increasing number where: version > 0. + * @experimental + */ +export type Version = `${number}`; + +/** + * Arguments to create a {@link VersionedRouter | versioned router}. + * @experimental + */ +export interface CreateVersionedRouterArgs { + /** + * A router instance + * @experimental + */ + router: IRouter; +} + +/** + * This interface is the starting point for creating versioned routers and routes + * + * @example + * const versionedRouter = vtk.createVersionedRouter({ router }); + * + * ```ts + * const versionedRoute = versionedRouter + * .post({ + * path: '/api/my-app/foo/{id?}', + * options: { timeout: { payload: 60000 } }, + * }) + * .addVersion( + * { + * version: '1', + * validate: { + * query: schema.object({ + * name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + * }), + * params: schema.object({ + * id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + * }), + * body: schema.object({ foo: schema.string() }), + * }, + * }, + * async (ctx, req, res) => { + * await ctx.fooService.create(req.body.foo, req.params.id, req.query.name); + * return res.ok({ body: { foo: req.body.foo } }); + * } + * ) + * // BREAKING CHANGE: { foo: string } => { fooString: string } in body + * .addVersion( + * { + * version: '2', + * validate: { + * query: schema.object({ + * name: schema.maybe(schema.string({ minLength: 2, maxLength: 50 })), + * }), + * params: schema.object({ + * id: schema.maybe(schema.string({ minLength: 10, maxLength: 13 })), + * }), + * body: schema.object({ fooString: schema.string() }), + * }, + * }, + * async (ctx, req, res) => { + * await ctx.fooService.create(req.body.fooString, req.params.id, req.query.name); + * return res.ok({ body: { fooName: req.body.fooString } }); + * } + * ) + * ``` + * @experimental + */ +export interface VersionHTTPToolkit { + /** + * Create a versioned router + * @param args - The arguments to create a versioned router + * @returns A versioned router + * @experimental + */ + createVersionedRouter( + args: CreateVersionedRouterArgs + ): VersionedRouter; +} + +/** + * Configuration for a versioned route + * @experimental + */ +export type VersionedRouteConfig = Omit< + RouteConfig, + 'validate' +>; + +/** + * Create an {@link VersionedRoute | versioned route}. + * + * @param config - The route configuration + * @returns A versioned route + * @experimental + */ +export type VersionedRouteRegistrar = ( + config: VersionedRouteConfig +) => VersionedRoute; + +/** + * A router, very similar to {@link IRouter} that will return an {@link VersionedRoute} + * instead. + * @experimental + */ +export interface VersionedRouter { + /** @experimental */ + get: VersionedRouteRegistrar<'get', Ctx>; + /** @experimental */ + put: VersionedRouteRegistrar<'put', Ctx>; + /** @experimental */ + post: VersionedRouteRegistrar<'post', Ctx>; + /** @experimental */ + patch: VersionedRouteRegistrar<'patch', Ctx>; + /** @experimental */ + delete: VersionedRouteRegistrar<'delete', Ctx>; + /** @experimental */ + options: VersionedRouteRegistrar<'options', Ctx>; +} + +/** + * Options for a versioned route. Probably needs a lot more options like sunsetting + * of an endpoint etc. + * @experimental + */ +export interface AddVersionOpts { + /** + * Version to assign to this route + * @experimental + */ + version: Version; + /** + * Validation for this version of a route + * @experimental + */ + validate: false | RouteValidatorFullConfig; +} + +/** + * A versioned route + * @experimental + */ +export interface VersionedRoute< + Method extends RouteMethod = RouteMethod, + Ctx extends RqCtx = RqCtx +> { + /** + * Add a new version of this route + * @param opts {@link AddVersionOpts | Options} for this version of a route + * @param handler The request handler for this version of a route + * @returns A versioned route, allows for fluent chaining of version declarations + * @experimental + */ + addVersion( + opts: AddVersionOpts, + handler: RequestHandler + ): VersionedRoute; +} diff --git a/packages/core/versioning/core-version-http-server/tsconfig.json b/packages/core/versioning/core-version-http-server/tsconfig.json new file mode 100644 index 0000000000000..fa73dc9c397bf --- /dev/null +++ b/packages/core/versioning/core-version-http-server/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts" + ], + "kbn_references": [ + "@kbn/config-schema", + "@kbn/core-http-server", + ], + "exclude": [ + "target/**/*", + ] +} diff --git a/tsconfig.base.json b/tsconfig.base.json index e4cf587ee9cb4..cff7037533bfe 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -556,6 +556,8 @@ "@kbn/core-usage-data-server-internal/*": ["packages/core/usage-data/core-usage-data-server-internal/*"], "@kbn/core-usage-data-server-mocks": ["packages/core/usage-data/core-usage-data-server-mocks"], "@kbn/core-usage-data-server-mocks/*": ["packages/core/usage-data/core-usage-data-server-mocks/*"], + "@kbn/core-version-http-server": ["packages/core/versioning/core-version-http-server"], + "@kbn/core-version-http-server/*": ["packages/core/versioning/core-version-http-server/*"], "@kbn/cross-cluster-replication-plugin": ["x-pack/plugins/cross_cluster_replication"], "@kbn/cross-cluster-replication-plugin/*": ["x-pack/plugins/cross_cluster_replication/*"], "@kbn/crypto": ["packages/kbn-crypto"], diff --git a/yarn.lock b/yarn.lock index 4f7f7fe2b9525..d861326765481 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3833,6 +3833,10 @@ version "0.0.0" uid "" +"@kbn/core-version-http-server@link:packages/core/versioning/core-version-http-server": + version "0.0.0" + uid "" + "@kbn/core@link:src/core": version "0.0.0" uid "" From 9333453664aa30496f472a138387bf0c39728c24 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Wed, 22 Feb 2023 08:33:49 -0500 Subject: [PATCH 19/31] [Uptime] adjust tls defaults for monitor edit flow (#150950) ## Summary Resolves https://github.com/elastic/kibana/issues/150949 [Add-Monitor-Uptime---Kibana.webm](https://user-images.githubusercontent.com/11356435/218583413-8b321365-ad89-4b4b-bb13-7fe26c6a18dd.webm) ### Testing 1. Create a TCP monitor in the Uptime with the following host 8.8.8.8:80 2. Navigate to the monitor details page for in Uptime app. 3. Confirm that the url for the monitor is tcp://8.8.8.8:80, not ssl:/8.8.8.8:80. 4. Navigate back to edit page for Uptime 5. Confirm that the tls button is not toggled to on 6. Re-save the monitor. 7. Wait for the next monitor run. Confirm the url for the monitor is tcp://8.8.8.8:80, not ssl:/8.8.8.8:80. --------- Co-authored-by: shahzad31 --- ...ics_policy_edit_extension_wrapper.test.tsx | 63 +++++++++---------- ...nthetics_policy_edit_extension_wrapper.tsx | 4 +- .../edit_monitor_config.tsx | 4 +- 3 files changed, 33 insertions(+), 38 deletions(-) diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx index 74d890053aa4c..a1bc5f57f5911 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx @@ -576,43 +576,38 @@ describe('', () => { }); }); - it.each([[true], [false]])( - 'shows tls fields when metadata.is_tls_enabled is or verification mode is truthy true', - async (isTLSEnabledInUIMetadataKey) => { - const currentPolicy = { - ...defaultCurrentPolicy, - inputs: [ - { - ...defaultNewPolicy.inputs[0], - enabled: true, - streams: [ - { - ...defaultNewPolicy.inputs[0].streams[0], - vars: { - ...defaultNewPolicy.inputs[0].streams[0].vars, - __ui: { - type: 'yaml', - value: JSON.stringify({ - is_tls_enabled: isTLSEnabledInUIMetadataKey, - }), - }, + it('shows tls fields when metadata.is_tls_enabled', async () => { + const currentPolicy = { + ...defaultCurrentPolicy, + inputs: [ + { + ...defaultNewPolicy.inputs[0], + enabled: true, + streams: [ + { + ...defaultNewPolicy.inputs[0].streams[0], + vars: { + ...defaultNewPolicy.inputs[0].streams[0].vars, + __ui: { + type: 'yaml', + value: JSON.stringify({ + is_tls_enabled: true, + }), }, }, - ], - }, - ], - }; + }, + ], + }, + ], + }; - const { getByLabelText } = render(); - const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; - const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; - expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); - expect(verificationMode).toBeInTheDocument(); - expect(verificationMode.value).toEqual( - `${defaultHTTPConfig[ConfigKey.TLS_VERIFICATION_MODE]}` - ); - } - ); + const { getByLabelText } = render(); + const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; + const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; + expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); + expect(verificationMode).toBeInTheDocument(); + expect(verificationMode.value).toEqual(`${defaultHTTPConfig[ConfigKey.TLS_VERIFICATION_MODE]}`); + }); it('handles browser validation', async () => { const currentPolicy = { diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx index 59e45c569fffc..8a2671c14cc6c 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx @@ -80,10 +80,10 @@ export const SyntheticsPolicyEditExtensionWrapper = memo = { diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/edit_monitor_config.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/edit_monitor_config.tsx index b04d548833ff9..0c487eb1fdc3d 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/edit_monitor_config.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/edit_monitor_config.tsx @@ -52,8 +52,8 @@ export const EditMonitorConfig = ({ monitor, throttling }: Props) => { [ConfigKey.TLS_VERSION]: monitor[ConfigKey.TLS_VERSION], }; - enableTLS = Boolean(monitor[ConfigKey.TLS_VERIFICATION_MODE]); - enableZipUrlTLS = Boolean(monitor[ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]); + enableTLS = Boolean(monitor[ConfigKey.METADATA].is_tls_enabled); + enableZipUrlTLS = Boolean(monitor[ConfigKey.METADATA].is_zip_url_tls_enabled); const formattedDefaultConfig: Partial = { [type]: monitor, From 513a1f0538b4c3641e87d6665790e8daaa3bb985 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Wed, 22 Feb 2023 14:46:50 +0100 Subject: [PATCH 20/31] [Security Solution] Cover persistent rules table state by e2e tests (#149638) **Relates to:** https://github.com/elastic/kibana/issues/140263 ## Summary This PR adds Cypress e2e tests to cover persistent rules table state functionality. ## Details It implements a test plan for the persistent rules table state functionality and includes some improvements to the other e2e tests to facilitate writing tests - `visit()` helper function input parameters were changed to match `cy.visit()`. It allows to pass a query string via `qs` and use the other fields. - added a skip agent installation step in `installAwsCloudFrontWithPolicy ` used in `detection_rules/related_integrations.cy.ts`. The agent installation screen started appearing after changes to the `visit()` helper function. It looks like a bug since url `app/integrations/detail/aws-1.17.0/overview?integration=cloudfront` was concatenated with `timeline=...` query string inside `visit()` and `cy.visit()` finally invoked with `app/integrations/detail/aws-1.17.0/overview?integration=cloudfront?timeline=...`. Fixing that cause test to fail due to agent installation screen. - use default type delay for `NOTES_TEXT_AREA` in `timelines/creation.cy.ts`. It looks that zero typing delay caused test flakiness. - selectors and helper functions were reorganized to facilitate its usage. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../add_first_integration_splash.tsx | 10 +- .../e2e/detection_alerts/alerts_details.cy.ts | 4 +- .../e2e/detection_rules/bulk_edit_rules.cy.ts | 4 +- .../detection_rules/custom_query_rule.cy.ts | 22 +- .../custom_query_rule_data_view.cy.ts | 4 +- .../event_correlation_rule.cy.ts | 3 +- .../e2e/detection_rules/import_rules.cy.ts | 6 +- .../indicator_match_rule.cy.ts | 3 +- .../cypress/e2e/detection_rules/links.cy.ts | 4 +- .../machine_learning_rule.cy.ts | 3 +- .../e2e/detection_rules/new_terms_rule.cy.ts | 3 +- .../e2e/detection_rules/override.cy.ts | 3 +- .../persistent_rules_table_state.cy.ts | 409 ++++++++++++++++++ .../e2e/detection_rules/prebuilt_rules.cy.ts | 8 +- .../rules_table_auto_refresh.cy.ts | 6 +- .../rules_table_persistent_state.cy.ts | 84 ---- .../cypress/e2e/detection_rules/sorting.cy.ts | 29 +- .../e2e/detection_rules/threshold_rule.cy.ts | 3 +- .../cypress/e2e/network/hover_actions.cy.ts | 2 +- .../cypress/e2e/pagination/pagination.cy.ts | 54 +-- .../e2e/timeline_templates/export.cy.ts | 4 +- .../security_solution/cypress/objects/rule.ts | 1 + .../cypress/screens/alerts_detection_rules.ts | 30 +- .../cypress/screens/integrations.ts | 2 + .../screens/{pagination.ts => loading.ts} | 4 +- .../cypress/screens/table_pagination.ts | 21 + .../cypress/tasks/alerts_detection_rules.ts | 143 ++++-- .../cypress/tasks/api_calls/rules.ts | 2 +- .../cypress/tasks/integrations.ts | 2 + .../security_solution/cypress/tasks/login.ts | 51 ++- .../cypress/tasks/pagination.ts | 20 - .../cypress/tasks/table_pagination.ts | 55 +++ .../cypress/tasks/timeline.ts | 1 - .../cypress/urls/navigation.ts | 2 + .../use_rules_table_saved_state.test.ts | 217 ++++++---- .../components/rules_table/rules_tables.tsx | 4 +- 36 files changed, 876 insertions(+), 347 deletions(-) create mode 100644 x-pack/plugins/security_solution/cypress/e2e/detection_rules/persistent_rules_table_state.cy.ts delete mode 100644 x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_persistent_state.cy.ts rename x-pack/plugins/security_solution/cypress/screens/{pagination.ts => loading.ts} (53%) create mode 100644 x-pack/plugins/security_solution/cypress/screens/table_pagination.ts delete mode 100644 x-pack/plugins/security_solution/cypress/tasks/pagination.ts create mode 100644 x-pack/plugins/security_solution/cypress/tasks/table_pagination.ts diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx index e1e53efa16985..d09178f499717 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/multi_page_layout/components/add_first_integration_splash.tsx @@ -277,10 +277,12 @@ export const AddFirstIntegrationSplashScreen: React.FC<{ + + + } cancelClickHandler={cancelClickHandler} isLoading={isLoading} diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts index 6471fbb98e81f..9be3268d02795 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts @@ -24,7 +24,7 @@ import { login, visitWithoutDateRange } from '../../tasks/login'; import { getUnmappedRule } from '../../objects/rule'; import { ALERTS_URL } from '../../urls/navigation'; -import { pageSelector } from '../../screens/alerts_detection_rules'; +import { tablePageSelector } from '../../screens/table_pagination'; describe('Alert details with unmapped fields', () => { before(() => { @@ -65,7 +65,7 @@ describe('Alert details with unmapped fields', () => { }; openTable(); - cy.get(ALERT_FLYOUT).find(pageSelector(4)).click({ force: true }); + cy.get(ALERT_FLYOUT).find(tablePageSelector(4)).click({ force: true }); cy.get(ALERT_FLYOUT) .find(TABLE_ROWS) .last() diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/bulk_edit_rules.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/bulk_edit_rules.cy.ts index b3f9a48b3e3ef..f5219e2b152e5 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/bulk_edit_rules.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/bulk_edit_rules.cy.ts @@ -27,7 +27,6 @@ import { TIMELINE_TEMPLATE_DETAILS } from '../../screens/rule_details'; import { EUI_FILTER_SELECT_ITEM } from '../../screens/common/controls'; import { - changeRowsPerPageTo, waitForRulesTableToBeLoaded, selectAllRules, goToTheRuleDetailsOf, @@ -100,6 +99,7 @@ import { getIndicatorMatchTimelineTemplate } from '../../objects/timeline'; import { esArchiverResetKibana } from '../../tasks/es_archiver'; import { getAvailablePrebuiltRulesCount } from '../../tasks/api_calls/prebuilt_rules'; +import { setRowsPerPageTo } from '../../tasks/table_pagination'; const RULE_NAME = 'Custom rule for bulk actions'; @@ -224,7 +224,7 @@ describe('Detection rules, bulk edit', () => { it('should not lose rules selection after edit action', () => { const rulesCount = 4; // Switch to 5 rules per page, to have few pages in pagination(ideal way to test auto refresh and selection of few items) - changeRowsPerPageTo(numberOfRulesPerPage); + setRowsPerPageTo(numberOfRulesPerPage); selectNumberOfRules(rulesCount); // open add tags form and add 2 new tags diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule.cy.ts index ae1bb250fc605..2efcd8f74b19a 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule.cy.ts @@ -21,7 +21,7 @@ import { RISK_SCORE, RULE_NAME, RULES_ROW, - RULES_TABLE, + RULES_MANAGEMENT_TABLE, RULE_SWITCH, SEVERITY, } from '../../screens/alerts_detection_rules'; @@ -172,7 +172,7 @@ describe('Custom query rules', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); cy.log('Asserting rule view in rules list'); - cy.get(RULES_TABLE).find(RULES_ROW).should('have.length', expectedNumberOfRules); + cy.get(RULES_MANAGEMENT_TABLE).find(RULES_ROW).should('have.length', expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', ruleFields.ruleName); cy.get(RISK_SCORE).should('have.text', ruleFields.riskScore); cy.get(SEVERITY) @@ -247,7 +247,7 @@ describe('Custom query rules', () => { }); it('Deletes one rule', () => { - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .then((rules) => { const initialNumberOfRules = rules.length; @@ -260,7 +260,7 @@ describe('Custom query rules', () => { deleteFirstRule(); - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .should('have.length', expectedNumberOfRulesAfterDeletion); cy.request({ url: '/api/detection_engine/rules/_find' }).then(({ body }) => { @@ -275,7 +275,7 @@ describe('Custom query rules', () => { }); it('Deletes more than one rule', () => { - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .then((rules) => { const initialNumberOfRules = rules.length; @@ -286,21 +286,21 @@ describe('Custom query rules', () => { selectNumberOfRules(numberOfRulesToBeDeleted); deleteSelectedRules(); - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .get(RULES_ROW) .first() .within(() => { cy.get(RULE_SWITCH).should('not.exist'); }); - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .should('have.length', expectedNumberOfRulesAfterDeletion); cy.request({ url: '/api/detection_engine/rules/_find' }).then(({ body }) => { const numberOfRules = body.data.length; expect(numberOfRules).to.eql(expectedNumberOfRulesAfterDeletion); }); - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .get(RULES_ROW) .first() .within(() => { @@ -314,7 +314,7 @@ describe('Custom query rules', () => { }); it('Deletes one rule from detail page', () => { - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .then((rules) => { const initialNumberOfRules = rules.length; @@ -327,8 +327,8 @@ describe('Custom query rules', () => { // @ts-expect-error update types cy.waitFor('@deleteRule').then(() => { - cy.get(RULES_TABLE).should('exist'); - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE).should('exist'); + cy.get(RULES_MANAGEMENT_TABLE) .find(RULES_ROW) .should('have.length', expectedNumberOfRulesAfterDeletion); cy.request({ url: '/api/detection_engine/rules/_find' }).then(({ body }) => { diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts index 04e08d5de572a..a377529802abd 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/custom_query_rule_data_view.cy.ts @@ -16,7 +16,7 @@ import { RISK_SCORE, RULE_NAME, RULES_ROW, - RULES_TABLE, + RULES_MANAGEMENT_TABLE, RULE_SWITCH, SEVERITY, } from '../../screens/alerts_detection_rules'; @@ -115,7 +115,7 @@ describe('Custom query rules', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - cy.get(RULES_TABLE).find(RULES_ROW).should('have.length', expectedNumberOfRules); + cy.get(RULES_MANAGEMENT_TABLE).find(RULES_ROW).should('have.length', expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', this.rule.name); cy.get(RISK_SCORE).should('have.text', this.rule.riskScore); cy.get(SEVERITY).should('have.text', this.rule.severity); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts index 79146eebc55df..d3f1bf614512f 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/event_correlation_rule.cy.ts @@ -13,6 +13,7 @@ import { ALERT_DATA_GRID, NUMBER_OF_ALERTS } from '../../screens/alerts'; import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -102,7 +103,7 @@ describe('EQL rules', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(expectedNumberOfRules); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', this.rule.name); cy.get(RISK_SCORE).should('have.text', this.rule.riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts index 4297f2b3b942c..647edd716bc49 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/import_rules.cy.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TOASTER } from '../../screens/alerts_detection_rules'; +import { RULES_MANAGEMENT_TABLE, TOASTER } from '../../screens/alerts_detection_rules'; import { expectNumberOfRules, expectToContainRule, @@ -41,8 +41,8 @@ describe('Import rules', () => { 'Successfully imported 1 ruleSuccessfully imported 1 exception.' ); - expectNumberOfRules(expectedNumberOfRules); - expectToContainRule(expectedImportedRuleName); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, expectedNumberOfRules); + expectToContainRule(RULES_MANAGEMENT_TABLE, expectedImportedRuleName); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts index 2114dd3b1fe63..24dd11038e09e 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/indicator_match_rule.cy.ts @@ -22,6 +22,7 @@ import { import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -432,7 +433,7 @@ describe('indicator match', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(expectedNumberOfRules); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', rule.name); cy.get(RISK_SCORE).should('have.text', rule.riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts index 74c23183e4952..e4fb2da2a84e6 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/links.cy.ts @@ -6,7 +6,7 @@ */ import { getNewRule } from '../../objects/rule'; -import { RULES_MONITORING_TABLE, RULE_NAME } from '../../screens/alerts_detection_rules'; +import { RULES_MONITORING_TAB, RULE_NAME } from '../../screens/alerts_detection_rules'; import { createCustomRuleEnabled } from '../../tasks/api_calls/rules'; import { cleanKibana, deleteAlertsAndRules } from '../../tasks/common'; import { login, visitWithoutDateRange } from '../../tasks/login'; @@ -29,7 +29,7 @@ describe('Rules talbes links', () => { }); it('should render correct link for rule name - rule monitoring', () => { - cy.get(RULES_MONITORING_TABLE).first().click(); + cy.get(RULES_MONITORING_TAB).click(); cy.get(RULE_NAME).first().click(); cy.url().should('contain', 'rules/id/'); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts index 5625291ab2c3c..7c98027f72248 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/machine_learning_rule.cy.ts @@ -11,6 +11,7 @@ import { getMachineLearningRule } from '../../objects/rule'; import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -73,7 +74,7 @@ describe('Detection rules, machine learning', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(expectedNumberOfRules); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', getMachineLearningRule().name); cy.get(RISK_SCORE).should('have.text', getMachineLearningRule().riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts index ac8b2e5c710c2..12c884e4a8b18 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/new_terms_rule.cy.ts @@ -13,6 +13,7 @@ import { ALERT_DATA_GRID } from '../../screens/alerts'; import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -98,7 +99,7 @@ describe('New Terms rules', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(expectedNumberOfRules); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, expectedNumberOfRules); cy.get(RULE_NAME).should('have.text', this.rule.name); cy.get(RISK_SCORE).should('have.text', this.rule.riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts index 69ec2e9b75f9b..8ff3dfff0331b 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/override.cy.ts @@ -15,6 +15,7 @@ import { NUMBER_OF_ALERTS, ALERT_GRID_CELL } from '../../screens/alerts'; import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -97,7 +98,7 @@ describe('Detection rules, override', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(1); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); cy.get(RULE_NAME).should('have.text', this.rule.name); cy.get(RISK_SCORE).should('have.text', this.rule.riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/persistent_rules_table_state.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/persistent_rules_table_state.cy.ts new file mode 100644 index 0000000000000..560c6417759c3 --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/persistent_rules_table_state.cy.ts @@ -0,0 +1,409 @@ +/* + * 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 { encode } from '@kbn/rison'; +import { cleanKibana, resetRulesTableState } from '../../tasks/common'; +import { login, visit } from '../../tasks/login'; +import { + DASHBOARDS_URL, + KIBANA_HOME, + SECURITY_DETECTIONS_RULES_MANAGEMENT_URL, + SECURITY_DETECTIONS_RULES_MONITORING_URL, + SECURITY_DETECTIONS_RULES_URL, +} from '../../urls/navigation'; +import { getNewRule } from '../../objects/rule'; +import { + expectNumberOfRules, + expectToContainRule, + filterByCustomRules, + filterBySearchTerm, + filterByTags, + goToRuleDetails, + expectFilterSearchTerm, + expectFilterByTags, + expectFilterByCustomRules, + expectRulesManagementTab, + expectRulesMonitoringTab, + expectNoFilterByTags, + expectNoFilterByElasticOrCustomRules, + expectFilterByDisabledRules, + expectNoFilterByEnabledOrDisabledRules, + filterByDisabledRules, + expectFilterByPrebuiltRules, + expectFilterByEnabledRules, +} from '../../tasks/alerts_detection_rules'; +import { RULES_MANAGEMENT_TABLE } from '../../screens/alerts_detection_rules'; +import { createCustomRule } from '../../tasks/api_calls/rules'; +import { + expectRowsPerPage, + expectTablePage, + expectTableSorting, + goToTablePage, + setRowsPerPageTo, + sortByTableColumn, +} from '../../tasks/table_pagination'; + +function createRule(id: string, name: string, tags?: string[], enabled = false): void { + const rule = getNewRule(); + + rule.name = name; + rule.tags = tags; + rule.enabled = enabled; + + createCustomRule(rule, id); +} + +function createTestRules(): void { + createRule('1', 'test 1', ['tag-a']); + createRule('2', 'rule 1', ['tag-b']); + createRule('3', 'rule 2', ['tag-b']); + createRule('4', 'rule 3', ['tag-b', 'tag-c']); + createRule('5', 'rule 4', ['tag-b']); + createRule('6', 'rule 5', ['tag-b', 'tag-c']); + createRule('7', 'rule 6', ['tag-b']); + createRule('8', 'rule 7', ['tag-b'], true); +} + +function visitRulesTableWithState(urlTableState: Record): void { + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL, { qs: { rulesTable: encode(urlTableState) } }); +} + +function setStorageState(storageTableState: Record): void { + cy.window().then((win) => { + win.sessionStorage.setItem('securitySolution.rulesTable', JSON.stringify(storageTableState)); + }); +} + +function changeRulesTableState(): void { + filterBySearchTerm('rule'); + filterByTags(['tag-b']); + filterByCustomRules(); + filterByDisabledRules(); + sortByTableColumn('Rule', 'asc'); + setRowsPerPageTo(5); +} + +function expectRulesTableState(): void { + expectFilterSearchTerm('rule'); + expectFilterByTags(['tag-b']); + expectFilterByCustomRules(); + expectFilterByDisabledRules(); + expectTableSorting('Rule', 'asc'); + expectRowsPerPage(5); +} + +function expectDefaultRulesTableState(): void { + expectFilterSearchTerm(''); + expectNoFilterByTags(); + expectNoFilterByElasticOrCustomRules(); + expectNoFilterByEnabledOrDisabledRules(); + expectTableSorting('Enabled', 'desc'); + expectRowsPerPage(20); + expectTablePage(1); +} + +function expectManagementTableRules(ruleNames: string[]): void { + expectNumberOfRules(RULES_MANAGEMENT_TABLE, ruleNames.length); + + for (const ruleName of ruleNames) { + expectToContainRule(RULES_MANAGEMENT_TABLE, ruleName); + } +} + +describe('Persistent rules table state', () => { + before(() => { + cleanKibana(); + createTestRules(); + login(); + }); + + beforeEach(() => { + resetRulesTableState(); + }); + + describe('while on a happy path', () => { + it('activates management tab by default', () => { + visit(SECURITY_DETECTIONS_RULES_URL); + + expectRulesManagementTab(); + }); + + it('leads to displaying a rule according to the specified filters', () => { + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); + + expectManagementTableRules(['rule 6']); + }); + + it('loads from the url', () => { + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); + + expectRulesManagementTab(); + expectFilterSearchTerm('rule'); + expectFilterByTags(['tag-b']); + expectFilterByCustomRules(); + expectFilterByDisabledRules(); + expectTableSorting('Rule', 'asc'); + expectRowsPerPage(5); + expectTablePage(2); + }); + + it('loads from the session storage', () => { + setStorageState({ + searchTerm: 'test', + tags: ['tag-a'], + source: 'prebuilt', + enabled: true, + field: 'severity', + order: 'desc', + perPage: 10, + }); + + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + + expectRulesManagementTab(); + expectFilterSearchTerm('test'); + expectFilterByTags(['tag-a']); + expectFilterByPrebuiltRules(); + expectFilterByEnabledRules(); + expectTableSorting('Severity', 'desc'); + }); + + it('prefers url state over storage state', () => { + setStorageState({ + searchTerm: 'test', + tags: ['tag-c'], + source: 'prebuilt', + enabled: true, + field: 'severity', + order: 'desc', + perPage: 10, + }); + + visitRulesTableWithState({ + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); + + describe('and on the rules management tab', () => { + beforeEach(() => { + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + }); + + it('persists after reloading the page', () => { + changeRulesTableState(); + goToTablePage(2); + + cy.reload(); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); + + it('persists after navigating back from a rule details page', () => { + changeRulesTableState(); + goToTablePage(2); + + goToRuleDetails(); + cy.go('back'); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); + + it('persists after navigating to another page inside Security Solution', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(DASHBOARDS_URL); + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + + it('persists after navigating to another page outside Security Solution', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(KIBANA_HOME); + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + }); + + describe('and on the rules monitoring tab', () => { + beforeEach(() => { + visit(SECURITY_DETECTIONS_RULES_MONITORING_URL); + }); + + it('persists the selected tab', () => { + changeRulesTableState(); + + cy.reload(); + + expectRulesMonitoringTab(); + }); + }); + }); + + describe('upon state format upgrade', async () => { + describe('and having state in the url', () => { + it('ignores unsupported state key', () => { + visitRulesTableWithState({ + someKey: 10, + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + page: 2, + }); + + expectRulesTableState(); + expectTablePage(2); + }); + }); + + describe('and having state in the session storage', () => { + it('ignores unsupported state key', () => { + setStorageState({ + someKey: 10, + searchTerm: 'rule', + tags: ['tag-b'], + source: 'custom', + enabled: false, + field: 'name', + order: 'asc', + perPage: 5, + }); + + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + + expectRulesTableState(); + expectTablePage(1); + }); + }); + }); + + describe('when persisted state is partially unavailable', () => { + describe('and on the rules management tab', () => { + beforeEach(() => { + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + }); + + it('persists after clearing the session storage', () => { + changeRulesTableState(); + goToTablePage(2); + + cy.window().then((win) => { + win.sessionStorage.clear(); + }); + cy.reload(); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); + + it('persists after clearing the url state', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + }); + }); + + describe('when corrupted', () => { + describe('and on the rules management tab', () => { + beforeEach(() => { + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL); + }); + + it('persists after corrupting the session storage data', () => { + changeRulesTableState(); + goToTablePage(2); + + cy.window().then((win) => { + win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); + cy.reload(); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(2); + }); + }); + + it('persists after corrupting the url param data', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL, { qs: { rulesTable: '(!invalid)' } }); + + expectRulesManagementTab(); + expectRulesTableState(); + expectTablePage(1); + }); + + it('DOES NOT persist after corrupting the session storage and url param data', () => { + changeRulesTableState(); + goToTablePage(2); + + visit(SECURITY_DETECTIONS_RULES_MANAGEMENT_URL, { + qs: { rulesTable: '(!invalid)' }, + onBeforeLoad: (win) => { + win.sessionStorage.setItem('securitySolution.rulesTable', '!invalid'); + }, + }); + + expectRulesManagementTab(); + expectDefaultRulesTableState(); + }); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts index 943a3e5e236fa..66d6de71c3469 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/prebuilt_rules.cy.ts @@ -10,9 +10,9 @@ import { ELASTIC_RULES_BTN, LOAD_PREBUILT_RULES_ON_PAGE_HEADER_BTN, RULES_EMPTY_PROMPT, - RULES_MONITORING_TABLE, + RULES_MONITORING_TAB, RULES_ROW, - RULES_TABLE, + RULES_MANAGEMENT_TABLE, RULE_SWITCH, SELECT_ALL_RULES_ON_PAGE_CHECKBOX, } from '../../screens/alerts_detection_rules'; @@ -50,7 +50,7 @@ describe('Prebuilt rules', () => { describe('Alerts rules, prebuilt rules', () => { it('Loads prebuilt rules', () => { // Check that the rules table contains rules - cy.get(RULES_TABLE).find(RULES_ROW).should('have.length.gte', 1); + cy.get(RULES_MANAGEMENT_TABLE).find(RULES_ROW).should('have.length.gte', 1); // Check the correct count of prebuilt rules is displayed getAvailablePrebuiltRulesCount().then((availablePrebuiltRulesCount) => { @@ -63,7 +63,7 @@ describe('Prebuilt rules', () => { context('Rule monitoring table', () => { it('Allows to enable/disable all rules at once', () => { - cy.get(RULES_MONITORING_TABLE).click(); + cy.get(RULES_MONITORING_TAB).click(); cy.get(SELECT_ALL_RULES_ON_PAGE_CHECKBOX).click(); enableSelectedRules(); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts index c54c77c63d67b..1ac6490ff3097 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_auto_refresh.cy.ts @@ -12,7 +12,6 @@ import { REFRESH_SETTINGS_SELECTION_NOTE, } from '../../screens/alerts_detection_rules'; import { - changeRowsPerPageTo, checkAutoRefresh, waitForRulesTableToBeLoaded, selectAllRules, @@ -30,6 +29,7 @@ import { DETECTIONS_RULE_MANAGEMENT_URL } from '../../urls/navigation'; import { createCustomRule } from '../../tasks/api_calls/rules'; import { cleanKibana } from '../../tasks/common'; import { getNewRule } from '../../objects/rule'; +import { setRowsPerPageTo } from '../../tasks/table_pagination'; const DEFAULT_RULE_REFRESH_INTERVAL_VALUE = 60000; @@ -78,7 +78,7 @@ describe('Alerts detection rules table auto-refresh', () => { it('should disable auto refresh when any rule selected and enable it after rules unselected', () => { visit(DETECTIONS_RULE_MANAGEMENT_URL); waitForRulesTableToBeLoaded(); - changeRowsPerPageTo(5); + setRowsPerPageTo(5); // check refresh settings if it's enabled before selecting openRefreshSettingsPopover(); @@ -107,7 +107,7 @@ describe('Alerts detection rules table auto-refresh', () => { it('should not enable auto refresh after rules were unselected if auto refresh was disabled', () => { visit(DETECTIONS_RULE_MANAGEMENT_URL); waitForRulesTableToBeLoaded(); - changeRowsPerPageTo(5); + setRowsPerPageTo(5); openRefreshSettingsPopover(); disableAutoRefresh(); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_persistent_state.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_persistent_state.cy.ts deleted file mode 100644 index 87cfd0616ed92..0000000000000 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/rules_table_persistent_state.cy.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { cleanKibana, resetRulesTableState } from '../../tasks/common'; -import { login, visit } from '../../tasks/login'; -import { DASHBOARDS_URL, SECURITY_DETECTIONS_RULES_URL } from '../../urls/navigation'; -import { getNewRule } from '../../objects/rule'; -import { - expectNumberOfRules, - expectToContainRule, - filterBySearchTerm, - goToRuleDetails, -} from '../../tasks/alerts_detection_rules'; -import { RULE_SEARCH_FIELD } from '../../screens/alerts_detection_rules'; -import { createCustomRule } from '../../tasks/api_calls/rules'; -import { goBackToRulesTable } from '../../tasks/rule_details'; - -function createRule(id: string, name: string, tags?: string[]): void { - const rule = getNewRule(); - - rule.name = name; - rule.tags = tags; - - createCustomRule(rule, id); -} - -// Failing on `main`, skipping for now, to be addressed by security-detection-rules-area -describe.skip('Persistent rules table state', () => { - before(() => { - cleanKibana(); - - createRule('1', 'Test rule 1'); - createRule('2', 'Test rule 2', ['Custom']); - - login(); - }); - - beforeEach(() => { - resetRulesTableState(); - visit(SECURITY_DETECTIONS_RULES_URL); // Make sure state isn't persisted in the url - }); - - it('reloads the state from the url if the storage was cleared', () => { - filterBySearchTerm('rule 1'); - - cy.window().then((win) => { - win.sessionStorage.clear(); - }); - cy.reload(); - - cy.get(RULE_SEARCH_FIELD).should('have.value', 'rule 1'); - expectNumberOfRules(1); - expectToContainRule('rule 1'); - }); - - it('preserved after navigation from the rules details page', () => { - filterBySearchTerm('rule 1'); - - expectNumberOfRules(1); - expectToContainRule('rule 1'); - - goToRuleDetails(); - goBackToRulesTable(); - - cy.get(RULE_SEARCH_FIELD).should('have.value', 'rule 1'); - expectNumberOfRules(1); - expectToContainRule('rule 1'); - }); - - it('preserved after navigation from another page', () => { - filterBySearchTerm('rule 1'); - - visit(DASHBOARDS_URL); - visit(SECURITY_DETECTIONS_RULES_URL); - - cy.get(RULE_SEARCH_FIELD).should('have.value', 'rule 1'); - expectNumberOfRules(1); - expectToContainRule('rule 1'); - }); -}); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts index 17383c2b8d75d..2364da76bddf3 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/sorting.cy.ts @@ -11,15 +11,11 @@ import { RULE_SWITCH, SECOND_RULE, FOURTH_RULE, - RULES_TABLE, - pageSelector, + RULES_MANAGEMENT_TABLE, RULES_ROW, } from '../../screens/alerts_detection_rules'; import { enableRule, - changeRowsPerPageTo, - goToPage, - sortByEnabledRules, waitForRulesTableToBeLoaded, waitForRuleToUpdate, } from '../../tasks/alerts_detection_rules'; @@ -34,6 +30,8 @@ import { getNewRule, getNewThresholdRule, } from '../../objects/rule'; +import { goToTablePage, setRowsPerPageTo, sortByTableColumn } from '../../tasks/table_pagination'; +import { TABLE_FIRST_PAGE, TABLE_SECOND_PAGE } from '../../screens/table_pagination'; describe('Alerts detection rules', () => { before(() => { @@ -57,7 +55,7 @@ describe('Alerts detection rules', () => { cy.get(RULE_SWITCH).eq(SECOND_RULE).should('have.attr', 'role', 'switch'); cy.get(RULE_SWITCH).eq(FOURTH_RULE).should('have.attr', 'role', 'switch'); - sortByEnabledRules(); + sortByTableColumn('Enabled', 'desc'); cy.get(RULE_SWITCH).eq(FIRST_RULE).should('have.attr', 'role', 'switch'); cy.get(RULE_SWITCH).eq(SECOND_RULE).should('have.attr', 'role', 'switch'); @@ -69,26 +67,23 @@ describe('Alerts detection rules', () => { visit(DETECTIONS_RULE_MANAGEMENT_URL); waitForRulesTableToBeLoaded(); - changeRowsPerPageTo(5); + setRowsPerPageTo(5); - const FIRST_PAGE_SELECTOR = pageSelector(1); - const SECOND_PAGE_SELECTOR = pageSelector(2); + cy.get(RULES_MANAGEMENT_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); - cy.get(RULES_TABLE).find(FIRST_PAGE_SELECTOR).should('have.attr', 'aria-current'); - - cy.get(RULES_TABLE) + cy.get(RULES_MANAGEMENT_TABLE) .find(RULE_NAME) .first() .invoke('text') .then((ruleNameFirstPage) => { - goToPage(2); + goToTablePage(2); // Check that the rules table shows at least one row - cy.get(RULES_TABLE).find(RULES_ROW).should('have.length.gte', 1); + cy.get(RULES_MANAGEMENT_TABLE).find(RULES_ROW).should('have.length.gte', 1); // Check that the rules table doesn't show the rule from the first page - cy.get(RULES_TABLE).should('not.contain', ruleNameFirstPage); + cy.get(RULES_MANAGEMENT_TABLE).should('not.contain', ruleNameFirstPage); }); - cy.get(RULES_TABLE).find(FIRST_PAGE_SELECTOR).should('not.have.attr', 'aria-current'); - cy.get(RULES_TABLE).find(SECOND_PAGE_SELECTOR).should('have.attr', 'aria-current'); + cy.get(RULES_MANAGEMENT_TABLE).find(TABLE_FIRST_PAGE).should('not.have.attr', 'aria-current'); + cy.get(RULES_MANAGEMENT_TABLE).find(TABLE_SECOND_PAGE).should('have.attr', 'aria-current'); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts index df3f0031289e3..e287df3a1c5ef 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_rules/threshold_rule.cy.ts @@ -14,6 +14,7 @@ import { ALERT_GRID_CELL, NUMBER_OF_ALERTS } from '../../screens/alerts'; import { CUSTOM_RULES_BTN, RISK_SCORE, + RULES_MANAGEMENT_TABLE, RULE_NAME, RULE_SWITCH, SEVERITY, @@ -93,7 +94,7 @@ describe('Detection rules, threshold', () => { cy.get(CUSTOM_RULES_BTN).should('have.text', 'Custom rules (1)'); - expectNumberOfRules(1); + expectNumberOfRules(RULES_MANAGEMENT_TABLE, 1); cy.get(RULE_NAME).should('have.text', rule.name); cy.get(RISK_SCORE).should('have.text', rule.riskScore); diff --git a/x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts index f3a9b30916cf9..415fb22e8ed28 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/network/hover_actions.cy.ts @@ -40,7 +40,7 @@ describe('Hover actions', () => { }); beforeEach(() => { - visit(NETWORK_URL, onBeforeLoadCallback); + visit(NETWORK_URL, { onBeforeLoad: onBeforeLoadCallback }); openHoverActions(); mouseoverOnToOverflowItem(); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts index f0256a1b34b4b..506dcee9e6612 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/pagination/pagination.cy.ts @@ -9,17 +9,17 @@ import { PROCESS_NAME_FIELD, UNCOMMON_PROCESSES_TABLE, } from '../../screens/hosts/uncommon_processes'; -import { FIRST_PAGE_SELECTOR, SECOND_PAGE_SELECTOR } from '../../screens/pagination'; +import { TABLE_FIRST_PAGE, TABLE_SECOND_PAGE } from '../../screens/table_pagination'; import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver'; import { waitsForEventsToBeLoaded } from '../../tasks/hosts/events'; import { openEvents, openUncommonProcesses } from '../../tasks/hosts/main'; import { waitForUncommonProcessesToBeLoaded } from '../../tasks/hosts/uncommon_processes'; import { login, visit } from '../../tasks/login'; -import { goToSecondPage, sortFirstColumn } from '../../tasks/pagination'; import { refreshPage } from '../../tasks/security_header'; import { HOSTS_URL, USERS_URL, HOSTS_PAGE_TAB_URLS } from '../../urls/navigation'; import { ALL_HOSTS_TABLE } from '../../screens/hosts/all_hosts'; import { ALL_USERS_TABLE } from '../../screens/users/all_users'; +import { goToTablePage, sortFirstTableColumn } from '../../tasks/table_pagination'; describe('Pagination', () => { before(() => { @@ -41,16 +41,14 @@ describe('Pagination', () => { }); it('pagination updates results and page number', () => { - cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) - .should('have.attr', 'aria-current'); + cy.get(UNCOMMON_PROCESSES_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); cy.get(UNCOMMON_PROCESSES_TABLE) .find(PROCESS_NAME_FIELD) .first() .invoke('text') .then((processNameFirstPage) => { - goToSecondPage(); + goToTablePage(2); waitForUncommonProcessesToBeLoaded(); cy.get(UNCOMMON_PROCESSES_TABLE) .find(PROCESS_NAME_FIELD) @@ -61,18 +59,14 @@ describe('Pagination', () => { }); }); cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) + .find(TABLE_FIRST_PAGE) .should('not.have.attr', 'aria-current'); - cy.get(UNCOMMON_PROCESSES_TABLE) - .find(SECOND_PAGE_SELECTOR) - .should('have.attr', 'aria-current'); + cy.get(UNCOMMON_PROCESSES_TABLE).find(TABLE_SECOND_PAGE).should('have.attr', 'aria-current'); }); it('pagination keeps track of page results when tabs change', () => { - cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) - .should('have.attr', 'aria-current'); - goToSecondPage(); + cy.get(UNCOMMON_PROCESSES_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); + goToTablePage(2); waitForUncommonProcessesToBeLoaded(); cy.get(PROCESS_NAME_FIELD) @@ -81,10 +75,10 @@ describe('Pagination', () => { .then((expectedThirdPageResult) => { openEvents(); waitsForEventsToBeLoaded(); - cy.get(FIRST_PAGE_SELECTOR).should('have.attr', 'aria-current'); + cy.get(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); openUncommonProcesses(); waitForUncommonProcessesToBeLoaded(); - cy.get(SECOND_PAGE_SELECTOR).should('have.attr', 'aria-current'); + cy.get(TABLE_SECOND_PAGE).should('have.attr', 'aria-current'); cy.get(PROCESS_NAME_FIELD) .first() .invoke('text') @@ -95,19 +89,15 @@ describe('Pagination', () => { }); it('pagination resets results and page number to first page when refresh is clicked', () => { - cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) - .should('have.attr', 'aria-current'); - goToSecondPage(); + cy.get(UNCOMMON_PROCESSES_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); + goToTablePage(2); waitForUncommonProcessesToBeLoaded(); cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) + .find(TABLE_FIRST_PAGE) .should('not.have.attr', 'aria-current'); refreshPage(); waitForUncommonProcessesToBeLoaded(); - cy.get(UNCOMMON_PROCESSES_TABLE) - .find(FIRST_PAGE_SELECTOR) - .should('have.attr', 'aria-current'); + cy.get(UNCOMMON_PROCESSES_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); }); }); @@ -122,22 +112,22 @@ describe('Pagination', () => { it(`reset all Hosts pagination when sorting column`, () => { visit(HOSTS_URL); - goToSecondPage(); - cy.get(ALL_HOSTS_TABLE).find(FIRST_PAGE_SELECTOR).should('not.have.attr', 'aria-current'); + goToTablePage(2); + cy.get(ALL_HOSTS_TABLE).find(TABLE_FIRST_PAGE).should('not.have.attr', 'aria-current'); - sortFirstColumn(); + sortFirstTableColumn(); - cy.get(ALL_HOSTS_TABLE).find(FIRST_PAGE_SELECTOR).should('have.attr', 'aria-current'); + cy.get(ALL_HOSTS_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); }); it(`reset all users pagination when sorting column`, () => { visit(USERS_URL); - goToSecondPage(); - cy.get(ALL_USERS_TABLE).find(FIRST_PAGE_SELECTOR).should('not.have.attr', 'aria-current'); + goToTablePage(2); + cy.get(ALL_USERS_TABLE).find(TABLE_FIRST_PAGE).should('not.have.attr', 'aria-current'); - sortFirstColumn(); + sortFirstTableColumn(); - cy.get(ALL_USERS_TABLE).find(FIRST_PAGE_SELECTOR).should('have.attr', 'aria-current'); + cy.get(ALL_USERS_TABLE).find(TABLE_FIRST_PAGE).should('have.attr', 'aria-current'); }); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts index 84110b752256f..b8fa0c1f5a80f 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/timeline_templates/export.cy.ts @@ -15,7 +15,7 @@ import { import { TIMELINE_TEMPLATES_URL } from '../../urls/navigation'; import { createTimelineTemplate } from '../../tasks/api_calls/timelines'; import { cleanKibana } from '../../tasks/common'; -import { changeRowsPerPageTo } from '../../tasks/alerts_detection_rules'; +import { setRowsPerPageTo } from '../../tasks/table_pagination'; describe('Export timelines', () => { before(() => { @@ -33,7 +33,7 @@ describe('Export timelines', () => { it('Exports a custom timeline template', function () { visitWithoutDateRange(TIMELINE_TEMPLATES_URL); - changeRowsPerPageTo(20); + setRowsPerPageTo(20); exportTimeline(this.templateId); cy.wait('@export').then(({ response }) => { diff --git a/x-pack/plugins/security_solution/cypress/objects/rule.ts b/x-pack/plugins/security_solution/cypress/objects/rule.ts index a80c7099c31ff..58ab3f76fa6db 100644 --- a/x-pack/plugins/security_solution/cypress/objects/rule.ts +++ b/x-pack/plugins/security_solution/cypress/objects/rule.ts @@ -65,6 +65,7 @@ export interface CustomRule { buildingBlockType?: string; exceptionLists?: Array<{ id: string; list_id: string; type: string; namespace_type: string }>; actions?: Actions; + enabled?: boolean; } export interface ThresholdRule extends CustomRule { diff --git a/x-pack/plugins/security_solution/cypress/screens/alerts_detection_rules.ts b/x-pack/plugins/security_solution/cypress/screens/alerts_detection_rules.ts index 870faea26a360..47bf62a73c3f8 100644 --- a/x-pack/plugins/security_solution/cypress/screens/alerts_detection_rules.ts +++ b/x-pack/plugins/security_solution/cypress/screens/alerts_detection_rules.ts @@ -13,8 +13,14 @@ export const CREATE_NEW_RULE_BTN = '[data-test-subj="create-new-rule"]'; export const COLLAPSED_ACTION_BTN = '[data-test-subj="euiCollapsedItemActionsButton"]'; +export const ELASTIC_RULES_BTN = '[data-test-subj="showElasticRulesFilterButton"]'; + export const CUSTOM_RULES_BTN = '[data-test-subj="showCustomRulesFilterButton"]'; +export const ENABLED_RULES_BTN = '[data-test-subj="showEnabledRulesFilterButton"]'; + +export const DISABLED_RULES_BTN = '[data-test-subj="showDisabledRulesFilterButton"]'; + export const DELETE_RULE_ACTION_BTN = '[data-test-subj="deleteRuleAction"]'; export const EDIT_RULE_ACTION_BTN = '[data-test-subj="editRuleAction"]'; @@ -34,8 +40,6 @@ export const DUPLICATE_RULE_BULK_BTN = '[data-test-subj="duplicateRuleBulk"]'; export const RULE_SEARCH_FIELD = '[data-test-subj="ruleSearchField"]'; -export const ELASTIC_RULES_BTN = '[data-test-subj="showElasticRulesFilterButton"]'; - export const EXPORT_ACTION_BTN = '[data-test-subj="exportRuleAction"]'; export const BULK_EXPORT_ACTION_BTN = '[data-test-subj="exportRuleBulk"]'; @@ -71,23 +75,17 @@ export const RULE_SWITCH = '[data-test-subj="ruleSwitch"]'; export const RULE_SWITCH_LOADER = '[data-test-subj="ruleSwitchLoader"]'; -export const RULES_TABLE = '[data-test-subj="rules-table"]'; - -export const RULES_ROW = '.euiTableRow'; - -export const RULES_MONITORING_TABLE = '[role="tablist"] > [data-test-subj="navigation-monitoring"]'; +export const RULES_MANAGEMENT_TAB = '[data-test-subj="navigation-management"]'; -export const SEVERITY = '[data-test-subj="severity"]'; +export const RULES_MONITORING_TAB = '[data-test-subj="navigation-monitoring"]'; -export const SORT_RULES_BTN = '[data-test-subj="tableHeaderSortButton"]'; +export const RULES_MANAGEMENT_TABLE = '[data-test-subj="rules-management-table"]'; -export const PAGINATION_POPOVER_BTN = '[data-test-subj="tablePaginationPopoverButton"]'; +export const RULES_MONITORING_TABLE = '[data-test-subj="rules-monitoring-table"]'; -export const rowsPerPageSelector = (count: number) => - `[data-test-subj="tablePagination-${count}-rows"]`; +export const RULES_ROW = '.euiTableRow'; -export const pageSelector = (pageNumber: number) => - `[data-test-subj="pagination-button-${pageNumber - 1}"]`; +export const SEVERITY = '[data-test-subj="severity"]'; export const SELECT_ALL_RULES_BTN = '[data-test-subj="selectAllRules"]'; @@ -137,6 +135,10 @@ export const RULES_TAGS_POPOVER_WRAPPER = '[data-test-subj="tagsDisplayPopoverWr export const RULES_TAGS_FILTER_BTN = '[data-test-subj="tags-filter-popover-button"]'; +export const RULES_TAGS_FILTER_POPOVER = '[data-test-subj="tags-filter-popover"]'; + +export const RULES_SELECTED_TAG = '.euiSelectableListItem[data-test-selected="true"]'; + export const SELECTED_RULES_NUMBER_LABEL = '[data-test-subj="selectedRules"]'; export const REFRESH_SETTINGS_POPOVER = '[data-test-subj="refreshSettings-popover"]'; diff --git a/x-pack/plugins/security_solution/cypress/screens/integrations.ts b/x-pack/plugins/security_solution/cypress/screens/integrations.ts index a834fdf0fb050..ddcb266d7274e 100644 --- a/x-pack/plugins/security_solution/cypress/screens/integrations.ts +++ b/x-pack/plugins/security_solution/cypress/screens/integrations.ts @@ -7,6 +7,8 @@ export const ADD_INTEGRATION_BTN = '[data-test-subj="addIntegrationPolicyButton"]'; +export const SKIP_AGENT_INSTALLATION_BTN = '[data-test-subj="skipAgentInstallation"]'; + export const INTEGRATION_ADDED_POP_UP = '[data-test-subj="postInstallAddAgentModal"]'; export const QUEUE_URL = '.euiFieldText.euiFormControlLayout--1icons'; diff --git a/x-pack/plugins/security_solution/cypress/screens/pagination.ts b/x-pack/plugins/security_solution/cypress/screens/loading.ts similarity index 53% rename from x-pack/plugins/security_solution/cypress/screens/pagination.ts rename to x-pack/plugins/security_solution/cypress/screens/loading.ts index ee99477319258..6e1b02a281f55 100644 --- a/x-pack/plugins/security_solution/cypress/screens/pagination.ts +++ b/x-pack/plugins/security_solution/cypress/screens/loading.ts @@ -5,6 +5,4 @@ * 2.0. */ -export const FIRST_PAGE_SELECTOR = '[data-test-subj="pagination-button-0"]'; -export const SECOND_PAGE_SELECTOR = '[data-test-subj="pagination-button-1"]'; -export const SORT_BTN = '[data-test-subj="tableHeaderSortButton"]'; +export const LOADING_SPINNER = '[data-test-subj="loading-spinner"]'; diff --git a/x-pack/plugins/security_solution/cypress/screens/table_pagination.ts b/x-pack/plugins/security_solution/cypress/screens/table_pagination.ts new file mode 100644 index 0000000000000..e52194632954b --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/screens/table_pagination.ts @@ -0,0 +1,21 @@ +/* + * 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 TABLE_PER_PAGE_POPOVER_BTN = '[data-test-subj="tablePaginationPopoverButton"]'; + +export const rowsPerPageSelector = (count: number) => + `[data-test-subj="tablePagination-${count}-rows"]`; + +// 1-based page number +export const tablePageSelector = (pageNumber: number) => + `[data-test-subj="pagination-button-${pageNumber - 1}"]`; + +export const TABLE_FIRST_PAGE = tablePageSelector(1); + +export const TABLE_SECOND_PAGE = tablePageSelector(2); + +export const TABLE_SORT_COLUMN_BTN = '[data-test-subj="tableHeaderSortButton"]'; diff --git a/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts b/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts index 83492ef9c4437..12d63a198cb06 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/alerts_detection_rules.ts @@ -12,22 +12,18 @@ import { CUSTOM_RULES_BTN, DELETE_RULE_ACTION_BTN, DELETE_RULE_BULK_BTN, + RULES_SELECTED_TAG, LOAD_PREBUILT_RULES_BTN, LOAD_PREBUILT_RULES_ON_PAGE_HEADER_BTN, RULES_TABLE_INITIAL_LOADING_INDICATOR, - RULES_TABLE_REFRESH_INDICATOR, RULES_TABLE_AUTOREFRESH_INDICATOR, - PAGINATION_POPOVER_BTN, RULE_CHECKBOX, RULE_NAME, RULE_SWITCH, RULE_SWITCH_LOADER, - RULES_TABLE, - SORT_RULES_BTN, + RULES_MANAGEMENT_TABLE, EXPORT_ACTION_BTN, EDIT_RULE_ACTION_BTN, - rowsPerPageSelector, - pageSelector, DUPLICATE_RULE_ACTION_BTN, DUPLICATE_RULE_MENU_PANEL_BTN, DUPLICATE_RULE_BULK_BTN, @@ -57,7 +53,15 @@ import { MODAL_CONFIRMATION_BODY, RULE_SEARCH_FIELD, RULE_IMPORT_OVERWRITE_CONNECTORS_CHECKBOX, + RULES_TAGS_FILTER_BTN, + RULES_TAGS_FILTER_POPOVER, + RULES_TABLE_REFRESH_INDICATOR, + RULES_MANAGEMENT_TAB, + RULES_MONITORING_TAB, + ENABLED_RULES_BTN, + DISABLED_RULES_BTN, } from '../screens/alerts_detection_rules'; +import type { RULES_MONITORING_TABLE } from '../screens/alerts_detection_rules'; import { EUI_CHECKBOX } from '../screens/common/controls'; import { ALL_ACTIONS } from '../screens/rule_details'; import { EDIT_SUBMIT_BUTTON } from '../screens/edit_rule'; @@ -167,10 +171,18 @@ export const exportFirstRule = () => { export const filterBySearchTerm = (term: string) => { cy.log(`Filter rules by search term: "${term}"`); cy.get(RULE_SEARCH_FIELD) - .type(term, { waitForAnimations: true }) + .type(term, { force: true }) .trigger('search', { waitForAnimations: true }); }; +export const filterByTags = (tags: string[]) => { + cy.get(RULES_TAGS_FILTER_BTN).click(); + + for (const tag of tags) { + cy.get(RULES_TAGS_FILTER_POPOVER).contains(tag).click(); + } +}; + export const filterByElasticRules = () => { cy.get(ELASTIC_RULES_BTN).click(); waitForRulesTableToBeRefreshed(); @@ -180,6 +192,14 @@ export const filterByCustomRules = () => { cy.get(CUSTOM_RULES_BTN).click({ force: true }); }; +export const filterByEnabledRules = () => { + cy.get(ENABLED_RULES_BTN).click({ force: true }); +}; + +export const filterByDisabledRules = () => { + cy.get(DISABLED_RULES_BTN).click({ force: true }); +}; + export const goToRuleDetails = () => { cy.get(RULE_NAME).first().click({ force: true }); }; @@ -272,11 +292,6 @@ export const confirmRulesDelete = () => { cy.get(RULES_DELETE_CONFIRMATION_MODAL).should('not.exist'); }; -export const sortByEnabledRules = () => { - cy.get(SORT_RULES_BTN).contains('Enabled').click({ force: true }); - cy.get(SORT_RULES_BTN).contains('Enabled').click({ force: true }); -}; - /** * Because the Rule Management page is relatively slow, in order to avoid timeouts and flakiness, * we almost always want to wait until the Rules table is "loaded" before we do anything with it. @@ -292,7 +307,7 @@ export const sortByEnabledRules = () => { */ export const waitForRulesTableToShow = () => { // Wait up to 5 minutes for the table to show up as in CI containers this can be very slow - cy.get(RULES_TABLE, { timeout: 300000 }).should('exist'); + cy.get(RULES_MANAGEMENT_TABLE, { timeout: 300000 }).should('exist'); }; /** @@ -319,7 +334,7 @@ export const waitForRulesTableToBeRefreshed = () => { export const waitForPrebuiltDetectionRulesToBeLoaded = () => { cy.log('Wait for prebuilt rules to be loaded'); cy.get(LOAD_PREBUILT_RULES_BTN, { timeout: 300000 }).should('not.exist'); - cy.get(RULES_TABLE).should('exist'); + cy.get(RULES_MANAGEMENT_TABLE).should('exist'); cy.get(RULES_TABLE_REFRESH_INDICATOR).should('not.exist'); }; @@ -340,18 +355,6 @@ export const checkAutoRefresh = (ms: number, condition: string) => { cy.get(RULES_TABLE_AUTOREFRESH_INDICATOR).should(condition); }; -export const changeRowsPerPageTo = (rowsCount: number) => { - cy.get(PAGINATION_POPOVER_BTN).click({ force: true }); - cy.get(rowsPerPageSelector(rowsCount)) - .pipe(($el) => $el.trigger('click')) - .should('not.exist'); -}; - -export const goToPage = (pageNumber: number) => { - cy.get(RULES_TABLE_REFRESH_INDICATOR).should('not.exist'); - cy.get(pageSelector(pageNumber)).last().click({ force: true }); -}; - export const importRules = (rulesFile: string) => { cy.get(RULE_IMPORT_MODAL).click(); cy.get(INPUT_FILE).should('exist'); @@ -360,16 +363,90 @@ export const importRules = (rulesFile: string) => { cy.get(INPUT_FILE).should('not.exist'); }; -export const expectNumberOfRules = (expectedNumber: number) => { - cy.get(RULES_TABLE).then(($table) => { - const rulesRow = cy.wrap($table.find(RULES_ROW)); +export const expectRulesManagementTab = () => { + cy.log(`Expecting rules management tab to be selected`); + cy.get(RULES_MANAGEMENT_TAB).should('have.attr', 'aria-selected'); +}; - rulesRow.should('have.length', expectedNumber); - }); +export const expectRulesMonitoringTab = () => { + cy.log(`Expecting rules monitoring tab to be selected`); + cy.get(RULES_MONITORING_TAB).should('have.attr', 'aria-selected'); +}; + +export const expectFilterSearchTerm = (searchTerm: string) => { + cy.log(`Expecting rules table filtering by search term '${searchTerm}'`); + cy.get(RULE_SEARCH_FIELD).should('have.value', searchTerm); +}; + +export const expectFilterByTags = (tags: string[]) => { + cy.log(`Expecting rules table filtering by tags [${tags.join(', ')}]`); + + cy.get(RULES_TAGS_FILTER_BTN).contains(`Tags${tags.length}`).click(); + + cy.get(RULES_TAGS_FILTER_POPOVER) + .find(RULES_SELECTED_TAG) + .should('have.length', tags.length) + .each(($el, index) => { + cy.wrap($el).contains(tags[index]); + }); +}; + +export const expectNoFilterByTags = () => { + cy.log(`Expecting rules table has no filtering by tags`); + cy.get(RULES_TAGS_FILTER_BTN).contains('Tags').click(); + cy.get(RULES_TAGS_FILTER_POPOVER).find(RULES_SELECTED_TAG).should('not.exist'); +}; + +export const expectFilterByPrebuiltRules = () => { + cy.log(`Expecting rules table filtering by prebuilt rules`); + cy.get(`${ELASTIC_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('exist'); +}; + +export const expectFilterByCustomRules = () => { + cy.log(`Expecting rules table filtering by custom rules`); + cy.get(`${CUSTOM_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('exist'); +}; + +export const expectNoFilterByElasticOrCustomRules = () => { + cy.log(`Expecting rules table has no filtering by either elastic nor custom rules`); + cy.get(ELASTIC_RULES_BTN).should('exist'); + cy.get(`${ELASTIC_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('not.exist'); + cy.get(CUSTOM_RULES_BTN).should('exist'); + cy.get(`${CUSTOM_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('not.exist'); +}; + +export const expectFilterByEnabledRules = () => { + cy.log(`Expecting rules table filtering by enabled rules`); + cy.get(`${ENABLED_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('exist'); +}; + +export const expectFilterByDisabledRules = () => { + cy.log(`Expecting rules table filtering by disabled rules`); + cy.get(`${DISABLED_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('exist'); +}; + +export const expectNoFilterByEnabledOrDisabledRules = () => { + cy.log(`Expecting rules table has no filtering by either enabled nor disabled rules`); + cy.get(ENABLED_RULES_BTN).should('exist'); + cy.get(`${ENABLED_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('not.exist'); + cy.get(DISABLED_RULES_BTN).should('exist'); + cy.get(`${DISABLED_RULES_BTN}.euiFilterButton-hasActiveFilters`).should('not.exist'); +}; + +export const expectNumberOfRules = ( + tableSelector: typeof RULES_MANAGEMENT_TABLE | typeof RULES_MONITORING_TABLE, + expectedNumber: number +) => { + cy.log(`Expecting rules table to contain #${expectedNumber} rules`); + cy.get(tableSelector).find(RULES_ROW).should('have.length', expectedNumber); }; -export const expectToContainRule = (ruleName: string) => { - cy.get(RULES_TABLE).find(RULES_ROW).should('include.text', ruleName); +export const expectToContainRule = ( + tableSelector: typeof RULES_MANAGEMENT_TABLE | typeof RULES_MONITORING_TABLE, + ruleName: string +) => { + cy.log(`Expecting rules table to contain '${ruleName}'`); + cy.get(tableSelector).find(RULES_ROW).should('include.text', ruleName); }; const selectOverwriteRulesImport = () => { diff --git a/x-pack/plugins/security_solution/cypress/tasks/api_calls/rules.ts b/x-pack/plugins/security_solution/cypress/tasks/api_calls/rules.ts index b48f86d0e6241..aa0e28185be5f 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/api_calls/rules.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/api_calls/rules.ts @@ -63,7 +63,7 @@ export const createCustomRule = ( data_view_id: rule.dataSource.type === 'dataView' ? rule.dataSource.dataView : undefined, query: rule.customQuery, language: 'kuery', - enabled: false, + enabled: rule.enabled ?? false, exceptions_list: rule.exceptionLists ?? [], tags: rule.tags, ...(timeline?.id ?? timeline?.templateTimelineId diff --git a/x-pack/plugins/security_solution/cypress/tasks/integrations.ts b/x-pack/plugins/security_solution/cypress/tasks/integrations.ts index 0150d0c83c3d5..e7c487971fba3 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/integrations.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/integrations.ts @@ -10,6 +10,7 @@ import { INTEGRATION_ADDED_POP_UP, QUEUE_URL, SAVE_AND_CONTINUE_BTN, + SKIP_AGENT_INSTALLATION_BTN, } from '../screens/integrations'; import { visit } from './login'; @@ -17,6 +18,7 @@ import { visit } from './login'; export const installAwsCloudFrontWithPolicy = () => { visit('app/integrations/detail/aws-1.17.0/overview?integration=cloudfront'); cy.get(ADD_INTEGRATION_BTN).click(); + cy.get(SKIP_AGENT_INSTALLATION_BTN).click(); cy.get(QUEUE_URL).type('http://www.example.com'); // Fleet installs an integration very slowly, so we have to increase the timeout here. diff --git a/x-pack/plugins/security_solution/cypress/tasks/login.ts b/x-pack/plugins/security_solution/cypress/tasks/login.ts index eb02d393a4764..5f5f49941953d 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/login.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/login.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { encode } from '@kbn/rison'; import * as yaml from 'js-yaml'; import type { UrlObject } from 'url'; import Url from 'url'; @@ -323,24 +324,38 @@ export const waitForPage = (url: string) => { ); }; -export const visit = ( - url: string, - onBeforeLoadCallback?: (win: Cypress.AUTWindow) => void, - role?: ROLES -) => { - cy.visit( - `${ - role ? getUrlWithRoute(role, url) : url - }?timerange=(global:(linkTo:!(timeline),timerange:(from:1547914976217,fromStr:'2019-01-19T16:22:56.217Z',kind:relative,to:1579537385745,toStr:now)),timeline:(linkTo:!(global),timerange:(from:1547914976217,fromStr:'2019-01-19T16:22:56.217Z',kind:relative,to:1579537385745,toStr:now)))`, - { - onBeforeLoad(win) { - if (onBeforeLoadCallback) { - onBeforeLoadCallback(win); - } - disableNewFeaturesTours(win); - }, - } - ); +export const visit = (url: string, options: Partial = {}, role?: ROLES) => { + const timerangeConfig = { + from: 1547914976217, + fromStr: '2019-01-19T16:22:56.217Z', + kind: 'relative', + to: 1579537385745, + toStr: 'now', + }; + + const timerange = encode({ + global: { + linkTo: ['timeline'], + timerange: timerangeConfig, + }, + timeline: { + linkTo: ['global'], + timerange: timerangeConfig, + }, + }); + + return cy.visit(role ? getUrlWithRoute(role, url) : url, { + ...options, + qs: { + ...options.qs, + timerange, + }, + onBeforeLoad: (win) => { + options.onBeforeLoad?.(win); + + disableNewFeaturesTours(win); + }, + }); }; export const visitWithoutDateRange = (url: string, role?: ROLES) => { diff --git a/x-pack/plugins/security_solution/cypress/tasks/pagination.ts b/x-pack/plugins/security_solution/cypress/tasks/pagination.ts deleted file mode 100644 index 63cc551cfdf2e..0000000000000 --- a/x-pack/plugins/security_solution/cypress/tasks/pagination.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { FIRST_PAGE_SELECTOR, SECOND_PAGE_SELECTOR, SORT_BTN } from '../screens/pagination'; - -export const goToFirstPage = () => { - cy.get(FIRST_PAGE_SELECTOR).last().click({ force: true }); -}; - -export const goToSecondPage = () => { - cy.get(SECOND_PAGE_SELECTOR).last().click({ force: true }); -}; - -export const sortFirstColumn = () => { - cy.get(SORT_BTN).first().click(); -}; diff --git a/x-pack/plugins/security_solution/cypress/tasks/table_pagination.ts b/x-pack/plugins/security_solution/cypress/tasks/table_pagination.ts new file mode 100644 index 0000000000000..ae62ca290e418 --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/tasks/table_pagination.ts @@ -0,0 +1,55 @@ +/* + * 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 { LOADING_SPINNER } from '../screens/loading'; +import { + rowsPerPageSelector, + tablePageSelector, + TABLE_PER_PAGE_POPOVER_BTN, + TABLE_SORT_COLUMN_BTN, +} from '../screens/table_pagination'; + +export const goToTablePage = (pageNumber: number) => { + cy.get(LOADING_SPINNER).should('not.exist'); + cy.get(tablePageSelector(pageNumber)).last().click({ force: true }); +}; + +export const sortFirstTableColumn = () => { + cy.get(TABLE_SORT_COLUMN_BTN).first().click(); +}; + +export const expectTablePage = (pageNumber: number) => { + cy.get(tablePageSelector(pageNumber)).should('have.text', pageNumber); +}; + +export const setRowsPerPageTo = (rowsCount: number) => { + cy.get(TABLE_PER_PAGE_POPOVER_BTN).click({ force: true }); + cy.get(rowsPerPageSelector(rowsCount)) + .pipe(($el) => $el.trigger('click')) + .should('not.exist'); +}; + +export const expectRowsPerPage = (rowsCount: number) => { + cy.get(TABLE_PER_PAGE_POPOVER_BTN).contains(`Rows per page: ${rowsCount}`); +}; + +export const sortByTableColumn = (columnName: string, direction: 'asc' | 'desc' = 'asc') => { + cy.get(TABLE_SORT_COLUMN_BTN).contains(columnName).click({ force: true }); + + if (direction === 'desc') { + cy.get(TABLE_SORT_COLUMN_BTN).contains(columnName).click({ force: true }); + } +}; + +export const expectTableSorting = (columnName: string, direction: 'asc' | 'desc') => { + const tableSortButton = cy.get(`${TABLE_SORT_COLUMN_BTN}.euiTableHeaderButton-isSorted`); + + tableSortButton.contains(columnName); + tableSortButton + .parents('.euiTableHeaderCell') + .should('have.attr', 'aria-sort', direction === 'asc' ? 'ascending' : 'descending'); +}; diff --git a/x-pack/plugins/security_solution/cypress/tasks/timeline.ts b/x-pack/plugins/security_solution/cypress/tasks/timeline.ts index 6ccc317dcca2c..78a4fcb0cf7b1 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/timeline.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/timeline.ts @@ -163,7 +163,6 @@ export const addNotesToTimeline = (notes: string) => { cy.get(NOTES_TEXT_AREA).type(notes, { parseSpecialCharSequences: false, - delay: 0, force: true, }); cy.get(ADD_NOTE_BUTTON) diff --git a/x-pack/plugins/security_solution/cypress/urls/navigation.ts b/x-pack/plugins/security_solution/cypress/urls/navigation.ts index 8b1391e448a00..21cad5ff1a8df 100644 --- a/x-pack/plugins/security_solution/cypress/urls/navigation.ts +++ b/x-pack/plugins/security_solution/cypress/urls/navigation.ts @@ -38,6 +38,8 @@ export const DETECTIONS_RULE_MANAGEMENT_URL = 'app/security/rules'; export const DETECTIONS = '/app/siem#/detections'; export const SECURITY_DETECTIONS_URL = '/app/security/detections'; export const SECURITY_DETECTIONS_RULES_URL = '/app/security/detections/rules'; +export const SECURITY_DETECTIONS_RULES_MANAGEMENT_URL = '/app/security/detections/rules/management'; +export const SECURITY_DETECTIONS_RULES_MONITORING_URL = '/app/security/detections/rules/monitoring'; export const SECURITY_DETECTIONS_RULES_CREATION_URL = '/app/security/detections/rules/create'; export const HOSTS_PAGE_TAB_URLS = { diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_table/use_rules_table_saved_state.test.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_table/use_rules_table_saved_state.test.ts index de9bf77e13236..6330c1ad207c3 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_table/use_rules_table_saved_state.test.ts +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_table/use_rules_table_saved_state.test.ts @@ -556,7 +556,28 @@ describe('useRulesTableSavedState', () => { }); describe('when there is invalid state in the url', () => { - it('does not return the filter', () => { + it('does not return filter when filters source has invalid value', () => { + mockRulesTablePersistedState({ + urlState: { + searchTerm: 'test', + // @ts-expect-error Passing an invalid value for the test + source: 'invalid', + tags: ['tag-a'], + enabled: true, + }, + storageState: null, + }); + + const { + result: { + current: { filter }, + }, + } = renderHook(() => useRulesTableSavedState()); + + expect(filter).toEqual({}); + }); + + it('does not return filter when tags have invalid values', () => { mockRulesTablePersistedState({ urlState: { searchTerm: 'test', @@ -564,75 +585,62 @@ describe('useRulesTableSavedState', () => { // @ts-expect-error Passing an invalid value for the test tags: [1, 2, 3], enabled: true, - field: 'name', - order: 'asc', - page: 2, - perPage: 10, }, storageState: null, }); const { result: { - current: { filter, sorting, pagination }, + current: { filter }, }, } = renderHook(() => useRulesTableSavedState()); expect(filter).toEqual({}); - expect(sorting).toEqual({ - field: 'name', - order: 'asc', - }); - expect(pagination).toEqual({ - page: 2, - perPage: 10, - }); }); - it('does not return the sorting', () => { + it('does not return filter when enabled state has invalid value', () => { mockRulesTablePersistedState({ urlState: { searchTerm: 'test', source: RuleSource.Custom, - tags: ['test'], - enabled: true, + tags: ['tag-a'], + // @ts-expect-error Passing an invalid value for the test + enabled: 10, + }, + storageState: null, + }); + + const { + result: { + current: { filter }, + }, + } = renderHook(() => useRulesTableSavedState()); + + expect(filter).toEqual({}); + }); + + it('does not return the sorting when order has invalid value', () => { + mockRulesTablePersistedState({ + urlState: { field: 'name', // @ts-expect-error Passing an invalid value for the test order: 'abc', - page: 2, - perPage: 10, }, storageState: null, }); const { result: { - current: { filter, sorting, pagination }, + current: { sorting }, }, } = renderHook(() => useRulesTableSavedState()); - expect(filter).toEqual({ - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, - }); expect(sorting).toEqual({}); - expect(pagination).toEqual({ - page: 2, - perPage: 10, - }); }); - it('does not return the pagination', () => { + it('does not return the pagination when page number has invalid value', () => { mockRulesTablePersistedState({ urlState: { - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, - field: 'name', - order: 'asc', // @ts-expect-error Passing an invalid value for the test page: 'aaa', perPage: 10, @@ -642,26 +650,90 @@ describe('useRulesTableSavedState', () => { const { result: { - current: { filter, sorting, pagination }, + current: { pagination }, }, } = renderHook(() => useRulesTableSavedState()); - expect(filter).toEqual({ - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, + expect(pagination).toEqual({}); + }); + + it('does not return the pagination when page number has negative value', () => { + mockRulesTablePersistedState({ + urlState: { + page: -1, + perPage: 10, + }, + storageState: null, }); - expect(sorting).toEqual({ - field: 'name', - order: 'asc', + + const { + result: { + current: { pagination }, + }, + } = renderHook(() => useRulesTableSavedState()); + + expect(pagination).toEqual({}); + }); + + it('does not return the pagination when per page number has invalid value', () => { + mockRulesTablePersistedState({ + urlState: { + // @ts-expect-error Passing an invalid value for the test + perPage: 'aaa', + }, + storageState: null, + }); + + const { + result: { + current: { pagination }, + }, + } = renderHook(() => useRulesTableSavedState()); + + expect(pagination).toEqual({}); + }); + + it('does not return the pagination when per page number has negative value', () => { + mockRulesTablePersistedState({ + urlState: { + perPage: -1, + }, + storageState: null, }); + + const { + result: { + current: { pagination }, + }, + } = renderHook(() => useRulesTableSavedState()); + expect(pagination).toEqual({}); }); }); describe('when there is invalid state in the storage', () => { - it('does not return the filter', () => { + it('does not return filter when filters source has invalid value', () => { + mockRulesTablePersistedState({ + urlState: null, + storageState: { + searchTerm: 'test', + // @ts-expect-error Passing an invalid value for the test + source: 'invalid', + tags: ['tag-a'], + enabled: true, + }, + }); + + const { + result: { + current: { filter }, + }, + } = renderHook(() => useRulesTableSavedState()); + + expect(filter).toEqual({}); + }); + + it('does not return filter when tags have invalid values', () => { mockRulesTablePersistedState({ urlState: null, storageState: { @@ -692,49 +764,29 @@ describe('useRulesTableSavedState', () => { }); }); - it('does not return the sorting', () => { + it('does not return sorting when order has invalid value', () => { mockRulesTablePersistedState({ urlState: null, storageState: { - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, field: 'name', // @ts-expect-error Passing an invalid value for the test order: 'abc', - perPage: 10, }, }); const { result: { - current: { filter, sorting, pagination }, + current: { sorting }, }, } = renderHook(() => useRulesTableSavedState()); - expect(filter).toEqual({ - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, - }); expect(sorting).toEqual({}); - expect(pagination).toEqual({ - perPage: 10, - }); }); - it('does not return the pagination', () => { + it('does not return pagination when per page has invalid value', () => { mockRulesTablePersistedState({ urlState: null, storageState: { - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, - field: 'name', - order: 'asc', // @ts-expect-error Passing an invalid value for the test perPage: 'aaa', }, @@ -742,20 +794,25 @@ describe('useRulesTableSavedState', () => { const { result: { - current: { filter, sorting, pagination }, + current: { pagination }, }, } = renderHook(() => useRulesTableSavedState()); - expect(filter).toEqual({ - searchTerm: 'test', - source: RuleSource.Custom, - tags: ['test'], - enabled: true, - }); - expect(sorting).toEqual({ - field: 'name', - order: 'asc', + expect(pagination).toEqual({}); + }); + + it('does not return pagination when per page has negative value', () => { + mockRulesTablePersistedState({ + urlState: null, + storageState: { perPage: -1 }, }); + + const { + result: { + current: { pagination }, + }, + } = renderHook(() => useRulesTableSavedState()); + expect(pagination).toEqual({}); }); }); diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_tables.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_tables.tsx index 31ae3af97f0ae..dd173faade654 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_tables.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/rules_tables.tsx @@ -224,10 +224,10 @@ export const RulesTables = React.memo(({ selectedTab }) => { const tableProps = selectedTab === AllRulesTabs.management ? { - 'data-test-subj': 'rules-table', + 'data-test-subj': 'rules-management-table', columns: rulesColumns, } - : { 'data-test-subj': 'monitoring-table', columns: monitoringColumns }; + : { 'data-test-subj': 'rules-monitoring-table', columns: monitoringColumns }; const shouldShowLinearProgress = (isFetched && isRefetching) || isUpgradingSecurityPackages; const shouldShowLoadingOverlay = (!isFetched && isRefetching) || isPreflightInProgress; From 0b9aacc4cae595b8fcc31fb6b0851ef6bc7f7847 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Wed, 22 Feb 2023 14:51:58 +0100 Subject: [PATCH 21/31] [Fleet] added generic error response to openapi spec (#151848) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Closes https://github.com/elastic/kibana/issues/146409 Added a generic error to openapi spec to fix warnings. The next step would be to check each endpoint and specify custom responses. ``` npx @redocly/cli lint entrypoint.yaml No configurations were provided -- using built in recommended configuration by default. validating entrypoint.yaml... entrypoint.yaml: validated in 273ms Woohoo! Your OpenAPI definition is valid. 🎉 ``` --- .../plugins/fleet/common/openapi/bundled.json | 355 ++++++++++++++++-- .../plugins/fleet/common/openapi/bundled.yaml | 236 ++++++++++-- .../openapi/components/responses/error.yaml | 12 + .../openapi/paths/agent_download_sources.yaml | 4 + .../agent_download_sources@{source_id}.yaml | 6 + .../common/openapi/paths/agent_policies.yaml | 4 + .../paths/agent_policies@_bulk_get.yaml | 2 + .../openapi/paths/agent_policies@delete.yaml | 2 + .../agent_policies@{agent_policy_id}.yaml | 4 + ...agent_policies@{agent_policy_id}@copy.yaml | 2 + ...t_policies@{agent_policy_id}@download.yaml | 2 + ...agent_policies@{agent_policy_id}@full.yaml | 2 + .../common/openapi/paths/agent_status.yaml | 6 +- .../openapi/paths/agent_status@data.yaml | 2 + .../paths/agent_status_deprecated.yaml | 2 + .../common/openapi/paths/agent_tags.yaml | 2 + .../fleet/common/openapi/paths/agents.yaml | 2 + .../openapi/paths/agents@action_status.yaml | 2 + .../openapi/paths/agents@bulk_reassign.yaml | 2 + .../agents@bulk_request_diagnostics.yaml | 2 + .../openapi/paths/agents@bulk_unenroll.yaml | 2 + .../paths/agents@bulk_update_tags.yaml | 2 + .../openapi/paths/agents@bulk_upgrade.yaml | 6 +- .../paths/agents@current_upgrades.yaml | 2 + .../agents@files@{file_id}@{file_name}.yaml | 2 + .../common/openapi/paths/agents@setup.yaml | 4 + .../openapi/paths/agents@{agent_id}.yaml | 6 + .../paths/agents@{agent_id}@actions.yaml | 2 + ...{agent_id}@actions@{action_id}@cancel.yaml | 3 +- .../paths/agents@{agent_id}@reassign.yaml | 2 + ...agents@{agent_id}@request_diagnostics.yaml | 2 + .../paths/agents@{agent_id}@upgrade.yaml | 6 +- .../paths/agents@{agent_id}@uploads.yaml | 2 + .../common/openapi/paths/data_streams.yaml | 2 + .../openapi/paths/enrollment_api_keys.yaml | 4 + .../paths/enrollment_api_keys@{key_id}.yaml | 4 + ...rollment_api_keys@{key_id}_deprecated.yaml | 4 + .../paths/enrollment_api_keys_deprecated.yaml | 4 + .../common/openapi/paths/epm@categories.yaml | 2 + .../common/openapi/paths/epm@get_file.yaml | 2 + .../openapi/paths/epm@limited_list.yaml | 2 + .../common/openapi/paths/epm@packages.yaml | 4 + .../paths/epm@packages@{pkg_name}@stats.yaml | 2 + ...epm@packages@{pkg_name}@{pkg_version}.yaml | 8 + .../epm@packages@{pkgkey}_deprecated.yaml | 6 + .../openapi/paths/epm@packages_bulk.yaml | 2 + .../openapi/paths/fleet_server_hosts.yaml | 4 + .../paths/fleet_server_hosts@{item_id}.yaml | 6 + .../common/openapi/paths/health_check.yaml | 2 + .../common/openapi/paths/kubernetes.yaml | 2 + .../openapi/paths/logstash_api_keys.yaml | 2 + .../fleet/common/openapi/paths/outputs.yaml | 4 + .../openapi/paths/outputs@{output_id}.yaml | 6 + .../openapi/paths/package_policies.yaml | 4 + .../paths/package_policies@_bulk_get.yaml | 2 + .../paths/package_policies@delete.yaml | 2 + .../paths/package_policies@upgrade.yaml | 2 + .../package_policies@upgrade_dryrun.yaml | 2 + .../package_policies@{package_policy_id}.yaml | 6 + .../fleet/common/openapi/paths/proxies.yaml | 4 + .../openapi/paths/proxies@{item_id}.yaml | 6 + .../common/openapi/paths/service_tokens.yaml | 2 + .../paths/service_tokens_deprecated.yaml | 2 + .../fleet/common/openapi/paths/settings.yaml | 4 + .../fleet/common/openapi/paths/setup.yaml | 2 + 65 files changed, 726 insertions(+), 76 deletions(-) create mode 100644 x-pack/plugins/fleet/common/openapi/components/responses/error.yaml diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index 8f5dd3bf44bcf..2f4ce3c78f114 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -35,6 +35,9 @@ } } }, + "400": { + "$ref": "#/components/responses/error" + }, "500": { "description": "Internal Server Error", "content": { @@ -73,6 +76,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-settings" @@ -114,6 +120,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "update-settings" @@ -144,6 +153,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "fleet-server-health-check", @@ -191,6 +203,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "generate-service-token-deprecated", @@ -224,6 +239,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "generate-service-token", @@ -248,6 +266,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package-categories" @@ -303,6 +324,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "list-limited-packages" @@ -323,6 +347,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "list-all-packages", @@ -419,6 +446,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "install-package-by-upload", @@ -460,6 +490,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-install-packages", @@ -544,6 +577,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package-deprecated", @@ -616,6 +652,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "install-package-deprecated", @@ -692,6 +731,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "delete-package-deprecated", @@ -780,6 +822,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package", @@ -888,6 +933,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "install-package", @@ -958,6 +1006,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "update-package", @@ -1020,6 +1071,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "delete-package", @@ -1069,6 +1123,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "packages-get-file" @@ -1122,6 +1179,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package-stats", @@ -1156,6 +1216,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agents-setup-status", @@ -1178,6 +1241,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -1258,6 +1324,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent-status-deprecated", @@ -1322,6 +1391,8 @@ } }, "required": [ + "active", + "all", "error", "events", "inactive", @@ -1329,13 +1400,14 @@ "online", "other", "total", - "updating", - "all", - "active" + "updating" ] } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent-status", @@ -1389,6 +1461,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent-data", @@ -1421,6 +1496,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agents", @@ -1486,14 +1564,7 @@ } }, "400": { - "description": "BAD REQUEST", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/upgrade_agent" - } - } - } + "$ref": "#/components/responses/error" } }, "operationId": "bulk-upgrade-agents", @@ -1617,6 +1688,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "agents-action-status" @@ -1654,6 +1728,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent", @@ -1684,6 +1761,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "update-agent", @@ -1738,6 +1818,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "delete-agent", @@ -1786,6 +1869,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "new-agent-action", @@ -1848,6 +1934,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "agent-action-cancel", @@ -1904,6 +1993,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent-upload-file" @@ -1933,6 +2025,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "reassign-agent", @@ -2062,14 +2157,7 @@ } }, "400": { - "description": "BAD REQUEST", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/upgrade_agent" - } - } - } + "$ref": "#/components/responses/error" } }, "operationId": "upgrade-agent", @@ -2127,6 +2215,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "list-agent-uploads" @@ -2151,6 +2242,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-reassign-agents", @@ -2218,6 +2312,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-unenroll-agents", @@ -2292,6 +2389,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-update-agent-tags", @@ -2372,6 +2472,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-agent-tags" @@ -2406,6 +2509,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "request-diagnostics-agent", @@ -2435,6 +2541,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-request-diagnostics", @@ -2517,6 +2626,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "agent-policy-list", @@ -2567,6 +2679,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "create-agent-policy", @@ -2619,6 +2734,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "agent-policy-info", @@ -2646,6 +2764,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "update-agent-policy", @@ -2702,6 +2823,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -2753,6 +2877,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } } }, @@ -2810,6 +2937,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } } }, @@ -2901,6 +3031,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-get-agent-policies", @@ -2934,6 +3067,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -2983,6 +3119,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "data-streams-list" @@ -3033,6 +3172,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-enrollment-api-keys-deprecated", @@ -3063,6 +3205,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "create-enrollment-api-keys-deprecated", @@ -3106,6 +3251,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-enrollment-api-key-deprecated", @@ -3135,6 +3283,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "delete-enrollment-api-key-deprecated", @@ -3190,6 +3341,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-enrollment-api-keys", @@ -3219,6 +3373,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "create-enrollment-api-keys", @@ -3261,6 +3418,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-enrollment-api-key" @@ -3289,6 +3449,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "delete-enrollment-api-key", @@ -3333,6 +3496,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package-policies", @@ -3361,6 +3527,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -3429,6 +3598,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "bulk-get-package-policies", @@ -3491,6 +3663,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -3552,6 +3727,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } } } @@ -3610,6 +3788,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } } } @@ -3636,6 +3817,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-package-policy" @@ -3684,6 +3868,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -3714,6 +3901,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -3758,6 +3948,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-outputs" @@ -3781,6 +3974,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -3853,6 +4049,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-output" @@ -3888,6 +4087,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -3962,6 +4164,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4002,6 +4207,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-download-sources" @@ -4025,6 +4233,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -4080,6 +4291,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-one-download-source" @@ -4115,6 +4329,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4169,6 +4386,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4197,6 +4417,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "generate-logstash-api-key", @@ -4239,6 +4462,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-fleet-server-hosts" @@ -4262,6 +4488,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -4319,6 +4548,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-one-fleet-server-hosts" @@ -4354,6 +4586,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4406,6 +4641,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4447,6 +4685,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-fleet-proxies" @@ -4470,6 +4711,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "requestBody": { @@ -4533,6 +4777,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-one-fleet-proxies" @@ -4568,6 +4815,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4626,6 +4876,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "parameters": [ @@ -4654,6 +4907,9 @@ } } } + }, + "400": { + "$ref": "#/components/responses/error" } }, "operationId": "get-full-k8s-manifest", @@ -5588,25 +5844,6 @@ "version" ] }, - "upgrade_agent": { - "title": "Upgrade agent", - "type": "object", - "properties": { - "version": { - "type": "string" - }, - "source_uri": { - "type": "string" - }, - "force": { - "type": "boolean", - "description": "Force upgrade, skipping validation (should be used with caution)" - } - }, - "required": [ - "version" - ] - }, "agent_action": { "title": "Agent action", "oneOf": [ @@ -5651,6 +5888,25 @@ } ] }, + "upgrade_agent": { + "title": "Upgrade agent", + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "source_uri": { + "type": "string" + }, + "force": { + "type": "boolean", + "description": "Force upgrade, skipping validation (should be used with caution)" + } + }, + "required": [ + "version" + ] + }, "agent_diagnostics": { "title": "Agent diagnostics", "type": "object", @@ -6678,6 +6934,29 @@ "url" ] } + }, + "responses": { + "error": { + "description": "Generic Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "statusCode": { + "type": "number" + }, + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + } + } } }, "security": [ diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 932a7b9e5a013..417a08dd01d41 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -24,6 +24,8 @@ paths: application/json: schema: $ref: '#/components/schemas/fleet_setup_response' + '400': + $ref: '#/components/responses/error' '500': description: Internal Server Error content: @@ -47,6 +49,8 @@ paths: application/json: schema: $ref: '#/components/schemas/fleet_settings_response' + '400': + $ref: '#/components/responses/error' operationId: get-settings put: summary: Settings - Update @@ -73,6 +77,8 @@ paths: application/json: schema: $ref: '#/components/schemas/fleet_settings_response' + '400': + $ref: '#/components/responses/error' operationId: update-settings /health_check: post: @@ -92,6 +98,8 @@ paths: type: string host: type: string + '400': + $ref: '#/components/responses/error' operationId: fleet-server-health-check parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -120,6 +128,8 @@ paths: type: string value: type: string + '400': + $ref: '#/components/responses/error' operationId: generate-service-token-deprecated parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -140,6 +150,8 @@ paths: type: string value: type: string + '400': + $ref: '#/components/responses/error' operationId: generate-service-token parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -154,6 +166,8 @@ paths: application/json: schema: $ref: '#/components/schemas/get_categories_response' + '400': + $ref: '#/components/responses/error' operationId: get-package-categories parameters: - in: query @@ -191,6 +205,8 @@ paths: type: array items: type: string + '400': + $ref: '#/components/responses/error' operationId: list-limited-packages parameters: [] /epm/packages: @@ -204,6 +220,8 @@ paths: application/json: schema: $ref: '#/components/schemas/get_packages_response' + '400': + $ref: '#/components/responses/error' operationId: list-all-packages parameters: - in: query @@ -271,6 +289,8 @@ paths: - bundled required: - items + '400': + $ref: '#/components/responses/error' operationId: install-package-by-upload description: '' parameters: @@ -296,6 +316,8 @@ paths: application/json: schema: $ref: '#/components/schemas/bulk_install_packages_response' + '400': + $ref: '#/components/responses/error' operationId: bulk-install-packages parameters: - in: query @@ -350,6 +372,8 @@ paths: required: - status - savedObject + '400': + $ref: '#/components/responses/error' operationId: get-package-deprecated security: - basicAuth: [] @@ -395,6 +419,8 @@ paths: - type required: - response + '400': + $ref: '#/components/responses/error' operationId: install-package-deprecated description: '' parameters: @@ -440,6 +466,8 @@ paths: - type required: - response + '400': + $ref: '#/components/responses/error' operationId: delete-package-deprecated parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -493,6 +521,8 @@ paths: required: - status - savedObject + '400': + $ref: '#/components/responses/error' operationId: get-package security: - basicAuth: [] @@ -563,6 +593,8 @@ paths: - bundled required: - items + '400': + $ref: '#/components/responses/error' operationId: install-package description: '' parameters: @@ -604,6 +636,8 @@ paths: - type required: - items + '400': + $ref: '#/components/responses/error' operationId: update-package description: '' requestBody: @@ -641,6 +675,8 @@ paths: - type required: - items + '400': + $ref: '#/components/responses/error' operationId: delete-package parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -670,6 +706,8 @@ paths: type: number headers: type: object + '400': + $ref: '#/components/responses/error' operationId: packages-get-file parameters: - schema: @@ -703,6 +741,8 @@ paths: $ref: '#/components/schemas/package_usage_stats' required: - response + '400': + $ref: '#/components/responses/error' operationId: get-package-stats security: - basicAuth: [] @@ -723,6 +763,8 @@ paths: application/json: schema: $ref: '#/components/schemas/fleet_status_response' + '400': + $ref: '#/components/responses/error' operationId: get-agents-setup-status security: - basicAuth: [] @@ -736,6 +778,8 @@ paths: application/json: schema: $ref: '#/components/schemas/fleet_setup_response' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -788,6 +832,8 @@ paths: - other - total - updating + '400': + $ref: '#/components/responses/error' operationId: get-agent-status-deprecated parameters: - schema: @@ -832,6 +878,8 @@ paths: active: type: integer required: + - active + - all - error - events - inactive @@ -840,8 +888,8 @@ paths: - other - total - updating - - all - - active + '400': + $ref: '#/components/responses/error' operationId: get-agent-status parameters: - schema: @@ -875,6 +923,8 @@ paths: properties: data: type: boolean + '400': + $ref: '#/components/responses/error' operationId: get-agent-data parameters: - schema: @@ -895,6 +945,8 @@ paths: application/json: schema: $ref: '#/components/schemas/get_agents_response' + '400': + $ref: '#/components/responses/error' operationId: get-agents parameters: - $ref: '#/components/parameters/page_size' @@ -927,11 +979,7 @@ paths: actionId: type: string '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: '#/components/schemas/upgrade_agent' + $ref: '#/components/responses/error' operationId: bulk-upgrade-agents parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1013,6 +1061,8 @@ paths: - creationTime required: - items + '400': + $ref: '#/components/responses/error' operationId: agents-action-status /agents/{agentId}: parameters: @@ -1036,6 +1086,8 @@ paths: $ref: '#/components/schemas/agent' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-agent parameters: - $ref: '#/components/parameters/with_metrics' @@ -1054,6 +1106,8 @@ paths: $ref: '#/components/schemas/agent' required: - item + '400': + $ref: '#/components/responses/error' operationId: update-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1087,6 +1141,8 @@ paths: - deleted required: - action + '400': + $ref: '#/components/responses/error' operationId: delete-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1116,6 +1172,8 @@ paths: type: number headers: type: string + '400': + $ref: '#/components/responses/error' operationId: new-agent-action parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1153,6 +1211,8 @@ paths: properties: item: $ref: '#/components/schemas/agent_action' + '400': + $ref: '#/components/responses/error' operationId: agent-action-cancel parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1187,6 +1247,8 @@ paths: properties: body: {} headers: {} + '400': + $ref: '#/components/responses/error' operationId: get-agent-upload-file /agents/{agentId}/reassign: parameters: @@ -1205,6 +1267,8 @@ paths: application/json: schema: type: object + '400': + $ref: '#/components/responses/error' operationId: reassign-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1282,11 +1346,7 @@ paths: schema: $ref: '#/components/schemas/upgrade_agent' '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: '#/components/schemas/upgrade_agent' + $ref: '#/components/responses/error' operationId: upgrade-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1321,6 +1381,8 @@ paths: type: array items: $ref: '#/components/schemas/agent_diagnostics' + '400': + $ref: '#/components/responses/error' operationId: list-agent-uploads /agents/bulk_reassign: post: @@ -1336,6 +1398,8 @@ paths: properties: actionId: type: string + '400': + $ref: '#/components/responses/error' operationId: bulk-reassign-agents parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1376,6 +1440,8 @@ paths: properties: actionId: type: string + '400': + $ref: '#/components/responses/error' operationId: bulk-unenroll-agents parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1421,6 +1487,8 @@ paths: properties: actionId: type: string + '400': + $ref: '#/components/responses/error' operationId: bulk-update-agent-tags parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1469,6 +1537,8 @@ paths: application/json: schema: $ref: '#/components/schemas/get_agent_tags_response' + '400': + $ref: '#/components/responses/error' operationId: get-agent-tags /agents/{agentId}/request_diagnostics: parameters: @@ -1490,6 +1560,8 @@ paths: properties: actionId: type: string + '400': + $ref: '#/components/responses/error' operationId: request-diagnostics-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1507,6 +1579,8 @@ paths: properties: actionId: type: string + '400': + $ref: '#/components/responses/error' operationId: bulk-request-diagnostics parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1557,6 +1631,8 @@ paths: - total - page - perPage + '400': + $ref: '#/components/responses/error' operationId: agent-policy-list parameters: - $ref: '#/components/parameters/page_size' @@ -1592,6 +1668,8 @@ paths: properties: item: $ref: '#/components/schemas/agent_policy' + '400': + $ref: '#/components/responses/error' operationId: create-agent-policy requestBody: content: @@ -1623,6 +1701,8 @@ paths: $ref: '#/components/schemas/agent_policy' required: - item + '400': + $ref: '#/components/responses/error' operationId: agent-policy-info description: Get one agent policy parameters: [] @@ -1641,6 +1721,8 @@ paths: $ref: '#/components/schemas/agent_policy' required: - item + '400': + $ref: '#/components/responses/error' operationId: update-agent-policy requestBody: content: @@ -1673,6 +1755,8 @@ paths: $ref: '#/components/schemas/agent_policy' required: - item + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -1702,6 +1786,8 @@ paths: oneOf: - type: string - $ref: '#/components/schemas/agent_policy_full' + '400': + $ref: '#/components/responses/error' parameters: - schema: type: string @@ -1737,6 +1823,8 @@ paths: properties: item: type: string + '400': + $ref: '#/components/responses/error' parameters: - schema: type: string @@ -1794,6 +1882,8 @@ paths: $ref: '#/components/schemas/agent_policy' required: - items + '400': + $ref: '#/components/responses/error' operationId: bulk-get-agent-policies security: [] parameters: [] @@ -1816,6 +1906,8 @@ paths: required: - id - success + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -1845,6 +1937,8 @@ paths: type: array items: $ref: '#/components/schemas/data_stream' + '400': + $ref: '#/components/responses/error' operationId: data-streams-list parameters: [] /enrollment-api-keys: @@ -1879,6 +1973,8 @@ paths: - page - perPage - total + '400': + $ref: '#/components/responses/error' operationId: get-enrollment-api-keys-deprecated parameters: [] deprecated: true @@ -1899,6 +1995,8 @@ paths: type: string enum: - created + '400': + $ref: '#/components/responses/error' operationId: create-enrollment-api-keys-deprecated parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1925,6 +2023,8 @@ paths: $ref: '#/components/schemas/enrollment_api_key' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-enrollment-api-key-deprecated deprecated: true delete: @@ -1944,6 +2044,8 @@ paths: - deleted required: - action + '400': + $ref: '#/components/responses/error' operationId: delete-enrollment-api-key-deprecated parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -1980,6 +2082,8 @@ paths: - page - perPage - total + '400': + $ref: '#/components/responses/error' operationId: get-enrollment-api-keys parameters: [] post: @@ -1999,6 +2103,8 @@ paths: type: string enum: - created + '400': + $ref: '#/components/responses/error' operationId: create-enrollment-api-keys parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -2024,6 +2130,8 @@ paths: $ref: '#/components/schemas/enrollment_api_key' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-enrollment-api-key delete: summary: Enrollment API Key - Delete @@ -2042,6 +2150,8 @@ paths: - deleted required: - action + '400': + $ref: '#/components/responses/error' operationId: delete-enrollment-api-key parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -2069,6 +2179,8 @@ paths: type: number required: - items + '400': + $ref: '#/components/responses/error' operationId: get-package-policies security: [] parameters: [] @@ -2088,6 +2200,8 @@ paths: $ref: '#/components/schemas/package_policy' required: - item + '400': + $ref: '#/components/responses/error' requestBody: description: >- You should use inputs as an object and not use the deprecated inputs @@ -2131,6 +2245,8 @@ paths: $ref: '#/components/schemas/package_policy' required: - items + '400': + $ref: '#/components/responses/error' operationId: bulk-get-package-policies security: [] parameters: [] @@ -2171,6 +2287,8 @@ paths: required: - id - success + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /package_policies/upgrade: @@ -2208,6 +2326,8 @@ paths: required: - id - success + '400': + $ref: '#/components/responses/error' /package_policies/upgrade/dryrun: post: summary: Package policy - Upgrade Dry run @@ -2244,6 +2364,8 @@ paths: $ref: '#/components/schemas/upgrade_agent_diff' required: - hasErrors + '400': + $ref: '#/components/responses/error' /package_policies/{packagePolicyId}: get: summary: Package policy - Info @@ -2260,6 +2382,8 @@ paths: $ref: '#/components/schemas/package_policy' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-package-policy parameters: - schema: @@ -2290,6 +2414,8 @@ paths: required: - item - sucess + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' delete: @@ -2308,6 +2434,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - schema: type: boolean @@ -2335,6 +2463,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-outputs post: summary: Outputs @@ -2350,6 +2480,8 @@ paths: properties: item: $ref: '#/components/schemas/output' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2396,6 +2528,8 @@ paths: $ref: '#/components/schemas/output' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-output parameters: - schema: @@ -2418,6 +2552,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2464,6 +2600,8 @@ paths: $ref: '#/components/schemas/output' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /agent_download_sources: @@ -2488,6 +2626,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-download-sources post: summary: Agent Download Sources @@ -2503,6 +2643,8 @@ paths: properties: item: $ref: '#/components/schemas/download_sources' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2538,6 +2680,8 @@ paths: $ref: '#/components/schemas/download_sources' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-download-source parameters: - schema: @@ -2560,6 +2704,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2593,6 +2739,8 @@ paths: $ref: '#/components/schemas/download_sources' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /logstash_api_keys: @@ -2609,6 +2757,8 @@ paths: properties: api_key: type: string + '400': + $ref: '#/components/responses/error' operationId: generate-logstash-api-key parameters: - $ref: '#/components/parameters/kbn_xsrf' @@ -2635,6 +2785,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-fleet-server-hosts post: summary: Fleet Server Hosts - Create @@ -2650,6 +2802,8 @@ paths: properties: item: $ref: '#/components/schemas/fleet_server_host' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2686,6 +2840,8 @@ paths: $ref: '#/components/schemas/fleet_server_host' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-fleet-server-hosts parameters: - schema: @@ -2708,6 +2864,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2739,6 +2897,8 @@ paths: $ref: '#/components/schemas/fleet_server_host' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /proxies: @@ -2764,6 +2924,8 @@ paths: type: integer perPage: type: integer + '400': + $ref: '#/components/responses/error' operationId: get-fleet-proxies post: summary: Fleet Proxies - Create @@ -2779,6 +2941,8 @@ paths: properties: item: $ref: '#/components/schemas/proxies' + '400': + $ref: '#/components/responses/error' requestBody: content: application/json: @@ -2819,6 +2983,8 @@ paths: $ref: '#/components/schemas/proxies' required: - item + '400': + $ref: '#/components/responses/error' operationId: get-one-fleet-proxies parameters: - schema: @@ -2841,6 +3007,8 @@ paths: type: string required: - id + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' put: @@ -2876,6 +3044,8 @@ paths: $ref: '#/components/schemas/proxies' required: - item + '400': + $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' /kubernetes: @@ -2892,6 +3062,8 @@ paths: properties: item: type: string + '400': + $ref: '#/components/responses/error' operationId: get-full-k8s-manifest parameters: - schema: @@ -3550,19 +3722,6 @@ components: required: - agents - version - upgrade_agent: - title: Upgrade agent - type: object - properties: - version: - type: string - source_uri: - type: string - force: - type: boolean - description: Force upgrade, skipping validation (should be used with caution) - required: - - version agent_action: title: Agent action oneOf: @@ -3590,6 +3749,19 @@ components: - info - warning - error + upgrade_agent: + title: Upgrade agent + type: object + properties: + version: + type: string + source_uri: + type: string + force: + type: boolean + description: Force upgrade, skipping validation (should be used with caution) + required: + - version agent_diagnostics: title: Agent diagnostics type: object @@ -4293,5 +4465,19 @@ components: required: - name - url + responses: + error: + description: Generic Error + content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + error: + type: string + message: + type: string security: - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml b/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml new file mode 100644 index 0000000000000..8199a81cb6b5a --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/components/responses/error.yaml @@ -0,0 +1,12 @@ +description: Generic Error +content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + error: + type: string + message: + type: string \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml index a76eef05cae73..619b3c626ac66 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources.yaml @@ -19,6 +19,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-download-sources post: summary: Agent Download Sources @@ -34,6 +36,8 @@ post: properties: item: $ref: ../components/schemas/download_sources.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml index c9b97018aa523..364d292082c8b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_download_sources@{source_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/download_sources.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-download-source parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -68,5 +72,7 @@ put: $ref: ../components/schemas/download_sources.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml index eb701057c2953..dfe49938c208a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies.yaml @@ -24,6 +24,8 @@ get: - total - page - perPage + '400': + $ref: ../components/responses/error.yaml operationId: agent-policy-list parameters: - $ref: ../components/parameters/page_size.yaml @@ -54,6 +56,8 @@ post: properties: item: $ref: ../components/schemas/agent_policy.yaml + '400': + $ref: ../components/responses/error.yaml operationId: create-agent-policy requestBody: content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml index 0ac58fffba167..75267e2a262a9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@_bulk_get.yaml @@ -33,6 +33,8 @@ post: $ref: ../components/schemas/agent_policy.yaml required: - items + '400': + $ref: ../components/responses/error.yaml operationId: bulk-get-agent-policies security: [] parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml index f136afb559603..51967a697cf0e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@delete.yaml @@ -16,6 +16,8 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml index 9a60d197ed24a..0bdcbf38a70fa 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: agent-policy-info description: Get one agent policy parameters: [] @@ -37,6 +39,8 @@ put: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: update-agent-policy requestBody: content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml index 487f6e95f8669..21d4a1d493b01 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@copy.yaml @@ -21,6 +21,8 @@ post: $ref: ../components/schemas/agent_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml index f5d5c1aa797f6..5c7887d6f1bb2 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@download.yaml @@ -12,6 +12,8 @@ get: properties: item: type: string + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: string diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml index 462ced1f9b5b9..1a79266e27732 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_policies@{agent_policy_id}@full.yaml @@ -14,6 +14,8 @@ get: oneOf: - type: string - $ref: ../components/schemas/agent_policy_full.yaml + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: string diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml index 71e078b07c08c..46d8ac2f32ff9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml @@ -33,6 +33,8 @@ get: active: type: integer required: + - active + - all - error - events - inactive @@ -41,8 +43,8 @@ get: - other - total - updating - - all - - active + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml index e1a758d55dce2..a16fa2f71f8a8 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status@data.yaml @@ -18,6 +18,8 @@ get: properties: data: type: boolean + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-data parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml index e5e5a478dc6e5..874cd38632ed3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status_deprecated.yaml @@ -34,6 +34,8 @@ get: - other - total - updating + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-status-deprecated parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml index 9cf53a67e84d8..f01584ef4665a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_tags.yaml @@ -8,4 +8,6 @@ get: application/json: schema: $ref: ../components/schemas/get_agent_tags_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-tags diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents.yaml index 44d5e1c8a9738..b9b62f23552e1 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_agents_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agents parameters: - $ref: ../components/parameters/page_size.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml index 9586ec75398b6..50494a29f4096 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@action_status.yaml @@ -61,4 +61,6 @@ get: - creationTime required: - items + '400': + $ref: ../components/responses/error.yaml operationId: agents-action-status \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml index 17c4365f01e32..625aee38eafc4 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_reassign.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-reassign-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml index ea76360c892f9..e2952e7ae51e0 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_request_diagnostics.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-request-diagnostics parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml index f5e244f86f74b..7527558a4cc10 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_unenroll.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-unenroll-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml index 2eb129e802179..77c0c0d4cfa7c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_update_tags.yaml @@ -11,6 +11,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: bulk-update-agent-tags parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml index 9a74054f492a7..b8863eaf271fd 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@bulk_upgrade.yaml @@ -12,11 +12,7 @@ post: actionId: type: string '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: ../components/schemas/upgrade_agent.yaml + $ref: ../components/responses/error.yaml operationId: bulk-upgrade-agents parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml index 14dac631e8adb..162c9e4cb5bc3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@current_upgrades.yaml @@ -35,4 +35,6 @@ get: - startTime required: - items + '400': + $ref: ../components/responses/error.yaml operationId: agents-current-upgrades diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml index 0f189527cf896..82192ade7856b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@files@{file_id}@{file_name}.yaml @@ -28,4 +28,6 @@ get: properties: body: {} headers: {} + '400': + $ref: ../components/responses/error.yaml operationId: get-agent-upload-file diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml index 7d7f9561b2190..104ae1ba084da 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@setup.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/fleet_status_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-agents-setup-status security: - basicAuth: [] @@ -21,6 +23,8 @@ post: application/json: schema: $ref: ../components/schemas/fleet_setup_response.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml index bc6dbac798926..7bf3a7d73f31b 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/agent.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-agent parameters: - $ref: ../components/parameters/with_metrics.yaml @@ -37,6 +39,8 @@ put: $ref: ../components/schemas/agent.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: update-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml @@ -70,6 +74,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml index 2477db775a91b..38cce1ea54db3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions.yaml @@ -23,6 +23,8 @@ post: type: number headers: type: string + '400': + $ref: ../components/responses/error.yaml operationId: new-agent-action parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml index f17d6e4b25cf3..c9bf661d88a85 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@actions@{action_id}@cancel.yaml @@ -22,7 +22,8 @@ post: properties: item: $ref: ../components/schemas/agent_action.yaml - + '400': + $ref: ../components/responses/error.yaml operationId: agent-action-cancel parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml index 6d2253be3bbc2..4827cc77fc634 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@reassign.yaml @@ -14,6 +14,8 @@ put: application/json: schema: type: object + '400': + $ref: ../components/responses/error.yaml operationId: reassign-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml index 574ca0bbf918c..13b335ffe2300 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@request_diagnostics.yaml @@ -17,6 +17,8 @@ post: properties: actionId: type: string + '400': + $ref: ../components/responses/error.yaml operationId: request-diagnostics-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml index 9b12a23706925..c6d66f6f52386 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@upgrade.yaml @@ -15,11 +15,7 @@ post: schema: $ref: ../components/schemas/upgrade_agent.yaml '400': - description: BAD REQUEST - content: - application/json: - schema: - $ref: ../components/schemas/upgrade_agent.yaml + $ref: ../components/responses/error.yaml operationId: upgrade-agent parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml index 50b4f065bf147..de812b0e363e3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agents@{agent_id}@uploads.yaml @@ -22,4 +22,6 @@ get: type: array items: $ref: ../components/schemas/agent_diagnostics.yaml + '400': + $ref: ../components/responses/error.yaml operationId: list-agent-uploads diff --git a/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml b/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml index 9fec3d8225b0d..c9e9f1be897aa 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/data_streams.yaml @@ -13,5 +13,7 @@ get: type: array items: $ref: ../components/schemas/data_stream.yaml + '400': + $ref: ../components/responses/error.yaml operationId: data-streams-list parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml index 9f6ac6de0ebd6..5bc257606087f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys.yaml @@ -29,6 +29,8 @@ get: - page - perPage - total + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-keys parameters: [] post: @@ -48,6 +50,8 @@ post: type: string enum: - created + '400': + $ref: ../components/responses/error.yaml operationId: create-enrollment-api-keys parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml index 37c390897ef67..bdff9a7152e45 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/enrollment_api_key.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-key delete: summary: Enrollment API Key - Delete @@ -37,6 +39,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-enrollment-api-key parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml index 75907bee8766a..36c0f7f3ef01f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys@{key_id}_deprecated.yaml @@ -19,6 +19,8 @@ get: $ref: ../components/schemas/enrollment_api_key.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-key-deprecated deprecated: true delete: @@ -38,6 +40,8 @@ delete: - deleted required: - action + '400': + $ref: ../components/responses/error.yaml operationId: delete-enrollment-api-key-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml index 22d05ed7aaa82..c5e378c563afc 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/enrollment_api_keys_deprecated.yaml @@ -29,6 +29,8 @@ get: - page - perPage - total + '400': + $ref: ../components/responses/error.yaml operationId: get-enrollment-api-keys-deprecated parameters: [] deprecated: true @@ -49,6 +51,8 @@ post: type: string enum: - created + '400': + $ref: ../components/responses/error.yaml operationId: create-enrollment-api-keys-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml index 9a69a930fa988..a97c06f66c629 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@categories.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_categories_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-package-categories parameters: - in: query diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml index ab7dc4cc946d9..9c194ea6a8e97 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@get_file.yaml @@ -15,6 +15,8 @@ get: type: number headers: type: object + '400': + $ref: ../components/responses/error.yaml operationId: packages-get-file parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml index 61988b5a072de..ec44a20b61307 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@limited_list.yaml @@ -13,5 +13,7 @@ get: type: array items: type: string + '400': + $ref: ../components/responses/error.yaml operationId: list-limited-packages parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml index b44ab7e9b8168..43819dff6d10e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/get_packages_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: list-all-packages parameters: - in: query @@ -73,6 +75,8 @@ post: - bundled required: - items + '400': + $ref: ../components/responses/error.yaml operationId: install-package-by-upload description: '' parameters: diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml index 9e9a4a57516dc..b27b4ef6729dc 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@stats.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/package_usage_stats.yaml required: - response + '400': + $ref: ../components/responses/error.yaml operationId: get-package-stats security: - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml index 8fe228f91bbd0..4cc2e55e9d29e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkg_name}@{pkg_version}.yaml @@ -33,6 +33,8 @@ get: required: - status - savedObject + '400': + $ref: ../components/responses/error.yaml operationId: get-package security: - basicAuth: [] @@ -100,6 +102,8 @@ post: - bundled required: - items + '400': + $ref: ../components/responses/error.yaml operationId: install-package description: '' parameters: @@ -141,6 +145,8 @@ put: - type required: - items + '400': + $ref: ../components/responses/error.yaml operationId: update-package description: '' requestBody: @@ -178,6 +184,8 @@ delete: - type required: - items + '400': + $ref: ../components/responses/error.yaml operationId: delete-package parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml index 8704a09f54473..2967238a467a2 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages@{pkgkey}_deprecated.yaml @@ -25,6 +25,8 @@ get: required: - status - savedObject + '400': + $ref: ../components/responses/error.yaml operationId: get-package-deprecated security: - basicAuth: [] @@ -69,6 +71,8 @@ post: - type required: - response + '400': + $ref: ../components/responses/error.yaml operationId: install-package-deprecated description: '' parameters: @@ -114,6 +118,8 @@ delete: - type required: - response + '400': + $ref: ../components/responses/error.yaml operationId: delete-package-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml index b954c2475915c..7ede68f6b545f 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages_bulk.yaml @@ -8,6 +8,8 @@ post: application/json: schema: $ref: ../components/schemas/bulk_install_packages_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: bulk-install-packages parameters: - in: query diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml index 4ad7d867edc97..da599dddca1e3 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts.yaml @@ -20,6 +20,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-fleet-server-hosts post: summary: Fleet Server Hosts - Create @@ -35,6 +37,8 @@ post: properties: item: $ref: ../components/schemas/fleet_server_host.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml index 141274274b840..968f81d8c6181 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/fleet_server_hosts@{item_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/fleet_server_host.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-fleet-server-hosts parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -66,5 +70,7 @@ put: $ref: ../components/schemas/fleet_server_host.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml b/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml index 7723a1c225cdc..84283ca80dbf0 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/health_check.yaml @@ -15,6 +15,8 @@ post: type: string host: type: string + '400': + $ref: ../components/responses/error.yaml operationId: fleet-server-health-check parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml b/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml index 1e4b1e8687fd4..d7852db70fccd 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/kubernetes.yaml @@ -11,6 +11,8 @@ get: properties: item: type: string + '400': + $ref: ../components/responses/error.yaml operationId: get-full-k8s-manifest parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml b/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml index e8a22be9d8afe..495d792191798 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/logstash_api_keys.yaml @@ -11,6 +11,8 @@ post: properties: api_key: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-logstash-api-key parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml b/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml index 93117d8ec63ac..335d8ec570ca1 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/outputs.yaml @@ -19,6 +19,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-outputs post: summary: Outputs @@ -34,6 +36,8 @@ post: properties: item: $ref: ../components/schemas/output.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml index d70c78dd7de56..ca01024288b95 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/outputs@{output_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/output.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-output parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -80,5 +84,7 @@ put: $ref: ../components/schemas/output.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml index ac609d2118fa4..8959339426d05 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies.yaml @@ -21,6 +21,8 @@ get: type: number required: - items + '400': + $ref: ../components/responses/error.yaml operationId: get-package-policies security: [] parameters: [] @@ -40,6 +42,8 @@ post: $ref: ../components/schemas/package_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml requestBody: description: You should use inputs as an object and not use the deprecated inputs array. content: diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml index 70d54b12e47eb..1ff515dc2de6a 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@_bulk_get.yaml @@ -30,6 +30,8 @@ post: $ref: ../components/schemas/package_policy.yaml required: - items + '400': + $ref: ../components/responses/error.yaml operationId: bulk-get-package-policies security: [] parameters: [] diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml index 3c4dc19734141..6061267b4b2b8 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@delete.yaml @@ -34,5 +34,7 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml index 92c316a498905..09f2727ad678c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml @@ -32,3 +32,5 @@ post: required: - id - success + '400': + $ref: ../components/responses/error.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml index d2a847d119ddc..6f51bd6812d97 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml @@ -33,3 +33,5 @@ post: $ref: ../components/schemas/upgrade_agent_diff.yaml required: - hasErrors + '400': + $ref: ../components/responses/error.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml index 72773f43483be..9e05e9516d603 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@{package_policy_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/package_policy.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-package-policy parameters: - schema: @@ -43,6 +45,8 @@ put: required: - item - sucess + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml delete: @@ -61,6 +65,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - schema: type: boolean diff --git a/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml b/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml index 29805490d2f92..a5f59ec0e7cb5 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/proxies.yaml @@ -20,6 +20,8 @@ get: type: integer perPage: type: integer + '400': + $ref: ../components/responses/error.yaml operationId: get-fleet-proxies post: summary: Fleet Proxies - Create @@ -35,6 +37,8 @@ post: properties: item: $ref: ../components/schemas/proxies.yaml + '400': + $ref: ../components/responses/error.yaml requestBody: content: application/json: diff --git a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml index 882ddd5bf3f07..96a3665718753 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/proxies@{item_id}.yaml @@ -13,6 +13,8 @@ get: $ref: ../components/schemas/proxies.yaml required: - item + '400': + $ref: ../components/responses/error.yaml operationId: get-one-fleet-proxies parameters: - schema: @@ -35,6 +37,8 @@ delete: type: string required: - id + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml put: @@ -70,5 +74,7 @@ put: $ref: ../components/schemas/proxies.yaml required: - item + '400': + $ref: ../components/responses/error.yaml parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml b/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml index 5e88a57a3fc57..c57614c6c5def 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/service_tokens.yaml @@ -13,6 +13,8 @@ post: type: string value: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-service-token parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml b/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml index 8f4f882a98321..f081f207b4d1e 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/service_tokens_deprecated.yaml @@ -13,6 +13,8 @@ post: type: string value: type: string + '400': + $ref: ../components/responses/error.yaml operationId: generate-service-token-deprecated parameters: - $ref: ../components/headers/kbn_xsrf.yaml diff --git a/x-pack/plugins/fleet/common/openapi/paths/settings.yaml b/x-pack/plugins/fleet/common/openapi/paths/settings.yaml index c9a420cdbb599..dc711bcefbfae 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/settings.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/settings.yaml @@ -8,6 +8,8 @@ get: application/json: schema: $ref: ../components/schemas/fleet_settings_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: get-settings put: summary: Settings - Update @@ -34,4 +36,6 @@ put: application/json: schema: $ref: ../components/schemas/fleet_settings_response.yaml + '400': + $ref: ../components/responses/error.yaml operationId: update-settings diff --git a/x-pack/plugins/fleet/common/openapi/paths/setup.yaml b/x-pack/plugins/fleet/common/openapi/paths/setup.yaml index abc17c0c9f6df..048e5cc51faf9 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/setup.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/setup.yaml @@ -17,6 +17,8 @@ post: properties: message: type: string + '400': + $ref: ../components/responses/error.yaml operationId: setup parameters: - $ref: ../components/headers/kbn_xsrf.yaml From e47b42f05e6a7dd3d3d14c353addff38f797e14a Mon Sep 17 00:00:00 2001 From: Pablo Machado Date: Wed, 22 Feb 2023 15:06:48 +0100 Subject: [PATCH 22/31] [Security Solutions] Fix module name cut under beats overview dashboard (#151843) issue: https://github.com/elastic/kibana/issues/151663 ## Summary Probably due to some changes when converting `EuiAccordion` [from Sass to Emotion CSS](https://github.com/elastic/eui/commit/922a789ae204029a050f0bef79bf96d2438dab5a) `border-top` leaks and breaks the component height calculation. ### Before Screenshot 2023-02-22 at 11 34 46 ### After Screenshot 2023-02-22 at 11 33 20 ### Checklist --- .../public/overview/components/overview_host_stats/index.tsx | 2 +- .../public/overview/components/overview_network_stats/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/overview/components/overview_host_stats/index.tsx b/x-pack/plugins/security_solution/public/overview/components/overview_host_stats/index.tsx index 64a5b03536c43..e6e3fd730a895 100644 --- a/x-pack/plugins/security_solution/public/overview/components/overview_host_stats/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/overview_host_stats/index.tsx @@ -262,7 +262,7 @@ const NoMarginTopFlexItem = styled(EuiFlexItem)` `; const AccordionContent = styled.div` - margin-top: 8px; + padding-top: 8px; `; const OverviewHostStatsComponent: React.FC = ({ data, loading }) => { diff --git a/x-pack/plugins/security_solution/public/overview/components/overview_network_stats/index.tsx b/x-pack/plugins/security_solution/public/overview/components/overview_network_stats/index.tsx index 21facec119803..e461bf3241b2a 100644 --- a/x-pack/plugins/security_solution/public/overview/components/overview_network_stats/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/overview_network_stats/index.tsx @@ -175,7 +175,7 @@ const NoMarginTopFlexItem = styled(EuiFlexItem)` `; const AccordionContent = styled.div` - margin-top: 8px; + padding-top: 8px; `; const OverviewNetworkStatsComponent: React.FC = ({ data, loading }) => { From 3dd48ed9edcdef66a1622cc8fbdb4783e0af4ab6 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Wed, 22 Feb 2023 15:21:24 +0100 Subject: [PATCH 23/31] [Synthetics] Added a delay for error popover visibility (#151844) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../overview/overview/metric_item_icon.tsx | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item_icon.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item_icon.tsx index b2ccd7b8680a1..501cd2d1cfde9 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item_icon.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/metric_item_icon.tsx @@ -16,11 +16,14 @@ import { EuiButton, useEuiShadow, EuiCallOut, + EuiFlexGroup, + EuiFlexItem, } from '@elastic/eui'; import { useDispatch, useSelector } from 'react-redux'; import styled from 'styled-components'; import { i18n } from '@kbn/i18n'; import { euiStyled } from '@kbn/kibana-react-plugin/common'; +import { useRef } from 'react'; import { selectErrorPopoverState, toggleErrorPopoverOpen } from '../../../../state'; import { useErrorDetailsLink } from '../../../common/links/error_details_link'; import { MonitorOverviewItem, OverviewPing } from '../../../../../../../common/runtime_types'; @@ -53,6 +56,8 @@ export const MetricItemIcon = ({ const dispatch = useDispatch(); + const timer = useRef(null); + const setIsPopoverOpen = () => { dispatch(toggleErrorPopoverOpen(configIdByLocation)); }; @@ -86,7 +91,23 @@ export const MetricItemIcon = ({ setIsPopoverOpen()} + onMouseEnter={() => { + // show popover with delay + if (timer.current) { + clearTimeout(timer.current); + } + timer.current = setTimeout(() => { + setIsPopoverOpen(); + }, 300); + }} + onMouseLeave={() => { + if (isPopoverOpen) { + return; + } + if (timer.current) { + clearTimeout(timer.current); + } + }} boxShadow={euiShadow} onClick={() => { if (configIdByLocation === isPopoverOpen) { @@ -106,7 +127,14 @@ export const MetricItemIcon = ({ outline: 'none', }} > - {testTime} + + + {testTime} + + + + +
From 2b231d91ec78689e0997cded5e13dbfa8e24865e Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Wed, 22 Feb 2023 18:33:51 +0400 Subject: [PATCH 24/31] [Enterprise Search] Make stat titles smaller (#151846) ## Summary This makes the stat components we use on indices and index overview pages use titleSize 'm'. Screenshot 2023-02-22 at 12 11 21 Screenshot 2023-02-22 at 12 11 01 Screenshot 2023-02-22 at 12 10 50 --- .../components/search_index/api_total_stats.tsx | 2 +- .../search_index/connector/connector_overview_panels.tsx | 2 ++ .../components/search_index/connector_total_stats.tsx | 2 +- .../components/search_index/crawler_total_stats.tsx | 2 +- .../components/search_index/name_and_description_stats.tsx | 2 +- .../components/search_indices/indices_stats.tsx | 6 ++++++ 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx index 38f963d6fa1ce..4e9061ba9e3d7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/api_total_stats.tsx @@ -53,7 +53,7 @@ export const ApiTotalStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx index 78152d64d248b..c3afcbc46494d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/connector_overview_panels.tsx @@ -31,6 +31,7 @@ import { SearchIndexTabId } from '../search_index'; const StatusPanel: React.FC<{ ingestionStatus: IngestionStatus }> = ({ ingestionStatus }) => ( { { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx index 99687662419bd..7825e93328dc8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler_total_stats.tsx @@ -75,7 +75,7 @@ export const CrawlerTotalStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx index 236a731b43069..53d15f1431195 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/name_and_description_stats.tsx @@ -72,7 +72,7 @@ export const NameAndDescriptionStats: React.FC = () => { {stats.map((item, index) => ( - + ))} diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx index d4c4fd4f6633e..1d5ca88112f4e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_stats.tsx @@ -42,6 +42,7 @@ export const IndicesStats: React.FC = () => { paddingSize="l" > { paddingSize="l" > { { { paddingSize="l" > { Date: Wed, 22 Feb 2023 15:35:59 +0100 Subject: [PATCH 25/31] [Fleet] added `_meta` field `has_experimental_data_stream_indexing_features` (#151853) ## Summary Closes https://github.com/elastic/kibana/issues/150917 Added `has_experimental_data_stream_indexing_features` meta field to indicate that component/index template has these setting turned on. The component template has this field set when `synthetic_source` or the `doc_value_only` settings are enabled. The index template has the field set when `tsdb` setting is enabled. Open question: - Alternatively we could move the meta field to only be in the component template, also for `tsdb`. I'm not sure which would be more intuitive (`tsdb` only makes changes to the index template, the other settings in component template). @kpollich WDYT? To test: - enable `experimentalDataStreamSettings` feature flag - add a System integration policy and enable one of the experimental features on one data stream e.g. Doc only value - Check the corresponding component template in Stack Management that is has the new _meta field. image image ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../experimental_datastream_features.test.ts | 9 +++++++++ .../experimental_datastream_features.ts | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts index 500cf141fed26..af62a34d73bc2 100644 --- a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts +++ b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.test.ts @@ -239,6 +239,7 @@ describe('experimental_datastream_features', () => { mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -268,6 +269,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -297,6 +299,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -325,6 +328,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -349,6 +353,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -446,6 +451,7 @@ describe('experimental_datastream_features', () => { mappings: expect.objectContaining({ _source: { mode: 'synthetic' } }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -475,6 +481,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); @@ -504,6 +511,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: false }, }) ); }); @@ -544,6 +552,7 @@ describe('experimental_datastream_features', () => { }), }), }), + _meta: { has_experimental_data_stream_indexing_features: true }, }) ); }); diff --git a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts index e98f45a5671c0..b700618f44762 100644 --- a/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts +++ b/x-pack/plugins/fleet/server/services/package_policies/experimental_datastream_features.ts @@ -159,9 +159,17 @@ export async function handleExperimentalDatastreamFeatureOptIn({ }, }; + const hasExperimentalDataStreamIndexingFeatures = + featureMapEntry.features.synthetic_source || + featureMapEntry.features.doc_value_only_numeric || + featureMapEntry.features.doc_value_only_other; + await esClient.cluster.putComponentTemplate({ name: componentTemplateName, body, + _meta: { + has_experimental_data_stream_indexing_features: hasExperimentalDataStreamIndexingFeatures, + }, }); } @@ -188,6 +196,9 @@ export async function handleExperimentalDatastreamFeatureOptIn({ name: featureMapEntry.data_stream, // @ts-expect-error body: indexTemplateBody, + _meta: { + has_experimental_data_stream_indexing_features: featureMapEntry.features.tsdb, + }, }); } From f562b3c289c99424e9614abb8909327b7926c3a3 Mon Sep 17 00:00:00 2001 From: Ersin Erdal <92688503+ersin-erdal@users.noreply.github.com> Date: Wed, 22 Feb 2023 15:37:16 +0100 Subject: [PATCH 26/31] Add UUID to RuleAction (#148038) Resolves: [#149587](https://github.com/elastic/kibana/issues/149587) This PR intends to add a `uuid` field to the rule actions. A migration script add a uuid to all the existing actions. Create method of the rule_client (and create endpoint) accepts a rule.actions data without uuid and adds a new uuid to the all actions. Update and bulkEdit methods of the rule_client (and update and bulk_edit endpoints) accepts rule.actions data with and without uuid. As a user can add a new action to an existing rule, UI should send the uuid of an existing action back then update and bulkEdit methods would add the uuid's to all the new actions. All the get methods return uuid in the actions. Since we don't query by the uuid of an action, I marked actions as `dynamic: false` in the mappings so we don't need to add the uuid to the mappings. I tried not to modify the legacy APIs, therefore i used some type castings there, but please let me know if they need to be modified as well. ## To verify: Create a rule with some actions and save. Then add some more actions and expect all of them to have an auto-generated uuid field and still work as they were. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../src/actions/index.ts | 34 +-- .../group2/check_registered_types.test.ts | 2 +- x-pack/plugins/alerting/common/rule.ts | 1 + .../plugins/alerting/public/alert_api.test.ts | 3 + .../public/lib/common_transformations.test.ts | 4 + .../server/routes/bulk_edit_rules.test.ts | 2 + .../alerting/server/routes/bulk_edit_rules.ts | 1 + .../alerting/server/routes/clone_rule.test.ts | 2 + .../server/routes/create_rule.test.ts | 2 + .../alerting/server/routes/get_rule.test.ts | 2 + .../alerting/server/routes/get_rule.ts | 3 +- .../server/routes/lib/actions_schema.ts | 1 + .../server/routes/lib/rewrite_rule.ts | 3 +- .../server/routes/resolve_rule.test.ts | 2 + .../server/routes/update_rule.test.ts | 3 + .../server/rules_client/lib/add_uuid.ts | 16 ++ .../rules_client/lib/denormalize_actions.ts | 5 +- .../rules_client/lib/extract_references.ts | 4 +- .../alerting/server/rules_client/lib/index.ts | 1 + .../rules_client/lib/validate_actions.ts | 9 + .../server/rules_client/methods/bulk_edit.ts | 24 ++- .../server/rules_client/methods/create.ts | 12 +- .../server/rules_client/methods/update.ts | 12 +- .../rules_client/tests/bulk_edit.test.ts | 168 +++++++++++++++ .../server/rules_client/tests/create.test.ts | 32 ++- .../server/rules_client/tests/update.test.ts | 184 +++++++++++++++- .../alerting/server/rules_client/types.ts | 4 + .../alerting/server/saved_objects/mappings.ts | 1 + .../saved_objects/migrations/8.7/index.ts | 29 ++- .../saved_objects/migrations/index.test.ts | 26 ++- .../alerting/server/task_runner/fixtures.ts | 4 + .../task_runner/rule_action_helper.test.ts | 2 + .../server/task_runner/task_runner.test.ts | 4 + x-pack/plugins/alerting/server/types.ts | 1 + .../transform_actions.test.ts | 2 + .../detection_engine/transform_actions.ts | 8 +- .../application/lib/rule_api/clone.test.ts | 2 + .../lib/rule_api/common_transformations.ts | 2 + .../public/application/lib/rule_api/update.ts | 3 +- .../application/lib/value_validators.test.ts | 3 + .../connectors_selection.test.tsx | 1 + .../sections/rule_form/rule_reducer.test.ts | 4 + .../group1/tests/alerting/create.ts | 1 + .../group1/tests/alerting/find.ts | 1 + .../group2/tests/alerting/alerts.ts | 6 +- .../group2/tests/alerting/update.ts | 1 + .../group3/tests/alerting/bulk_edit.ts | 1 + .../group3/tests/alerting/clone.ts | 1 + .../tests/alerting/group1/alerts_base.ts | 3 +- .../tests/alerting/group1/create.ts | 6 + .../spaces_only/tests/alerting/group1/find.ts | 1 + .../tests/alerting/group4/migrations.ts | 199 ++++++++++-------- .../security_and_spaces/group1/add_actions.ts | 5 +- .../group1/export_rules.ts | 9 +- .../security_and_spaces/group1/find_rules.ts | 4 +- .../group1/update_actions.ts | 15 +- .../group10/legacy_actions_migrations.ts | 5 + .../group10/patch_rules.ts | 4 +- .../group10/patch_rules_bulk.ts | 3 +- .../group10/perform_bulk_action.ts | 24 ++- .../security_and_spaces/group10/read_rules.ts | 4 +- .../group10/update_rules.ts | 5 +- .../group10/update_rules_bulk.ts | 4 +- ...simple_rule_output_with_web_hook_action.ts | 4 +- .../uptime/simple_down_alert.ts | 2 + 65 files changed, 785 insertions(+), 151 deletions(-) create mode 100644 x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts diff --git a/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts b/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts index 2e0d814bf93c5..baa36d97682ba 100644 --- a/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts +++ b/packages/kbn-securitysolution-io-ts-alerting-types/src/actions/index.ts @@ -5,6 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ +import { NonEmptyString } from '@kbn/securitysolution-io-ts-types'; import * as t from 'io-ts'; import { saved_object_attributes } from '../saved_object_attributes'; @@ -18,6 +19,9 @@ export const RuleActionId = t.string; export type RuleActionTypeId = t.TypeOf; export const RuleActionTypeId = t.string; +export type RuleActionUuid = t.TypeOf; +export const RuleActionUuid = NonEmptyString; + /** * Params is an "object", since it is a type of RuleActionParams which is action templates. * @see x-pack/plugins/alerting/common/rule.ts @@ -27,12 +31,15 @@ export const RuleActionParams = saved_object_attributes; export type RuleAction = t.TypeOf; export const RuleAction = t.exact( - t.type({ - group: RuleActionGroup, - id: RuleActionId, - action_type_id: RuleActionTypeId, - params: RuleActionParams, - }) + t.intersection([ + t.type({ + group: RuleActionGroup, + id: RuleActionId, + action_type_id: RuleActionTypeId, + params: RuleActionParams, + }), + t.partial({ uuid: RuleActionUuid }), + ]) ); export type RuleActionArray = t.TypeOf; @@ -40,12 +47,15 @@ export const RuleActionArray = t.array(RuleAction); export type RuleActionCamel = t.TypeOf; export const RuleActionCamel = t.exact( - t.type({ - group: RuleActionGroup, - id: RuleActionId, - actionTypeId: RuleActionTypeId, - params: RuleActionParams, - }) + t.intersection([ + t.type({ + group: RuleActionGroup, + id: RuleActionId, + actionTypeId: RuleActionTypeId, + params: RuleActionParams, + }), + t.partial({ uuid: RuleActionUuid }), + ]) ); export type RuleActionArrayCamel = t.TypeOf; 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 571c2fe18fd6a..7d9e4bae782e2 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 @@ -57,7 +57,7 @@ describe('checking migration metadata changes on all registered SO types', () => Object { "action": "6cfc277ed3211639e37546ac625f4a68f2494215", "action_task_params": "db2afea7d78e00e725486b791554d0d4e81956ef", - "alert": "f81ad957a7936522482e4539c7a96a963ebdbc3e", + "alert": "2568bf6d8ba0876441c61c9e58e08016c1dc1617", "api_key_pending_invalidation": "16e7bcf8e78764102d7f525542d5b616809a21ee", "apm-indices": "d19dd7fb51f2d2cbc1f8769481721e0953f9a6d2", "apm-server-schema": "1d42f17eff9ec6c16d3a9324d9539e2d123d0a9a", diff --git a/x-pack/plugins/alerting/common/rule.ts b/x-pack/plugins/alerting/common/rule.ts index 833d514df1f86..cc5d7fda4a8b6 100644 --- a/x-pack/plugins/alerting/common/rule.ts +++ b/x-pack/plugins/alerting/common/rule.ts @@ -77,6 +77,7 @@ export type RuleActionParams = SavedObjectAttributes; export type RuleActionParam = SavedObjectAttribute; export interface RuleAction { + uuid?: string; group: string; id: string; actionTypeId: string; diff --git a/x-pack/plugins/alerting/public/alert_api.test.ts b/x-pack/plugins/alerting/public/alert_api.test.ts index 2f09643e499e3..abbaa6a5049eb 100644 --- a/x-pack/plugins/alerting/public/alert_api.test.ts +++ b/x-pack/plugins/alerting/public/alert_api.test.ts @@ -109,6 +109,7 @@ describe('loadRule', () => { "params": Object { "message": "alert 37: {{context.message}}", }, + "uuid": "123-456", }, ], "alertTypeId": ".index-threshold", @@ -278,6 +279,7 @@ function getApiRule() { }, group: 'threshold met', id: '3619a0d0-582b-11ec-8995-2b1578a3bc5d', + uuid: '123-456', }, ], params: { x: 42 }, @@ -319,6 +321,7 @@ function getRule(): Rule<{ x: number }> { }, group: 'threshold met', id: '3619a0d0-582b-11ec-8995-2b1578a3bc5d', + uuid: '123-456', }, ], params: { x: 42 }, diff --git a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts index cef3cf8804f40..ac57340f109b2 100644 --- a/x-pack/plugins/alerting/public/lib/common_transformations.test.ts +++ b/x-pack/plugins/alerting/public/lib/common_transformations.test.ts @@ -31,6 +31,7 @@ describe('common_transformations', () => { group: 'some group', id: 'some-connector-id', params: { foo: 'car', bar: [1, 2, 3] }, + uuid: '123-456', }, ], params: { bar: 'foo', numbers: { 1: [2, 3] } } as never, @@ -108,6 +109,7 @@ describe('common_transformations', () => { ], "foo": "car", }, + "uuid": "123-456", }, ], "alertTypeId": "some-rule-type", @@ -213,6 +215,7 @@ describe('common_transformations', () => { group: 'some group', id: 'some-connector-id', params: {}, + uuid: '123-456', }, ], params: {} as never, @@ -277,6 +280,7 @@ describe('common_transformations', () => { "group": "some group", "id": "some-connector-id", "params": Object {}, + "uuid": "123-456", }, ], "alertTypeId": "some-rule-type", diff --git a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts index 0ff709c252f56..944b2db172c91 100644 --- a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts +++ b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.test.ts @@ -41,6 +41,7 @@ describe('bulkEditInternalRulesRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -111,6 +112,7 @@ describe('bulkEditInternalRulesRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], }), diff --git a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts index 6c3aba9f5ef43..fa30b0ff8d2ed 100644 --- a/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts +++ b/x-pack/plugins/alerting/server/routes/bulk_edit_rules.ts @@ -18,6 +18,7 @@ const ruleActionSchema = schema.object({ group: schema.string(), id: schema.string(), params: schema.recordOf(schema.string(), schema.any(), { defaultValue: {} }), + uuid: schema.maybe(schema.string()), }); const operationsSchema = schema.arrayOf( diff --git a/x-pack/plugins/alerting/server/routes/clone_rule.test.ts b/x-pack/plugins/alerting/server/routes/clone_rule.test.ts index 7b89f217f9c8f..6c79ca7680940 100644 --- a/x-pack/plugins/alerting/server/routes/clone_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/clone_rule.test.ts @@ -48,6 +48,7 @@ describe('cloneRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], enabled: true, @@ -97,6 +98,7 @@ describe('cloneRuleRoute', () => { { ...ruleToClone.actions[0], connector_type_id: 'test', + uuid: '123-456', }, ], }; diff --git a/x-pack/plugins/alerting/server/routes/create_rule.test.ts b/x-pack/plugins/alerting/server/routes/create_rule.test.ts index cbb7965cab081..0d8caff92202a 100644 --- a/x-pack/plugins/alerting/server/routes/create_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/create_rule.test.ts @@ -51,6 +51,7 @@ describe('createRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], enabled: true, @@ -100,6 +101,7 @@ describe('createRuleRoute', () => { { ...ruleToCreate.actions[0], connector_type_id: 'test', + uuid: '123-456', }, ], }; diff --git a/x-pack/plugins/alerting/server/routes/get_rule.test.ts b/x-pack/plugins/alerting/server/routes/get_rule.test.ts index 065cd567f1f69..81b0ed5a6032a 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.test.ts @@ -44,6 +44,7 @@ describe('getRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -85,6 +86,7 @@ describe('getRuleRoute', () => { id: mockedAlert.actions[0].id, params: mockedAlert.actions[0].params, connector_type_id: mockedAlert.actions[0].actionTypeId, + uuid: mockedAlert.actions[0].uuid, }, ], }; diff --git a/x-pack/plugins/alerting/server/routes/get_rule.ts b/x-pack/plugins/alerting/server/routes/get_rule.ts index 6e7faac3131ab..06bb7716f7f66 100644 --- a/x-pack/plugins/alerting/server/routes/get_rule.ts +++ b/x-pack/plugins/alerting/server/routes/get_rule.ts @@ -60,7 +60,7 @@ const rewriteBodyRes: RewriteResponseCase> = ({ last_execution_date: executionStatus.lastExecutionDate, last_duration: executionStatus.lastDuration, }, - actions: actions.map(({ group, id, actionTypeId, params, frequency }) => ({ + actions: actions.map(({ group, id, actionTypeId, params, frequency, uuid }) => ({ group, id, params, @@ -72,6 +72,7 @@ const rewriteBodyRes: RewriteResponseCase> = ({ throttle: frequency.throttle, } : undefined, + ...(uuid && { uuid }), })), ...(lastRun ? { last_run: rewriteRuleLastRun(lastRun) } : {}), ...(nextRun ? { next_run: nextRun } : {}), diff --git a/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts b/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts index d89873a48c2ea..76c09e093543f 100644 --- a/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts +++ b/x-pack/plugins/alerting/server/routes/lib/actions_schema.ts @@ -24,6 +24,7 @@ export const actionsSchema = schema.arrayOf( throttle: schema.nullable(schema.string({ validate: validateDurationSchema })), }) ), + uuid: schema.maybe(schema.string()), }), { defaultValue: [] } ); diff --git a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts index bbcb489a9597e..eef33bb793d4a 100644 --- a/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts +++ b/x-pack/plugins/alerting/server/routes/lib/rewrite_rule.ts @@ -57,7 +57,7 @@ export const rewriteRule = ({ last_execution_date: executionStatus.lastExecutionDate, last_duration: executionStatus.lastDuration, }, - actions: actions.map(({ group, id, actionTypeId, params, frequency }) => ({ + actions: actions.map(({ group, id, actionTypeId, params, frequency, uuid }) => ({ group, id, params, @@ -71,6 +71,7 @@ export const rewriteRule = ({ }, } : {}), + ...(uuid && { uuid }), })), ...(lastRun ? { last_run: rewriteRuleLastRun(lastRun) } : {}), ...(nextRun ? { next_run: nextRun } : {}), diff --git a/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts b/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts index 656874b5cf332..dfac49fc04a67 100644 --- a/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/resolve_rule.test.ts @@ -44,6 +44,7 @@ describe('resolveRuleRoute', () => { params: { foo: true, }, + uuid: '123-456', }, ], consumer: 'bar', @@ -97,6 +98,7 @@ describe('resolveRuleRoute', () => { id: mockedRule.actions[0].id, params: mockedRule.actions[0].params, connector_type_id: mockedRule.actions[0].actionTypeId, + uuid: mockedRule.actions[0].uuid, }, ], outcome: 'aliasMatch', diff --git a/x-pack/plugins/alerting/server/routes/update_rule.test.ts b/x-pack/plugins/alerting/server/routes/update_rule.test.ts index 8c335a9bf9864..617ea3d8fe6e0 100644 --- a/x-pack/plugins/alerting/server/routes/update_rule.test.ts +++ b/x-pack/plugins/alerting/server/routes/update_rule.test.ts @@ -42,6 +42,7 @@ describe('updateRuleRoute', () => { updatedAt: new Date(), actions: [ { + uuid: '1234-5678', group: 'default', id: '2', actionTypeId: 'test', @@ -58,6 +59,7 @@ describe('updateRuleRoute', () => { notify_when: mockedAlert.notifyWhen, actions: [ { + uuid: '1234-5678', group: mockedAlert.actions[0].group, id: mockedAlert.actions[0].id, params: mockedAlert.actions[0].params, @@ -114,6 +116,7 @@ describe('updateRuleRoute', () => { "params": Object { "baz": true, }, + "uuid": "1234-5678", }, ], "name": "abc", diff --git a/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts b/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts new file mode 100644 index 0000000000000..be377467acbec --- /dev/null +++ b/x-pack/plugins/alerting/server/rules_client/lib/add_uuid.ts @@ -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 { v4 } from 'uuid'; +import { NormalizedAlertAction, NormalizedAlertActionWithUuid } from '..'; + +export function addUuid(actions: NormalizedAlertAction[] = []): NormalizedAlertActionWithUuid[] { + return actions.map((action) => ({ + ...action, + uuid: action.uuid || v4(), + })); +} diff --git a/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts b/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts index 0f7a164d2a741..045053b5d7524 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/denormalize_actions.ts @@ -8,12 +8,11 @@ import { SavedObjectReference } from '@kbn/core/server'; import { RawRule } from '../../types'; import { preconfiguredConnectorActionRefPrefix } from '../common/constants'; -import { RulesClientContext } from '../types'; -import { NormalizedAlertAction } from '../types'; +import { NormalizedAlertActionWithUuid, RulesClientContext } from '../types'; export async function denormalizeActions( context: RulesClientContext, - alertActions: NormalizedAlertAction[] + alertActions: NormalizedAlertActionWithUuid[] ): Promise<{ actions: RawRule['actions']; references: SavedObjectReference[] }> { const references: SavedObjectReference[] = []; const actions: RawRule['actions'] = []; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts b/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts index 58f6f6ab20dbc..a374d7957e392 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/extract_references.ts @@ -8,7 +8,7 @@ import { SavedObjectReference } from '@kbn/core/server'; import { RawRule, RuleTypeParams } from '../../types'; import { UntypedNormalizedRuleType } from '../../rule_type_registry'; -import { NormalizedAlertAction } from '../types'; +import { NormalizedAlertActionWithUuid } from '../types'; import { extractedSavedObjectParamReferenceNamePrefix } from '../common/constants'; import { RulesClientContext } from '../types'; import { denormalizeActions } from './denormalize_actions'; @@ -19,7 +19,7 @@ export async function extractReferences< >( context: RulesClientContext, ruleType: UntypedNormalizedRuleType, - ruleActions: NormalizedAlertAction[], + ruleActions: NormalizedAlertActionWithUuid[], ruleParams: Params ): Promise<{ actions: RawRule['actions']; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/index.ts b/x-pack/plugins/alerting/server/rules_client/lib/index.ts index 1f9534a5c6da2..26cf359d14f15 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/index.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/index.ts @@ -15,3 +15,4 @@ export { checkAuthorizationAndGetTotal } from './check_authorization_and_get_tot export { scheduleTask } from './schedule_task'; export { createNewAPIKeySet } from './create_new_api_key_set'; export { recoverRuleAlerts } from './recover_rule_alerts'; +export { addUuid } from './add_uuid'; diff --git a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts index ea6145b8f6e99..0f039d0d95f9b 100644 --- a/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts +++ b/x-pack/plugins/alerting/server/rules_client/lib/validate_actions.ts @@ -31,6 +31,15 @@ export async function validateActions( const errors = []; + const uniqueActions = new Set(actions.map((action) => action.uuid)); + if (uniqueActions.size < actions.length) { + errors.push( + i18n.translate('xpack.alerting.rulesClient.validateActions.hasDuplicatedUuid', { + defaultMessage: 'Actions have duplicated UUIDs', + }) + ); + } + // check for actions using connectors with missing secrets const actionsClient = await context.getActionsClient(); const actionIds = [...new Set(actions.map((action) => action.id))]; diff --git a/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts b/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts index 6f3c28437a48e..9bf0280e4314b 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/bulk_edit.ts @@ -54,13 +54,14 @@ import { API_KEY_GENERATE_CONCURRENCY, } from '../common/constants'; import { getMappedParams } from '../common/mapped_params_utils'; -import { getAlertFromRaw, extractReferences, validateActions, updateMeta } from '../lib'; +import { getAlertFromRaw, extractReferences, validateActions, updateMeta, addUuid } from '../lib'; import { NormalizedAlertAction, BulkOperationError, RuleBulkOperationAggregation, RulesClientContext, CreateAPIKeyResult, + NormalizedAlertActionWithUuid, } from '../types'; export type BulkEditFields = keyof Pick< @@ -452,7 +453,7 @@ async function updateRuleAttributesAndParamsInMemory omit(action, 'frequency')); if (!attributes.notifyWhen) { diff --git a/x-pack/plugins/alerting/server/rules_client/methods/create.ts b/x-pack/plugins/alerting/server/rules_client/methods/create.ts index 09dc8f62494b8..48735c0327d04 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/create.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/create.ts @@ -11,16 +11,15 @@ import { AlertConsumers } from '@kbn/rule-data-utils'; import { SavedObjectsUtils } from '@kbn/core/server'; import { withSpan } from '@kbn/apm-utils'; import { parseDuration } from '../../../common/parse_duration'; -import { RawRule, SanitizedRule, RuleTypeParams, RuleAction, Rule } from '../../types'; +import { RawRule, SanitizedRule, RuleTypeParams, Rule } from '../../types'; import { WriteOperations, AlertingAuthorizationEntity } from '../../authorization'; import { validateRuleTypeParams, getRuleNotifyWhenType, getDefaultMonitoring } from '../../lib'; import { getRuleExecutionStatusPending } from '../../lib/rule_execution_status'; -import { createRuleSavedObject, extractReferences, validateActions } from '../lib'; +import { createRuleSavedObject, extractReferences, validateActions, addUuid } from '../lib'; import { generateAPIKeyName, getMappedParams, apiKeyAsAlertAttributes } from '../common'; import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; -import { RulesClientContext } from '../types'; +import { NormalizedAlertAction, RulesClientContext } from '../types'; -type NormalizedAlertAction = Omit; interface SavedObjectOptions { id?: string; migrationVersion?: Record; @@ -51,8 +50,10 @@ export interface CreateOptions { export async function create( context: RulesClientContext, - { data, options, allowMissingConnectorSecrets }: CreateOptions + { data: initialData, options, allowMissingConnectorSecrets }: CreateOptions ): Promise> { + const data = { ...initialData, actions: addUuid(initialData.actions) }; + const id = options?.id || SavedObjectsUtils.generateId(); try { @@ -105,7 +106,6 @@ export async function create( } } - await validateActions(context, ruleType, data, allowMissingConnectorSecrets); await withSpan({ name: 'validateActions', type: 'rules' }, () => validateActions(context, ruleType, data, allowMissingConnectorSecrets) ); diff --git a/x-pack/plugins/alerting/server/rules_client/methods/update.ts b/x-pack/plugins/alerting/server/rules_client/methods/update.ts index 5e116f9f21b28..673f300a722c6 100644 --- a/x-pack/plugins/alerting/server/rules_client/methods/update.ts +++ b/x-pack/plugins/alerting/server/rules_client/methods/update.ts @@ -24,7 +24,13 @@ import { bulkMarkApiKeysForInvalidation } from '../../invalidate_pending_api_key import { ruleAuditEvent, RuleAuditAction } from '../common/audit_events'; import { getMappedParams } from '../common/mapped_params_utils'; import { NormalizedAlertAction, RulesClientContext } from '../types'; -import { validateActions, extractReferences, updateMeta, getPartialRuleFromRaw } from '../lib'; +import { + validateActions, + extractReferences, + updateMeta, + getPartialRuleFromRaw, + addUuid, +} from '../lib'; import { generateAPIKeyName, apiKeyAsAlertAttributes } from '../common'; export interface UpdateOptions { @@ -143,9 +149,11 @@ async function updateWithOCC( async function updateAlert( context: RulesClientContext, - { id, data, allowMissingConnectorSecrets }: UpdateOptions, + { id, data: initialData, allowMissingConnectorSecrets }: UpdateOptions, { attributes, version }: SavedObject ): Promise> { + const data = { ...initialData, actions: addUuid(initialData.actions) }; + const ruleType = context.ruleTypeRegistry.get(attributes.alertTypeId); // TODO https://github.com/elastic/kibana/issues/148414 diff --git a/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts index 9f302d178b394..9bcf957a467a6 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/bulk_edit.test.ts @@ -20,6 +20,7 @@ import { ActionsAuthorization, ActionsClient } from '@kbn/actions-plugin/server' import { auditLoggerMock } from '@kbn/security-plugin/server/audit/mocks'; import { getBeforeSetup, setGlobalDate } from './lib'; import { bulkMarkApiKeysForInvalidation } from '../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation'; +import { NormalizedAlertAction } from '../types'; jest.mock('../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation', () => ({ bulkMarkApiKeysForInvalidation: jest.fn(), @@ -29,6 +30,11 @@ jest.mock('../../lib/snooze/is_snooze_active', () => ({ isSnoozeActive: jest.fn(), })); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const { isSnoozeActive } = jest.requireMock('../../lib/snooze/is_snooze_active'); const taskManager = taskManagerMock.createStart(); @@ -115,7 +121,29 @@ describe('bulkEdit()', () => { beforeEach(async () => { rulesClient = new RulesClient(rulesClientParams); + + actionsClient = (await rulesClientParams.getActionsClient()) as jest.Mocked; + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: 'test', + config: { + from: 'me@me.com', + hasAuth: false, + host: 'hello', + port: 22, + secure: null, + service: null, + }, + isMissingSecrets: false, + name: 'email connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); rulesClientParams.getActionsClient.mockResolvedValue(actionsClient); + authorization.getFindAuthorizationFilter.mockResolvedValue({ ensureRuleTypeIsAuthorized() {}, }); @@ -426,6 +454,146 @@ describe('bulkEdit()', () => { }); }); + describe('actions operations', () => { + beforeEach(() => { + mockCreatePointInTimeFinderAsInternalUser({ + saved_objects: [existingDecryptedRule], + }); + }); + + test('should add uuid to new actions', async () => { + const existingAction = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '1', + params: {}, + uuid: '111', + }; + const newAction = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '2', + params: {}, + }; + const newAction2 = { + frequency: { + notifyWhen: 'onActiveAlert', + summary: false, + throttle: null, + }, + group: 'default', + id: '3', + params: {}, + }; + + unsecuredSavedObjectsClient.bulkCreate.mockResolvedValue({ + saved_objects: [ + { + ...existingRule, + attributes: { + ...existingRule.attributes, + actions: [ + { + ...existingAction, + actionRef: 'action_0', + }, + { + ...newAction, + actionRef: 'action_1', + uuid: '222', + }, + ], + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'action_1', + type: 'action', + id: '2', + }, + ], + }, + ], + }); + + const result = await rulesClient.bulkEdit({ + filter: '', + operations: [ + { + field: 'actions', + operation: 'add', + value: [existingAction, newAction, newAction2] as NormalizedAlertAction[], + }, + ], + }); + + expect(unsecuredSavedObjectsClient.bulkCreate).toHaveBeenCalledWith( + [ + { + ...existingRule, + attributes: { + ...existingRule.attributes, + actions: [ + { + actionRef: 'action_0', + actionTypeId: 'test', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '111', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '100', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: {}, + uuid: '101', + }, + ], + apiKey: null, + apiKeyOwner: null, + meta: { versionApiKeyLastmodified: 'v8.2.0' }, + name: 'my rule name', + enabled: false, + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + tags: ['foo'], + }, + references: [{ id: '1', name: 'action_0', type: 'action' }], + }, + ], + { overwrite: true } + ); + expect(result.rules[0]).toEqual({ + ...existingRule.attributes, + actions: [existingAction, { ...newAction, uuid: '222' }], + id: existingRule.id, + snoozeSchedule: [], + }); + }); + }); + describe('index pattern operations', () => { beforeEach(() => { mockCreatePointInTimeFinderAsInternalUser({ diff --git a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts index dddfbe85f9ee3..84226a318f9c3 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/create.test.ts @@ -38,6 +38,11 @@ jest.mock('@kbn/core-saved-objects-utils-server', () => { }; }); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); const unsecuredSavedObjectsClient = savedObjectsClientMock.create(); @@ -406,6 +411,7 @@ describe('create()', () => { "params": Object { "foo": true, }, + "uuid": "102", }, ], "alertTypeId": "123", @@ -624,6 +630,7 @@ describe('create()', () => { "params": Object { "foo": true, }, + "uuid": "104", }, ], "alertTypeId": "123", @@ -1053,6 +1060,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '108', }, { group: 'default', @@ -1061,6 +1069,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '109', }, { group: 'default', @@ -1069,6 +1078,7 @@ describe('create()', () => { params: { foo: true, }, + uuid: '110', }, ], alertTypeId: '123', @@ -1272,7 +1282,13 @@ describe('create()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '112', + }, ], alertTypeId: '123', apiKey: null, @@ -1445,7 +1461,13 @@ describe('create()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '113', + }, ], alertTypeId: '123', apiKey: null, @@ -1612,6 +1634,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '115', }, ], alertTypeId: '123', @@ -1747,6 +1770,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '116', }, ], legacyId: null, @@ -1882,6 +1906,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '117', }, ], legacyId: null, @@ -2044,6 +2069,7 @@ describe('create()', () => { }, actionRef: 'action_0', actionTypeId: 'test', + uuid: '118', }, ], apiKeyOwner: null, @@ -2409,6 +2435,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '126', }, ], alertTypeId: '123', @@ -2513,6 +2540,7 @@ describe('create()', () => { group: 'default', actionTypeId: 'test', params: { foo: true }, + uuid: '127', }, ], legacyId: null, diff --git a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts index 4d16f3e5d66a0..2e1be7076004a 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/update.test.ts @@ -37,6 +37,11 @@ jest.mock('../../invalidate_pending_api_keys/bulk_mark_api_keys_for_invalidation bulkMarkApiKeysForInvalidation: jest.fn(), })); +jest.mock('uuid', () => { + let uuid = 100; + return { v4: () => `${uuid++}` }; +}); + const bulkMarkApiKeysForInvalidationMock = bulkMarkApiKeysForInvalidation as jest.Mock; const taskManager = taskManagerMock.createStart(); const ruleTypeRegistry = ruleTypeRegistryMock.create(); @@ -350,6 +355,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "100", }, Object { "actionRef": "action_1", @@ -358,6 +364,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "101", }, Object { "actionRef": "action_2", @@ -366,6 +373,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "102", }, ], "alertTypeId": "myType", @@ -585,6 +593,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '103', }, { group: 'default', @@ -593,6 +602,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '104', }, { group: 'custom', @@ -601,6 +611,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '105', }, ], alertTypeId: 'myType', @@ -779,7 +790,13 @@ describe('update()', () => { 'alert', { actions: [ - { actionRef: 'action_0', actionTypeId: 'test', group: 'default', params: { foo: true } }, + { + actionRef: 'action_0', + actionTypeId: 'test', + group: 'default', + params: { foo: true }, + uuid: '106', + }, ], alertTypeId: 'myType', apiKey: null, @@ -953,6 +970,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "107", }, ], "alertTypeId": "myType", @@ -1101,6 +1119,7 @@ describe('update()', () => { "params": Object { "foo": true, }, + "uuid": "108", }, ], "alertTypeId": "myType", @@ -2113,6 +2132,7 @@ describe('update()', () => { params: { foo: true, }, + uuid: '144', }, ], alertTypeId: 'myType', @@ -2522,4 +2542,166 @@ describe('update()', () => { ); }); }); + + test('updates an action with uuid and adds uuid to an action without it', async () => { + actionsClient.getBulk.mockReset(); + actionsClient.getBulk.mockResolvedValue([ + { + id: '1', + actionTypeId: 'test', + config: { + from: 'me@me.com', + hasAuth: false, + host: 'hello', + port: 22, + secure: null, + service: null, + }, + isMissingSecrets: false, + name: 'email connector', + isPreconfigured: false, + isDeprecated: false, + }, + ]); + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'alert', + attributes: { + enabled: true, + schedule: { interval: '1m' }, + params: { + bar: true, + }, + actions: [ + { + group: 'default', + actionRef: 'action_0', + actionTypeId: 'test', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '123-456', + }, + { + group: 'default', + actionRef: 'action_1', + actionTypeId: 'test', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '111-111', + }, + ], + scheduledTaskId: 'task-123', + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + { + name: 'action_1', + type: 'action', + id: '2', + }, + ], + }); + await rulesClient.update({ + id: '1', + data: { + schedule: { interval: '1m' }, + name: 'abc', + tags: ['foo'], + params: { + bar: true, + risk_score: 40, + severity: 'low', + }, + actions: [ + { + group: 'default', + id: '1', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + uuid: '123-456', + }, + { + group: 'default', + id: '2', + params: { + foo: true, + }, + frequency: { + notifyWhen: 'onActiveAlert', + throttle: null, + summary: false, + }, + }, + ], + }, + }); + expect(unsecuredSavedObjectsClient.create).toHaveBeenCalledWith( + 'alert', + { + actions: [ + { + actionRef: 'action_0', + actionTypeId: 'test', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: { foo: true }, + uuid: '123-456', + }, + { + actionRef: '', + actionTypeId: '', + frequency: { notifyWhen: 'onActiveAlert', summary: false, throttle: null }, + group: 'default', + params: { foo: true }, + uuid: '151', + }, + ], + alertTypeId: 'myType', + apiKey: null, + apiKeyOwner: null, + consumer: 'myApp', + enabled: true, + mapped_params: { risk_score: 40, severity: '20-low' }, + meta: { versionApiKeyLastmodified: 'v7.10.0' }, + name: 'abc', + notifyWhen: null, + params: { bar: true, risk_score: 40, severity: 'low' }, + schedule: { interval: '1m' }, + scheduledTaskId: 'task-123', + tags: ['foo'], + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + }, + { + id: '1', + overwrite: true, + references: [{ id: '1', name: 'action_0', type: 'action' }], + version: '123', + } + ); + }); }); diff --git a/x-pack/plugins/alerting/server/rules_client/types.ts b/x-pack/plugins/alerting/server/rules_client/types.ts index ff59b5527f902..c6243d6fad5e2 100644 --- a/x-pack/plugins/alerting/server/rules_client/types.ts +++ b/x-pack/plugins/alerting/server/rules_client/types.ts @@ -73,6 +73,10 @@ export interface RulesClientContext { export type NormalizedAlertAction = Omit; +export type NormalizedAlertActionWithUuid = Omit & { + uuid: string; +}; + export interface RegistryAlertTypeWithAuth extends RegistryRuleType { authorizedConsumers: string[]; } diff --git a/x-pack/plugins/alerting/server/saved_objects/mappings.ts b/x-pack/plugins/alerting/server/saved_objects/mappings.ts index be70255f18840..f065c5e069ce1 100644 --- a/x-pack/plugins/alerting/server/saved_objects/mappings.ts +++ b/x-pack/plugins/alerting/server/saved_objects/mappings.ts @@ -41,6 +41,7 @@ export const alertMappings: SavedObjectsTypeMappingDefinition = { type: 'keyword', }, actions: { + dynamic: false, type: 'nested', properties: { group: { diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts index 1b49f606cb6b5..831e4eff10d43 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/8.7/index.ts @@ -7,6 +7,7 @@ import { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; import { EncryptedSavedObjectsPluginSetup } from '@kbn/encrypted-saved-objects-plugin/server'; +import { v4 as uuidv4 } from 'uuid'; import { extractedSavedObjectParamReferenceNamePrefix } from '../../../rules_client/common/constants'; import { createEsoMigration, @@ -37,6 +38,27 @@ function addGroupByToEsQueryRule( return doc; } +function addActionUuid( + doc: SavedObjectUnsanitizedDoc +): SavedObjectUnsanitizedDoc { + const { + attributes: { actions }, + } = doc; + + return { + ...doc, + attributes: { + ...doc.attributes, + actions: actions + ? actions.map((action) => ({ + ...action, + uuid: uuidv4(), + })) + : [], + }, + }; +} + function addLogViewRefToLogThresholdRule( doc: SavedObjectUnsanitizedDoc ): SavedObjectUnsanitizedDoc { @@ -94,5 +116,10 @@ export const getMigrations870 = (encryptedSavedObjects: EncryptedSavedObjectsPlu createEsoMigration( encryptedSavedObjects, (doc: SavedObjectUnsanitizedDoc): doc is SavedObjectUnsanitizedDoc => true, - pipeMigrations(addGroupByToEsQueryRule, addLogViewRefToLogThresholdRule, addOutcomeOrder) + pipeMigrations( + addGroupByToEsQueryRule, + addLogViewRefToLogThresholdRule, + addOutcomeOrder, + addActionUuid + ) ); diff --git a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts index 7ecf7596259fa..940b926f5e326 100644 --- a/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts +++ b/x-pack/plugins/alerting/server/saved_objects/migrations/index.test.ts @@ -8,7 +8,7 @@ import sinon from 'sinon'; import { v4 as uuidv4 } from 'uuid'; import { getMigrations } from '.'; -import { RawRule } from '../../types'; +import { RawRule, RawRuleAction } from '../../types'; import { SavedObjectMigrationContext, SavedObjectUnsanitizedDoc } from '@kbn/core/server'; import { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; import { migrationMocks } from '@kbn/core/server/mocks'; @@ -2628,6 +2628,28 @@ describe('successful migrations', () => { outcomeOrder: 0, }); }); + + test('adds uuid to rule actions', () => { + const migration870 = getMigrations(encryptedSavedObjectsSetup, {}, isPreconfigured)['8.7.0']; + const rule = getMockData( + { + params: { foo: true }, + alertTypeId: '.not-es-query', + }, + true + ); + const migratedAlert870 = migration870(rule, migrationContext); + + expect(migratedAlert870.attributes.actions).toEqual([ + { + group: 'default', + actionRef: '1', + actionTypeId: '1', + params: { foo: true }, + uuid: expect.stringMatching(/.*\S.*/), // non-empty string + }, + ]); + }); }); describe('Metrics Inventory Threshold rule', () => { @@ -2974,7 +2996,7 @@ function getMockData( params: { foo: true, }, - }, + } as unknown as RawRuleAction, ], ...overwrites, }, diff --git a/x-pack/plugins/alerting/server/task_runner/fixtures.ts b/x-pack/plugins/alerting/server/task_runner/fixtures.ts index 7acb36c34bd9c..920afcfbe3035 100644 --- a/x-pack/plugins/alerting/server/task_runner/fixtures.ts +++ b/x-pack/plugins/alerting/server/task_runner/fixtures.ts @@ -50,6 +50,7 @@ export const RULE_ACTIONS = [ params: { foo: true, }, + uuid: '111-111', }, { actionTypeId: 'action', @@ -58,6 +59,7 @@ export const RULE_ACTIONS = [ params: { isResolved: true, }, + uuid: '222-222', }, ]; @@ -190,6 +192,7 @@ export const mockedRuleTypeSavedObject: Rule = { params: { foo: true, }, + uuid: '111-111', }, { group: RecoveredActionGroup.id, @@ -198,6 +201,7 @@ export const mockedRuleTypeSavedObject: Rule = { params: { isResolved: true, }, + uuid: '222-222', }, ], executionStatus: { diff --git a/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts b/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts index a2488b6a6cd01..c69d394d258ec 100644 --- a/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/rule_action_helper.test.ts @@ -20,6 +20,7 @@ const mockOldAction: RuleAction = { group: 'default', actionTypeId: 'slack', params: {}, + uuid: '123-456', }; const mockAction: RuleAction = { @@ -32,6 +33,7 @@ const mockAction: RuleAction = { notifyWhen: 'onActiveAlert', throttle: null, }, + uuid: '123-456', }; const mockSummaryAction: RuleAction = { diff --git a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts index 8b7284bb8ffd4..779b467160b2d 100644 --- a/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts +++ b/x-pack/plugins/alerting/server/task_runner/task_runner.test.ts @@ -1284,6 +1284,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, { group: recoveryActionGroup.id, @@ -1292,6 +1293,7 @@ describe('Task Runner', () => { params: { isResolved: true, }, + uuid: '222-222', }, ], }); @@ -1388,6 +1390,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, ], }); @@ -1464,6 +1467,7 @@ describe('Task Runner', () => { params: { foo: true, }, + uuid: '111-111', }, ], }); diff --git a/x-pack/plugins/alerting/server/types.ts b/x-pack/plugins/alerting/server/types.ts index 1ecff391be4af..e319f315440af 100644 --- a/x-pack/plugins/alerting/server/types.ts +++ b/x-pack/plugins/alerting/server/types.ts @@ -235,6 +235,7 @@ export type UntypedRuleType = RuleType< >; export interface RawRuleAction extends SavedObjectAttributes { + uuid: string; group: string; actionRef: string; actionTypeId: string; diff --git a/x-pack/plugins/security_solution/common/detection_engine/transform_actions.test.ts b/x-pack/plugins/security_solution/common/detection_engine/transform_actions.test.ts index 6e7807247e57c..a8901fee7a3de 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/transform_actions.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/transform_actions.test.ts @@ -36,6 +36,7 @@ describe('transform_actions', () => { group: 'group', actionTypeId: 'actionTypeId', params: {}, + uuid: '111', }; const ruleAction = transformAlertToRuleAction(alertAction); expect(ruleAction).toEqual({ @@ -43,6 +44,7 @@ describe('transform_actions', () => { group: alertAction.group, action_type_id: alertAction.actionTypeId, params: alertAction.params, + uuid: '111', }); }); test('it should transform ResponseAction[] to RuleResponseAction[]', () => { diff --git a/x-pack/plugins/security_solution/common/detection_engine/transform_actions.ts b/x-pack/plugins/security_solution/common/detection_engine/transform_actions.ts index da720b578bc65..354713e30d7c8 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/transform_actions.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/transform_actions.ts @@ -12,13 +12,15 @@ import type { RuleAlertAction } from './types'; export const transformRuleToAlertAction = ({ group, id, - action_type_id, // eslint-disable-line @typescript-eslint/naming-convention + action_type_id: actionTypeId, params, + uuid, }: RuleAlertAction): RuleAction => ({ group, id, params, - actionTypeId: action_type_id, + actionTypeId, + ...(uuid && { uuid }), }); export const transformAlertToRuleAction = ({ @@ -26,11 +28,13 @@ export const transformAlertToRuleAction = ({ id, actionTypeId, params, + uuid, }: RuleAction): RuleAlertAction => ({ group, id, params, action_type_id: actionTypeId, + ...(uuid && { uuid }), }); export const transformRuleToAlertResponseAction = ({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/clone.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/clone.test.ts index 9efd9b12f4b14..54e987d18c917 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/clone.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/clone.test.ts @@ -43,6 +43,7 @@ describe('cloneRule', () => { summary: false, }, connector_type_id: '.server-log', + uuid: '123456', }, ], scheduled_task_id: '1', @@ -74,6 +75,7 @@ describe('cloneRule', () => { "level": "info", "message": "alert ", }, + "uuid": "123456", }, ], "activeSnoozes": undefined, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts index f8a9639bb30bd..97b17f460f3d4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/common_transformations.ts @@ -9,6 +9,7 @@ import { AsApiContract, RewriteRequestCase } from '@kbn/actions-plugin/common'; import { Rule, RuleAction, ResolvedRule, RuleLastRun } from '../../../types'; const transformAction: RewriteRequestCase = ({ + uuid, group, id, connector_type_id: actionTypeId, @@ -28,6 +29,7 @@ const transformAction: RewriteRequestCase = ({ }, } : {}), + ...(uuid && { uuid }), }); const transformExecutionStatus: RewriteRequestCase = ({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/update.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/update.ts index aefaf9019a967..51c6febf6c557 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/update.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/rule_api/update.ts @@ -17,7 +17,7 @@ type RuleUpdatesBody = Pick< >; const rewriteBodyRequest: RewriteResponseCase = ({ actions, ...res }): any => ({ ...res, - actions: actions.map(({ group, id, params, frequency }) => ({ + actions: actions.map(({ group, id, params, frequency, uuid }) => ({ group, id, params, @@ -26,6 +26,7 @@ const rewriteBodyRequest: RewriteResponseCase = ({ actions, ... throttle: frequency!.throttle, summary: frequency!.summary, }, + ...(uuid && { uuid }), })), }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.test.ts index ecd377f6976f9..a0069bcdc328d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.test.ts @@ -345,6 +345,7 @@ describe('getRuleWithInvalidatedFields', () => { field: {}, }, }, + uuid: '123-456', }, ], tags: [], @@ -390,6 +391,7 @@ describe('getRuleWithInvalidatedFields', () => { field: {}, }, }, + uuid: '111-111', }, { actionTypeId: 'test', @@ -402,6 +404,7 @@ describe('getRuleWithInvalidatedFields', () => { }, }, }, + uuid: '222-222', }, ], tags: [], diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connectors_selection.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connectors_selection.test.tsx index ff31b977612f0..97742e22a9ae4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connectors_selection.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connectors_selection.test.tsx @@ -45,6 +45,7 @@ describe('connectors_selection', () => { group: 'group', class: 'test class', }, + uuid: '123-456', }; const actionTypeIndex: Record = { diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.test.ts index 9b066bb1060a0..996676b73d59e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_form/rule_reducer.test.ts @@ -111,6 +111,7 @@ describe('rule reducer', () => { actionTypeId: 'testId', group: 'Rule', params: {}, + uuid: '123-456', }); const updatedRule = ruleReducer( { rule: initialRule }, @@ -151,6 +152,7 @@ describe('rule reducer', () => { params: { testActionParam: 'some value', }, + uuid: '123-456', }); const updatedRule = ruleReducer( { rule: initialRule }, @@ -172,6 +174,7 @@ describe('rule reducer', () => { actionTypeId: 'testId', group: 'Rule', params: {}, + uuid: '123-456', }); const updatedRule = ruleReducer( { rule: initialRule }, @@ -193,6 +196,7 @@ describe('rule reducer', () => { actionTypeId: 'testId', group: 'Rule', params: {}, + uuid: '123-456', }); const updatedRule = ruleReducer( { rule: initialRule }, diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/create.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/create.ts index 066ae0303d2b5..6fa2b71176788 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/create.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/create.ts @@ -106,6 +106,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { connector_type_id: createdAction.connector_type_id, group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, ], enabled: true, diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/find.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/find.ts index d35314176d657..a75751d6df66f 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/find.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group1/tests/alerting/find.ts @@ -321,6 +321,7 @@ const findTestUtils = ( group: 'default', connector_type_id: 'test.noop', params: {}, + uuid: createdAlert.actions[0].uuid, }, ], params: {}, diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts index 60e6daee3d51d..e97c0df7bf1df 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts @@ -74,12 +74,13 @@ export default function alertTests({ getService }: FtrProviderContext) { updatedBy: user.fullName, actions: actions.map((action: any) => { /* eslint-disable @typescript-eslint/naming-convention */ - const { connector_type_id, group, id, params } = action; + const { connector_type_id, group, id, params, uuid } = action; return { actionTypeId: connector_type_id, group, id, params, + uuid, }; }), producer: 'alertsFixture', @@ -421,12 +422,13 @@ instanceStateValue: true updatedBy: Superuser.fullName, actions: response2.body.actions.map((action: any) => { /* eslint-disable @typescript-eslint/naming-convention */ - const { connector_type_id, group, id, params } = action; + const { connector_type_id, group, id, params, uuid } = action; return { actionTypeId: connector_type_id, group, id, params, + uuid, }; }), producer: 'alertsFixture', diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts index 25cc8384f14e4..a5254c6032109 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/update.ts @@ -127,6 +127,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { connector_type_id: 'test.noop', group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, ], scheduled_task_id: createdAlert.scheduled_task_id, diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_edit.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_edit.ts index df53acd6acdbd..515b5662246b7 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_edit.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/bulk_edit.ts @@ -116,6 +116,7 @@ export default function createUpdateTests({ getService }: FtrProviderContext) { group: 'default', params: {}, connector_type_id: 'test.noop', + uuid: response.body.rules[0].actions[0].uuid, }, ]); expect(response.statusCode).to.eql(200); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/clone.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/clone.ts index e473394f26b8e..8bb9d14572725 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/clone.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group3/tests/alerting/clone.ts @@ -145,6 +145,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { connector_type_id: response.body.actions[0].connector_type_id, group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, ], enabled: true, diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/alerts_base.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/alerts_base.ts index 8e0d7b27cfa4d..f50e0be3c03c5 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/alerts_base.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/alerts_base.ts @@ -113,12 +113,13 @@ export function alertTests({ getService }: FtrProviderContext, space: Space) { updatedBy: null, actions: response.body.actions.map((action: any) => { /* eslint-disable @typescript-eslint/naming-convention */ - const { connector_type_id, group, id, params } = action; + const { connector_type_id, group, id, params, uuid } = action; return { actionTypeId: connector_type_id, group, id, params, + uuid, }; }), producer: 'alertsFixture', diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/create.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/create.ts index 534df486281be..ccf6d89cc602e 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/create.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/create.ts @@ -76,6 +76,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { connector_type_id: createdAction.connector_type_id, group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, ], enabled: true, @@ -169,6 +170,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { connector_type_id: createdAction.connector_type_id, group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, { id: 'my-slack1', @@ -177,6 +179,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { params: { message: 'something important happened!', }, + uuid: response.body.actions[1].uuid, }, ], enabled: true, @@ -219,6 +222,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { actionTypeId: 'test.noop', group: 'default', params: {}, + uuid: rawActions[0].uuid, }, { actionRef: 'preconfigured:my-slack1', @@ -227,6 +231,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { params: { message: 'something important happened!', }, + uuid: rawActions[1].uuid, }, ]); @@ -479,6 +484,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) { actionTypeId: createdAction.connector_type_id, group: 'default', params: {}, + uuid: response.body.actions[0].uuid, }, ], enabled: true, diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts index 975ed2a3913c6..d730c2819596c 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/find.ts @@ -102,6 +102,7 @@ const findTestUtils = ( notify_when: 'onThrottleInterval', throttle: '1m', }, + uuid: match.actions[0].uuid, }, ], params: {}, diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/migrations.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/migrations.ts index 20980f390c79b..50667e7742374 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/migrations.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group4/migrations.ts @@ -5,7 +5,7 @@ * 2.0. */ -import expect from '@kbn/expect'; +import expect from 'expect'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { RawRule, RawRuleAction } from '@kbn/alerting-plugin/server/types'; import { FILEBEAT_7X_INDICATOR_PATH } from '@kbn/alerting-plugin/server/saved_objects/migrations'; @@ -33,8 +33,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/74f3e6d7-b7bb-477d-ac28-92ee22728e6e` ); - expect(response.status).to.eql(200); - expect(response.body.consumer).to.equal('alerts'); + expect(response.status).toBe(200); + expect(response.body.consumer).toEqual('alerts'); }); it('7.10.0 migrates the `metrics` consumer to be the `infrastructure`', async () => { @@ -42,8 +42,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/74f3e6d7-b7bb-477d-ac28-fdf248d5f2a4` ); - expect(response.status).to.eql(200); - expect(response.body.consumer).to.equal('infrastructure'); + expect(response.status).toEqual(200); + expect(response.body.consumer).toEqual('infrastructure'); }); it('7.10.0 migrates PagerDuty actions to have a default dedupKey', async () => { @@ -51,10 +51,10 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/b6087f72-994f-46fb-8120-c6e5c50d0f8f` ); - expect(response.status).to.eql(200); + expect(response.status).toEqual(200); - expect(response.body.actions).to.eql([ - { + expect(response.body.actions).toEqual([ + expect.objectContaining({ connector_type_id: '.pagerduty', id: 'a6a8ab7a-35cf-445e-ade3-215a029c2ee3', group: 'default', @@ -63,8 +63,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { eventAction: 'trigger', summary: 'fired {{alertInstanceId}}', }, - }, - { + }), + expect.objectContaining({ connector_type_id: '.pagerduty', id: 'a6a8ab7a-35cf-445e-ade3-215a029c2ee3', group: 'default', @@ -74,8 +74,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { eventAction: 'resolve', summary: 'fired {{alertInstanceId}}', }, - }, - { + }), + expect.objectContaining({ connector_type_id: '.pagerduty', id: 'a6a8ab7a-35cf-445e-ade3-215a029c2ee3', group: 'default', @@ -85,7 +85,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { eventAction: 'resolve', summary: 'fired {{alertInstanceId}}', }, - }, + }), ]); }); @@ -94,8 +94,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/74f3e6d7-b7bb-477d-ac28-92ee22728e6e` ); - expect(response.status).to.eql(200); - expect(response.body.updated_at).to.eql('2020-06-17T15:35:39.839Z'); + expect(response.status).toEqual(200); + expect(response.body.updated_at).toEqual('2020-06-17T15:35:39.839Z'); }); it('7.11.0 migrates alerts to contain `notifyWhen` field', async () => { @@ -103,8 +103,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/74f3e6d7-b7bb-477d-ac28-92ee22728e6e` ); - expect(response.status).to.eql(200); - expect(response.body.notify_when).to.eql('onActiveAlert'); + expect(response.status).toEqual(200); + expect(response.body.notify_when).toEqual('onActiveAlert'); }); it('7.11.2 migrates alerts with case actions, case fields are nested in an incident object', async () => { @@ -112,9 +112,9 @@ export default function createGetTests({ getService }: FtrProviderContext) { `${getUrlPrefix(``)}/api/alerting/rule/99f3e6d7-b7bb-477d-ac28-92ee22726969` ); - expect(response.status).to.eql(200); - expect(response.body.actions).to.eql([ - { + expect(response.status).toEqual(200); + expect(response.body.actions).toEqual([ + expect.objectContaining({ id: '66a8ab7a-35cf-445e-ade3-215a029c6969', connector_type_id: '.servicenow', group: 'threshold met', @@ -131,8 +131,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { comments: [{ commentId: '1', comment: 'sn comment' }], }, }, - }, - { + }), + expect.objectContaining({ id: '66a8ab7a-35cf-445e-ade3-215a029c6969', connector_type_id: '.jira', group: 'threshold met', @@ -155,8 +155,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { ], }, }, - }, - { + }), + expect.objectContaining({ id: '66a8ab7a-35cf-445e-ade3-215a029c6969', connector_type_id: '.resilient', group: 'threshold met', @@ -177,7 +177,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { ], }, }, - }, + }), ]); }); @@ -190,8 +190,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.references).to.eql([ + expect(response.statusCode).toEqual(200); + expect(response.body._source?.references).toEqual([ { name: 'param:exceptionsList_0', id: 'endpoint_list', @@ -219,10 +219,10 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(searchResult.statusCode).to.equal(200); - expect((searchResult.body.hits.total as estypes.SearchTotalHits).value).to.equal(1); + expect(searchResult.statusCode).toEqual(200); + expect((searchResult.body.hits.total as estypes.SearchTotalHits).value).toEqual(1); const hit = searchResult.body.hits.hits[0]; - expect((hit!._source!.alert! as RawRule).legacyId).to.equal( + expect((hit!._source!.alert! as RawRule).legacyId).toEqual( '74f3e6d7-b7bb-477d-ac28-92ee22728e6e' ); }); @@ -241,31 +241,31 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(searchResult.statusCode).to.equal(200); - expect((searchResult.body.hits.total as estypes.SearchTotalHits).value).to.equal(1); + expect(searchResult.statusCode).toEqual(200); + expect((searchResult.body.hits.total as estypes.SearchTotalHits).value).toEqual(1); const hit = searchResult.body.hits.hits[0]; - expect((hit!._source!.alert! as RawRule).actions! as RawRuleAction[]).to.eql([ - { + expect((hit!._source!.alert! as RawRule).actions! as RawRuleAction[]).toEqual([ + expect.objectContaining({ actionRef: 'action_0', actionTypeId: 'test.noop', group: 'default', params: {}, - }, - { + }), + expect.objectContaining({ actionRef: 'preconfigured:my-slack1', actionTypeId: '.slack', group: 'default', params: { message: 'something happened!', }, - }, + }), ]); - expect(hit!._source!.references!).to.eql([ - { + expect(hit!._source!.references!).toEqual([ + expect.objectContaining({ id: '66a8ab7a-35cf-445e-ade3-215a029c6969', name: 'action_0', type: 'action', - }, + }), ]); }); @@ -278,8 +278,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.references).to.eql([ + expect(response.statusCode).toEqual(200); + expect(response.body._source?.references).toEqual([ { name: 'param:alert_0', id: '1a4ed6ae-3c89-44b2-999d-db554144504c', @@ -302,8 +302,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.threatIndicatorPath).to.eql( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.threatIndicatorPath).toEqual( FILEBEAT_7X_INDICATOR_PATH ); }); @@ -322,8 +322,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.threatIndicatorPath).to.eql( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.threatIndicatorPath).toEqual( 'custom.indicator.path' ); }); @@ -342,8 +342,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.threatIndicatorPath).not.to.eql( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.threatIndicatorPath).not.toEqual( FILEBEAT_7X_INDICATOR_PATH ); }); @@ -356,8 +356,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.actions?.[0].group).to.be( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.actions?.[0].group).toBe( 'metrics.inventory_threshold.fired' ); }); @@ -370,9 +370,9 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.alertTypeId).to.be('siem.queryRule'); - expect(response.body._source?.alert?.enabled).to.be(false); + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.alertTypeId).toBe('siem.queryRule'); + expect(response.body._source?.alert?.enabled).toBe(false); }); it('8.0.1 migrates and adds tags to disabled rules in 8.0', async () => { @@ -383,7 +383,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(responseEnabledBeforeMigration.statusCode).to.eql(200); + expect(responseEnabledBeforeMigration.statusCode).toEqual(200); const responseDisabledBeforeMigration = await es.get<{ alert: RawRule }>( { index: '.kibana', @@ -391,17 +391,17 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(responseDisabledBeforeMigration.statusCode).to.eql(200); + expect(responseDisabledBeforeMigration.statusCode).toEqual(200); // Both should be disabled - expect(responseEnabledBeforeMigration.body._source?.alert?.enabled).to.be(false); - expect(responseDisabledBeforeMigration.body._source?.alert?.enabled).to.be(false); + expect(responseEnabledBeforeMigration.body._source?.alert?.enabled).toBe(false); + expect(responseDisabledBeforeMigration.body._source?.alert?.enabled).toBe(false); // Only the rule that was enabled should be tagged - expect(responseEnabledBeforeMigration.body._source?.alert?.tags).to.eql([ + expect(responseEnabledBeforeMigration.body._source?.alert?.tags).toEqual([ 'auto_disabled_8.0', ]); - expect(responseDisabledBeforeMigration.body._source?.alert?.tags).to.eql([]); + expect(responseDisabledBeforeMigration.body._source?.alert?.tags).toEqual([]); }); it('8.2.0 migrates params to mapped_params for specific params properties', async () => { @@ -413,8 +413,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { { meta: true } ); - expect(response.statusCode).to.equal(200); - expect(response.body._source?.alert?.mapped_params).to.eql({ + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.mapped_params).toEqual({ risk_score: 90, severity: '80-critical', }); @@ -428,8 +428,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.equal(200); - expect(response.body._source?.alert?.params.searchType).to.eql('esQuery'); + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params.searchType).toEqual('esQuery'); }); it('8.3.0 removes internal tags in Security Solution rule', async () => { @@ -441,8 +441,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { { meta: true } ); - expect(response.statusCode).to.equal(200); - expect(response.body._source?.alert?.tags).to.eql(['test-tag-1', 'foo-tag']); + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.tags).toEqual(['test-tag-1', 'foo-tag']); }); it('8.4.1 removes IsSnoozedUntil', async () => { @@ -460,9 +460,9 @@ export default function createGetTests({ getService }: FtrProviderContext) { { meta: true } ); - expect(searchResult.statusCode).to.equal(200); + expect(searchResult.statusCode).toEqual(200); const hit = searchResult.body.hits.hits[0]; - expect((hit!._source!.alert! as RawRule).isSnoozedUntil).to.be(undefined); + expect((hit!._source!.alert! as RawRule).isSnoozedUntil).toBe(undefined); }); it('8.5.0 removes runtime and field params from older ES Query rules', async () => { @@ -479,8 +479,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.esQuery).to.eql( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.esQuery).toEqual( JSON.stringify({ query: { match_all: {} } }, null, 4) ); }); @@ -499,8 +499,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.esQuery).to.eql( + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.esQuery).toEqual( '{\n\t"query":\n{\n\t"match_all":\n\t{}\n}\n}' ); }); @@ -519,8 +519,8 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); - expect(response.body._source?.alert?.params?.esQuery).to.eql('{"query":}'); + expect(response.statusCode).toEqual(200); + expect(response.body._source?.alert?.params?.esQuery).toEqual('{"query":}'); }); it('8.6.0 migrates executionStatus and monitoring', async () => { @@ -533,7 +533,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { ); const alert = response.body._source?.alert; - expect(alert?.monitoring).to.eql({ + expect(alert?.monitoring).toEqual({ run: { history: [ { @@ -557,7 +557,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, }); - expect(alert?.lastRun).to.eql({ + expect(alert?.lastRun).toEqual({ outcome: 'succeeded', outcomeMsg: null, outcomeOrder: 0, @@ -565,7 +565,7 @@ export default function createGetTests({ getService }: FtrProviderContext) { alertsCount: {}, }); - expect(alert?.nextRun).to.eql(undefined); + expect(alert?.nextRun).toEqual(undefined); }); it('8.6 migrates executionStatus warnings and errors', async () => { @@ -579,9 +579,9 @@ export default function createGetTests({ getService }: FtrProviderContext) { const alert = response.body._source?.alert; - expect(alert?.lastRun?.outcome).to.eql('warning'); - expect(alert?.lastRun?.warning).to.eql('warning reason'); - expect(alert?.lastRun?.outcomeMsg).to.eql('warning message'); + expect(alert?.lastRun?.outcome).toEqual('warning'); + expect(alert?.lastRun?.warning).toEqual('warning reason'); + expect(alert?.lastRun?.outcomeMsg).toEqual('warning message'); }); it('8.7.0 adds aggType and groupBy to ES query rules', async () => { @@ -604,10 +604,10 @@ export default function createGetTests({ getService }: FtrProviderContext) { }, { meta: true } ); - expect(response.statusCode).to.eql(200); + expect(response.statusCode).toEqual(200); response.body.hits.hits.forEach((hit) => { - expect((hit?._source?.alert as RawRule)?.params?.aggType).to.eql('count'); - expect((hit?._source?.alert as RawRule)?.params?.groupBy).to.eql('all'); + expect((hit?._source?.alert as RawRule)?.params?.aggType).toEqual('count'); + expect((hit?._source?.alert as RawRule)?.params?.groupBy).toEqual('all'); }); }); @@ -635,8 +635,39 @@ export default function createGetTests({ getService }: FtrProviderContext) { { meta: true } ); - expect(response.body._source?.alert?.params.logView).to.eql(logView); - expect(response.body._source?.references).to.eql(references); + expect(response.body._source?.alert?.params.logView).toEqual(logView); + expect(response.body._source?.references).toEqual(references); + }); + + it('8.7 adds uuid to the actions', async () => { + const response = await es.get<{ alert: RawRule }>( + { + index: '.kibana', + id: 'alert:9c003b00-00ee-11ec-b067-2524946ba327', + }, + { meta: true } + ); + + const alert = response.body._source?.alert; + + expect(alert?.actions).toEqual([ + { + actionRef: 'action_0', + actionTypeId: 'test.noop', + group: 'default', + params: {}, + uuid: expect.any(String), + }, + { + actionRef: 'preconfigured:my-slack1', + actionTypeId: '.slack', + group: 'default', + params: { + message: 'something happened!', + }, + uuid: expect.any(String), + }, + ]); }); }); } diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/add_actions.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/add_actions.ts index 94a8b58ff70a0..ef414b37a3f9b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/add_actions.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/add_actions.ts @@ -57,7 +57,10 @@ export default ({ getService }: FtrProviderContext) => { const rule = await createRule(supertest, log, getRuleWithWebHookAction(hookAction.id)); const bodyToCompare = removeServerGeneratedProperties(rule); expect(bodyToCompare).to.eql( - getSimpleRuleOutputWithWebHookAction(`${bodyToCompare?.actions?.[0].id}`) + getSimpleRuleOutputWithWebHookAction( + `${bodyToCompare?.actions?.[0].id}`, + `${bodyToCompare?.actions?.[0].uuid}` + ) ); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/export_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/export_rules.ts index 60af78ec6cff9..c4c109f25952c 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/export_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/export_rules.ts @@ -165,7 +165,10 @@ export default ({ getService }: FtrProviderContext): void => { const outputRule1: ReturnType = { ...getSimpleRuleOutput('rule-1'), - actions: [action1, action2], + actions: [ + { ...action1, uuid: firstRule.actions[0].uuid }, + { ...action2, uuid: firstRule.actions[1].uuid }, + ], throttle: 'rule', }; expect(firstRule).to.eql(outputRule1); @@ -213,12 +216,12 @@ export default ({ getService }: FtrProviderContext): void => { const outputRule1: ReturnType = { ...getSimpleRuleOutput('rule-2'), - actions: [action], + actions: [{ ...action, uuid: firstRule.actions[0].uuid }], throttle: 'rule', }; const outputRule2: ReturnType = { ...getSimpleRuleOutput('rule-1'), - actions: [action], + actions: [{ ...action, uuid: secondRule.actions[0].uuid }], throttle: 'rule', }; expect(firstRule).to.eql(outputRule1); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/find_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/find_rules.ts index f2e5e19ed182f..1ddf36277ec6b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/find_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/find_rules.ts @@ -126,7 +126,7 @@ export default ({ getService }: FtrProviderContext): void => { const ruleWithActions: ReturnType = { ...getSimpleRuleOutput(), - actions: [action], + actions: [{ ...action, uuid: body.data[0].actions[0].uuid }], throttle: 'rule', }; @@ -171,7 +171,7 @@ export default ({ getService }: FtrProviderContext): void => { const ruleWithActions: ReturnType = { ...getSimpleRuleOutput(), - actions: [action], + actions: [{ ...action, uuid: body.data[0].actions[0].uuid }], throttle: '1h', // <-- throttle makes this a scheduled action }; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/update_actions.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/update_actions.ts index 4897805e09eb2..cf1c198933447 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/update_actions.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group1/update_actions.ts @@ -71,7 +71,10 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare = removeServerGeneratedProperties(updatedRule); const expected = { - ...getSimpleRuleOutputWithWebHookAction(`${bodyToCompare.actions?.[0].id}`), + ...getSimpleRuleOutputWithWebHookAction( + `${bodyToCompare.actions?.[0].id}`, + `${bodyToCompare.actions?.[0].uuid}` + ), version: 2, // version bump is required since this is an updated rule and this is part of the testing that we do bump the version number on update }; expect(bodyToCompare).to.eql(expected); @@ -147,7 +150,10 @@ export default ({ getService }: FtrProviderContext) => { const updatedRule = await updateRule(supertest, log, ruleToUpdate); const bodyToCompare = removeServerGeneratedProperties(updatedRule); - const expected = getSimpleRuleOutputWithWebHookAction(`${bodyToCompare.actions?.[0].id}`); + const expected = getSimpleRuleOutputWithWebHookAction( + `${bodyToCompare.actions?.[0].id}`, + `${bodyToCompare.actions?.[0].uuid}` + ); expect(bodyToCompare.actions).to.eql(expected.actions); expect(bodyToCompare.throttle).to.eql(expected.throttle); @@ -180,7 +186,10 @@ export default ({ getService }: FtrProviderContext) => { expect(body.data.length).to.eql(1); // should have only one length to the data set, otherwise we have duplicates or the tags were removed and that is incredibly bad. const bodyToCompare = removeServerGeneratedProperties(body.data[0]); - const expected = getSimpleRuleOutputWithWebHookAction(`${bodyToCompare.actions?.[0].id}`); + const expected = getSimpleRuleOutputWithWebHookAction( + `${bodyToCompare.actions?.[0].id}`, + `${bodyToCompare.actions?.[0].uuid}` + ); expect(bodyToCompare.actions).to.eql(expected.actions); expect(bodyToCompare.immutable).to.be(true); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/legacy_actions_migrations.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/legacy_actions_migrations.ts index ad6e45954e06a..ac187485c4509 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/legacy_actions_migrations.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/legacy_actions_migrations.ts @@ -121,6 +121,7 @@ export default ({ getService }: FtrProviderContext) => { subject: 'Test Actions', to: ['test@test.com'], }, + uuid: ruleSO?.alert.actions[0].uuid, }, ]); expect(ruleSO?.alert.throttle).to.eql(null); @@ -179,6 +180,7 @@ export default ({ getService }: FtrProviderContext) => { }, actionRef: 'action_0', group: 'default', + uuid: ruleSO?.alert.actions[0].uuid, }, { actionTypeId: '.slack', @@ -187,6 +189,7 @@ export default ({ getService }: FtrProviderContext) => { }, actionRef: 'action_1', group: 'default', + uuid: ruleSO?.alert.actions[1].uuid, }, ]); expect(ruleSO?.alert.throttle).to.eql('1h'); @@ -249,6 +252,7 @@ export default ({ getService }: FtrProviderContext) => { subject: 'Test Actions', to: ['test@test.com'], }, + uuid: ruleSO?.alert.actions[0].uuid, }, ]); expect(ruleSO?.alert.throttle).to.eql('1d'); @@ -306,6 +310,7 @@ export default ({ getService }: FtrProviderContext) => { subject: 'Test Actions', to: ['test@test.com'], }, + uuid: ruleSO?.alert.actions[0].uuid, }, ]); expect(ruleSO?.alert.throttle).to.eql('7d'); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules.ts index 2ec13365eb1d1..7137c0ab342f5 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules.ts @@ -359,6 +359,7 @@ export default ({ getService }: FtrProviderContext) => { .send({ id: rule.id, enabled: false }) .expect(200); + const bodyToCompare = removeServerGeneratedProperties(patchResponse.body); const outputRule = getSimpleRuleOutput(); outputRule.actions = [ { @@ -369,10 +370,11 @@ export default ({ getService }: FtrProviderContext) => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: bodyToCompare.actions[0].uuid, }, ]; outputRule.throttle = '1h'; - const bodyToCompare = removeServerGeneratedProperties(patchResponse.body); + expect(bodyToCompare).to.eql(outputRule); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules_bulk.ts index b844e9500e126..0f9129ae8316f 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/patch_rules_bulk.ts @@ -181,6 +181,7 @@ export default ({ getService }: FtrProviderContext) => { // @ts-expect-error body.forEach((response) => { + const bodyToCompare = removeServerGeneratedProperties(response); const outputRule = getSimpleRuleOutput(response.rule_id, false); outputRule.actions = [ { @@ -191,10 +192,10 @@ export default ({ getService }: FtrProviderContext) => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: bodyToCompare.actions[0].uuid, }, ]; outputRule.throttle = '1h'; - const bodyToCompare = removeServerGeneratedProperties(response); expect(bodyToCompare).to.eql(outputRule); }); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/perform_bulk_action.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/perform_bulk_action.ts index 13f1f99fc3b23..cc2b17015a5a4 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/perform_bulk_action.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/perform_bulk_action.ts @@ -173,6 +173,7 @@ export default ({ getService }: FtrProviderContext): void => { params: { body: '{"test":"a default action"}', }, + uuid: rule.actions[0].uuid, }, ], }); @@ -325,6 +326,7 @@ export default ({ getService }: FtrProviderContext): void => { params: { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: ruleBody.actions[0].uuid, }, ]); }); @@ -394,6 +396,7 @@ export default ({ getService }: FtrProviderContext): void => { params: { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: ruleBody.actions[0].uuid, }, ]); }); @@ -484,6 +487,7 @@ export default ({ getService }: FtrProviderContext): void => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: rule.actions[0].uuid, }, ]); }); @@ -1113,6 +1117,7 @@ export default ({ getService }: FtrProviderContext): void => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: setTagsRule.actions[0].uuid, }, ]); }); @@ -1396,6 +1401,7 @@ export default ({ getService }: FtrProviderContext): void => { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: body.attributes.results.updated[0].actions[0].uuid, }, ]; @@ -1452,6 +1458,7 @@ export default ({ getService }: FtrProviderContext): void => { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: body.attributes.results.updated[0].actions[0].uuid, }, ]; @@ -1544,6 +1551,7 @@ export default ({ getService }: FtrProviderContext): void => { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: body.attributes.results.updated[0].actions[0].uuid, }, ]; @@ -1598,11 +1606,12 @@ export default ({ getService }: FtrProviderContext): void => { .expect(200); const expectedRuleActions = [ - defaultRuleAction, + { ...defaultRuleAction, uuid: body.attributes.results.updated[0].actions[0].uuid }, { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: body.attributes.results.updated[0].actions[1].uuid, }, ]; @@ -1665,11 +1674,12 @@ export default ({ getService }: FtrProviderContext): void => { .expect(200); const expectedRuleActions = [ - defaultRuleAction, + { ...defaultRuleAction, uuid: body.attributes.results.updated[0].actions[0].uuid }, { ...slackConnectorMockProps, id: slackConnector.id, action_type_id: '.slack', + uuid: body.attributes.results.updated[0].actions[1].uuid, }, ]; @@ -1719,12 +1729,16 @@ export default ({ getService }: FtrProviderContext): void => { .expect(200); // Check that the updated rule is returned with the response - expect(body.attributes.results.updated[0].actions).to.eql([defaultRuleAction]); + expect(body.attributes.results.updated[0].actions).to.eql([ + { ...defaultRuleAction, uuid: createdRule.actions[0].uuid }, + ]); // Check that the updates have been persisted const { body: readRule } = await fetchRule(ruleId).expect(200); - expect(readRule.actions).to.eql([defaultRuleAction]); + expect(readRule.actions).to.eql([ + { ...defaultRuleAction, uuid: createdRule.actions[0].uuid }, + ]); }); it('should change throttle if actions list in payload is empty', async () => { @@ -1816,6 +1830,7 @@ export default ({ getService }: FtrProviderContext): void => { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: editedRule.actions[0].uuid, }, ]); // version of prebuilt rule should not change @@ -1829,6 +1844,7 @@ export default ({ getService }: FtrProviderContext): void => { ...webHookActionMock, id: webHookConnector.id, action_type_id: '.webhook', + uuid: readRule.actions[0].uuid, }, ]); expect(prebuiltRule.version).to.be(readRule.version); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/read_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/read_rules.ts index 5f03ce094e95e..0bdf609276f09 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/read_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/read_rules.ts @@ -135,7 +135,7 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare = removeServerGeneratedProperties(body); const ruleWithActions: ReturnType = { ...getSimpleRuleOutput(), - actions: [action], + actions: [{ ...action, uuid: bodyToCompare.actions[0].uuid }], throttle: 'rule', }; expect(bodyToCompare).to.eql(ruleWithActions); @@ -174,7 +174,7 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare = removeServerGeneratedProperties(body); const ruleWithActions: ReturnType = { ...getSimpleRuleOutput(), - actions: [action], + actions: [{ ...action, uuid: bodyToCompare.actions[0].uuid }], throttle: '1h', // <-- throttle makes this a scheduled action }; expect(bodyToCompare).to.eql(ruleWithActions); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules.ts index a33aacd26bb8a..d92261c5bb344 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules.ts @@ -229,6 +229,8 @@ export default ({ getService }: FtrProviderContext) => { .send(updatedRule) .expect(200); + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + const outputRule = getSimpleRuleOutputWithoutRuleId(); outputRule.name = 'some other name'; outputRule.version = 2; @@ -241,10 +243,11 @@ export default ({ getService }: FtrProviderContext) => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: bodyToCompare.actions![0].uuid, }, ]; outputRule.throttle = '1d'; - const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(outputRule); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules_bulk.ts index 04f3eb2536a41..3aafa81aa9716 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/update_rules_bulk.ts @@ -166,6 +166,7 @@ export default ({ getService }: FtrProviderContext) => { .expect(200); body.forEach((response) => { + const bodyToCompare = removeServerGeneratedProperties(response); const outputRule = getSimpleRuleOutput(response.rule_id); outputRule.name = 'some other name'; outputRule.version = 2; @@ -178,10 +179,11 @@ export default ({ getService }: FtrProviderContext) => { message: 'Hourly\nRule {{context.rule.name}} generated {{state.signals_count}} alerts', }, + uuid: bodyToCompare.actions[0].uuid, }, ]; outputRule.throttle = '1d'; - const bodyToCompare = removeServerGeneratedProperties(response); + expect(bodyToCompare).to.eql(outputRule); }); }); diff --git a/x-pack/test/detection_engine_api_integration/utils/get_simple_rule_output_with_web_hook_action.ts b/x-pack/test/detection_engine_api_integration/utils/get_simple_rule_output_with_web_hook_action.ts index c96537bfd0813..25776fefd5687 100644 --- a/x-pack/test/detection_engine_api_integration/utils/get_simple_rule_output_with_web_hook_action.ts +++ b/x-pack/test/detection_engine_api_integration/utils/get_simple_rule_output_with_web_hook_action.ts @@ -9,7 +9,8 @@ import { getSimpleRuleOutput } from './get_simple_rule_output'; import { RuleWithoutServerGeneratedProperties } from './remove_server_generated_properties'; export const getSimpleRuleOutputWithWebHookAction = ( - actionId: string + actionId: string, + uuid: string ): RuleWithoutServerGeneratedProperties => ({ ...getSimpleRuleOutput(), throttle: 'rule', @@ -21,6 +22,7 @@ export const getSimpleRuleOutputWithWebHookAction = ( params: { body: '{}', }, + uuid, }, ], }); diff --git a/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/simple_down_alert.ts b/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/simple_down_alert.ts index a0e041996f4bc..4064a8a6b7ae2 100644 --- a/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/simple_down_alert.ts +++ b/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/uptime/simple_down_alert.ts @@ -100,6 +100,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { message: MonitorStatusTranslations.defaultRecoveryMessage, }, id: 'my-slack1', + uuid: actions[0].uuid, }, { actionTypeId: '.slack', @@ -108,6 +109,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { message: MonitorStatusTranslations.defaultActionMessage, }, id: 'my-slack1', + uuid: actions[1].uuid, }, ]); expect(alertTypeId).to.eql('xpack.uptime.alerts.monitorStatus'); From 7be9b501942dd61e0a43e5776ae48c04f10dba97 Mon Sep 17 00:00:00 2001 From: Marco Antonio Ghiani Date: Wed, 22 Feb 2023 15:39:14 +0100 Subject: [PATCH 27/31] [Infrastructure UI] Add Alerts tab into Hosts View (#149579) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📓 Summary Closes [#917](https://github.com/elastic/obs-infraobs-team/issues/917) This PR integrates the AlertsSummary and AlertsTable components into the Hosts view, reusing most of the code from the `observability` plugin. The integration of these components will provide a comprehensive overview of alerts related to hosts in the Hosts view. By default, all the Inventory alerts will be shown, but based on the applied query, filters, and time range, the alerts tab will only show alerts related to the filtered hosts. This implementation required some work on the `rule_registry` plugin, with the implementation of a new `GET _alerts_count` endpoint that will serve the count of the active/recovered alerts. This endpoint is implemented there since most of the logic regarding alerts was already defined in the [alerts_client.ts](https://github.com/elastic/kibana/blob/43ea5e356e7558fe659cbb600d44c3631425ea93/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts) file. ## 👨‍💻 Implementation details - Since the mappings for the alerts summary and table doesn't match the alerts one, we have to manually build a query filter for the alerts starting from the `snapshot` API response with the returned hosts. This is not optimal since it requires to sequentially trigger the Hosts metrics and the Alerts request and could generate performance issues when querying a large dataset, so we'll work out on optimizations with another epic. - The tabs rendering logic has been switched to a controlled rendering, removing the existing usage of `EuiTabbedContent` in favour of `EuiTabs`+`EuiTab`. To avoid heavy re-renders and repeated requests, the most performing approach of implementing the tabs content results in keeping in memory into the DOM the already visited tabs, giving a better responsiveness while navigating between tabs. The rendering flow is: - Render on DOM the first tab content, don't mount the others (prevent API and additional runtime on tabs that won't possibly be opened) - If a new tab is clicked, render its content and **hide** the other tab content, still keeping it in the DOM. - In case of switching back to another tab, hide all the others and make visible only the currently selected. - A new `useAlertsCount` hook is introduced to handle the `_alerts_count` data fetching. - A new `useAlertsQuery` hook is introduced to generate the different queries used to fetch the alerts count and the alerts summary/table. - The `useHostViewContext` hook has been refactored to have a simpler API. ## 🚧 Next steps - [[Infrastructure UI] Store selected tab as url state in Hosts View#150856](https://github.com/elastic/kibana/issues/150856) - [[Infrastructure UI] Add functional tests for Hosts Alerts tab#150741](https://github.com/elastic/kibana/issues/150741) ## 🧪 Testing Navigate to the Hosts View page, scroll down to the tabs section and play with the Alerts tab. https://user-images.githubusercontent.com/34506779/217485112-711fec51-6372-4def-90dc-887f9a9cc64e.mp4 --------- Co-authored-by: Marco Antonio Ghiani Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/infra/kibana.jsonc | 20 +-- .../public/components/height_retainer.tsx | 26 ++++ .../public/hooks/use_alerts_count.test.ts | 127 ++++++++++++++++++ .../infra/public/hooks/use_alerts_count.ts | 112 +++++++++++++++ .../hosts/components/hosts_container.tsx | 11 +- .../metrics/hosts/components/hosts_table.tsx | 42 +----- .../components/kpi_charts/hosts_tile.tsx | 6 +- .../tabs/alerts/alerts_status_filter.tsx | 54 ++++++++ .../tabs/alerts/alerts_tab_content.tsx | 115 ++++++++++++++++ .../hosts/components/tabs/alerts/index.ts | 8 ++ .../components/tabs/alerts_tab_badge.tsx | 44 ++++++ .../metrics/hosts/components/tabs/config.ts | 20 +++ .../components/tabs/metrics/metrics_grid.tsx | 6 +- .../metrics/hosts/components/tabs/tabs.tsx | 86 ++++++++---- .../public/pages/metrics/hosts/constants.ts | 41 ++++++ .../metrics/hosts/hooks/use_alerts_query.ts | 88 ++++++++++++ .../metrics/hosts/hooks/use_hosts_view.ts | 104 ++++++++------ .../infra/public/pages/metrics/hosts/types.ts | 25 ++++ x-pack/plugins/infra/public/types.ts | 18 ++- x-pack/plugins/infra/tsconfig.json | 1 + x-pack/plugins/observability/public/index.ts | 3 + .../render_cell_value/render_cell_value.tsx | 12 +- .../containers/overview_page/helpers/index.ts | 2 +- 23 files changed, 831 insertions(+), 140 deletions(-) create mode 100644 x-pack/plugins/infra/public/components/height_retainer.tsx create mode 100644 x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts create mode 100644 x-pack/plugins/infra/public/hooks/use_alerts_count.ts create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/types.ts diff --git a/x-pack/plugins/infra/kibana.jsonc b/x-pack/plugins/infra/kibana.jsonc index bb0e19db45e97..88b8384c7eb18 100644 --- a/x-pack/plugins/infra/kibana.jsonc +++ b/x-pack/plugins/infra/kibana.jsonc @@ -12,19 +12,23 @@ "infra" ], "requiredPlugins": [ - "share", - "features", - "usageCollection", - "embeddable", + "alerting", + "cases", + "charts", "data", "dataViews", - "visTypeTimeseries", - "alerting", + "embeddable", + "features", "lens", - "triggersActionsUi", "observability", "ruleRegistry", - "unifiedSearch" + "security", + "share", + "spaces", + "triggersActionsUi", + "unifiedSearch", + "usageCollection", + "visTypeTimeseries", ], "optionalPlugins": [ "spaces", diff --git a/x-pack/plugins/infra/public/components/height_retainer.tsx b/x-pack/plugins/infra/public/components/height_retainer.tsx new file mode 100644 index 0000000000000..d4e20bb36f4dc --- /dev/null +++ b/x-pack/plugins/infra/public/components/height_retainer.tsx @@ -0,0 +1,26 @@ +/* + * 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, { useLayoutEffect, useRef } from 'react'; + +export function HeightRetainer( + props: React.DetailedHTMLProps, HTMLDivElement> +) { + const containerElement = useRef(null); + const minHeight = useRef(0); + + useLayoutEffect(() => { + if (containerElement.current) { + const currentHeight = containerElement.current.clientHeight; + if (minHeight.current < currentHeight) { + minHeight.current = currentHeight; + } + } + }); + + return
; +} diff --git a/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts b/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts new file mode 100644 index 0000000000000..2b2dc755c94c1 --- /dev/null +++ b/x-pack/plugins/infra/public/hooks/use_alerts_count.test.ts @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { renderHook } from '@testing-library/react-hooks'; +import { ALERT_STATUS, ValidFeatureId } from '@kbn/rule-data-utils'; + +import { useAlertsCount } from './use_alerts_count'; +import { KibanaReactContextValue, useKibana } from '@kbn/kibana-react-plugin/public'; +import { InfraClientStartDeps } from '../types'; +import { coreMock } from '@kbn/core/public/mocks'; +import { CoreStart } from '@kbn/core/public'; + +const mockedAlertsCountResponse = { + aggregations: { + count: { + doc_count_error_upper_bound: 0, + sum_other_doc_count: 0, + buckets: [ + { + key: 'active', + doc_count: 2, + }, + { + key: 'recovered', + doc_count: 20, + }, + ], + }, + }, +}; + +const expectedResult = { + activeAlertCount: 2, + recoveredAlertCount: 20, +}; + +jest.mock('@kbn/kibana-react-plugin/public'); +const useKibanaMock = useKibana as jest.MockedFunction; + +const mockedPostAPI = jest.fn(); + +const mockUseKibana = () => { + useKibanaMock.mockReturnValue({ + services: { + ...coreMock.createStart(), + http: { post: mockedPostAPI }, + }, + } as unknown as KibanaReactContextValue & Partial>); +}; + +describe('useAlertsCount', () => { + const featureIds: ValidFeatureId[] = ['infrastructure']; + + beforeAll(() => { + mockUseKibana(); + }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should return the mocked data from API', async () => { + mockedPostAPI.mockResolvedValue(mockedAlertsCountResponse); + + const { result, waitForNextUpdate } = renderHook(() => useAlertsCount({ featureIds })); + + expect(result.current.loading).toBe(true); + expect(result.current.alertsCount).toEqual(undefined); + + await waitForNextUpdate(); + + const { alertsCount, loading, error } = result.current; + expect(alertsCount).toEqual(expectedResult); + expect(loading).toBeFalsy(); + expect(error).toBeFalsy(); + }); + + it('should call API with correct input', async () => { + const ruleId = 'c95bc120-1d56-11ed-9cc7-e7214ada1128'; + const query = { + term: { + 'kibana.alert.rule.uuid': ruleId, + }, + }; + mockedPostAPI.mockResolvedValue(mockedAlertsCountResponse); + + const { waitForNextUpdate } = renderHook(() => + useAlertsCount({ + featureIds, + query, + }) + ); + + await waitForNextUpdate(); + + const body = JSON.stringify({ + aggs: { + count: { + terms: { field: ALERT_STATUS }, + }, + }, + feature_ids: featureIds, + query, + size: 0, + }); + + expect(mockedPostAPI).toHaveBeenCalledWith( + '/internal/rac/alerts/find', + expect.objectContaining({ body }) + ); + }); + + it('should return error if API call fails', async () => { + const error = new Error('Fetch Alerts Count Failed'); + mockedPostAPI.mockRejectedValueOnce(error); + + const { result, waitForNextUpdate } = renderHook(() => useAlertsCount({ featureIds })); + + await waitForNextUpdate(); + + expect(result.current.error?.message).toMatch(error.message); + }); +}); diff --git a/x-pack/plugins/infra/public/hooks/use_alerts_count.ts b/x-pack/plugins/infra/public/hooks/use_alerts_count.ts new file mode 100644 index 0000000000000..7d05a275d6eae --- /dev/null +++ b/x-pack/plugins/infra/public/hooks/use_alerts_count.ts @@ -0,0 +1,112 @@ +/* + * 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 { useEffect, useRef } from 'react'; +import useAsyncFn from 'react-use/lib/useAsyncFn'; + +import { BASE_RAC_ALERTS_API_PATH } from '@kbn/rule-registry-plugin/common/constants'; +import { estypes } from '@elastic/elasticsearch'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import type { HttpSetup } from '@kbn/core/public'; +import { ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED, ValidFeatureId } from '@kbn/rule-data-utils'; + +import { InfraClientCoreStart } from '../types'; + +interface UseAlertsCountProps { + featureIds: ValidFeatureId[]; + query?: estypes.QueryDslQueryContainer; +} + +interface FetchAlertsCountParams { + featureIds: ValidFeatureId[]; + query?: estypes.QueryDslQueryContainer; + http: HttpSetup; + signal: AbortSignal; +} + +interface AlertsCount { + activeAlertCount: number; + recoveredAlertCount: number; +} + +const ALERT_STATUS = 'kibana.alert.status'; + +export function useAlertsCount({ featureIds, query }: UseAlertsCountProps) { + const { http } = useKibana().services; + + const abortCtrlRef = useRef(new AbortController()); + + const [state, refetch] = useAsyncFn( + () => { + abortCtrlRef.current.abort(); + abortCtrlRef.current = new AbortController(); + return fetchAlertsCount({ + featureIds, + query, + http, + signal: abortCtrlRef.current.signal, + }); + }, + [featureIds, query, http], + { loading: true } + ); + + useEffect(() => { + refetch(); + }, [refetch]); + + const { value: alertsCount, error, loading } = state; + + return { + alertsCount, + error, + loading, + refetch, + }; +} + +async function fetchAlertsCount({ + featureIds, + http, + query, + signal, +}: FetchAlertsCountParams): Promise { + return http + .post>>(`${BASE_RAC_ALERTS_API_PATH}/find`, { + signal, + body: JSON.stringify({ + aggs: { + count: { + terms: { field: ALERT_STATUS }, + }, + }, + feature_ids: featureIds, + query, + size: 0, + }), + }) + .then(extractAlertsCount); +} + +const extractAlertsCount = (response: estypes.SearchResponse>) => { + const countAggs = response.aggregations?.count as estypes.AggregationsMultiBucketAggregateBase; + + const countBuckets = (countAggs?.buckets as estypes.AggregationsStringTermsBucketKeys[]) ?? []; + + return countBuckets.reduce( + (counts, bucket) => { + if (bucket.key === ALERT_STATUS_ACTIVE) { + counts.activeAlertCount = bucket.doc_count; + } else if (bucket.key === ALERT_STATUS_RECOVERED) { + counts.recoveredAlertCount = bucket.doc_count; + } + + return counts; + }, + { activeAlertCount: 0, recoveredAlertCount: 0 } + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx index beacf9f032619..145de0edede12 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_container.tsx @@ -15,6 +15,7 @@ import { HostsTable } from './hosts_table'; import { HostsViewProvider } from '../hooks/use_hosts_view'; import { KPICharts } from './kpi_charts/kpi_charts'; import { Tabs } from './tabs/tabs'; +import { AlertsQueryProvider } from '../hooks/use_alerts_query'; export const HostContainer = () => { const { metricsDataView, isDataViewLoading, hasFailedLoadingDataView } = @@ -38,14 +39,16 @@ export const HostContainer = () => { - + - + - - + + + + diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx index 7c3441809b9ea..00b86550a2adc 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_table.tsx @@ -5,59 +5,23 @@ * 2.0. */ -import React, { useCallback, useEffect } from 'react'; +import React, { useCallback } from 'react'; import { EuiInMemoryTable } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { isEqual } from 'lodash'; import { NoData } from '../../../../components/empty_states'; import { InfraLoadingPanel } from '../../../../components/loading'; import { useHostsTable } from '../hooks/use_hosts_table'; -import { useSnapshot } from '../../inventory_view/hooks/use_snaphot'; -import type { SnapshotMetricType } from '../../../../../common/inventory_models/types'; import { useTableProperties } from '../hooks/use_table_properties_url_state'; import { useHostsViewContext } from '../hooks/use_hosts_view'; import { useUnifiedSearchContext } from '../hooks/use_unified_search'; -const HOST_TABLE_METRICS: Array<{ type: SnapshotMetricType }> = [ - { type: 'rx' }, - { type: 'tx' }, - { type: 'memory' }, - { type: 'cpu' }, - { type: 'diskLatency' }, - { type: 'memoryTotal' }, -]; - export const HostsTable = () => { - const { baseRequest, setHostViewState, hostViewState } = useHostsViewContext(); + const { hostNodes, loading } = useHostsViewContext(); const { onSubmit, unifiedSearchDateRange } = useUnifiedSearchContext(); const [properties, setProperties] = useTableProperties(); - // Snapshot endpoint internally uses the indices stored in source.configuration.metricAlias. - // For the Unified Search, we create a data view, which for now will be built off of source.configuration.metricAlias too - // if we introduce data view selection, we'll have to change this hook and the endpoint to accept a new parameter for the indices - const { loading, nodes, error } = useSnapshot({ - ...baseRequest, - metrics: HOST_TABLE_METRICS, - }); - - const { columns, items } = useHostsTable(nodes, { time: unifiedSearchDateRange }); - - useEffect(() => { - if (hostViewState.loading !== loading || nodes.length !== hostViewState.totalHits) { - setHostViewState({ - loading, - totalHits: nodes.length, - error, - }); - } - }, [ - error, - hostViewState.loading, - hostViewState.totalHits, - loading, - nodes.length, - setHostViewState, - ]); + const { columns, items } = useHostsTable(hostNodes, { time: unifiedSearchDateRange }); const noData = items.length === 0; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx index 8322f7ba00b75..b6973327101f0 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpi_charts/hosts_tile.tsx @@ -10,15 +10,15 @@ import { useHostsViewContext } from '../../hooks/use_hosts_view'; import { type ChartBaseProps, KPIChart } from './kpi_chart'; export const HostsTile = ({ type, ...props }: ChartBaseProps) => { - const { hostViewState } = useHostsViewContext(); + const { hostNodes, loading } = useHostsViewContext(); return ( ); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx new file mode 100644 index 0000000000000..9fb294cdde864 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_status_filter.tsx @@ -0,0 +1,54 @@ +/* + * 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 { EuiButtonGroup, EuiButtonGroupOptionProps } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { ACTIVE_ALERTS, ALL_ALERTS, RECOVERED_ALERTS } from '../../../constants'; +import { AlertStatus } from '../../../types'; +export interface AlertStatusFilterProps { + status: AlertStatus; + onChange: (id: AlertStatus) => void; +} + +const options: EuiButtonGroupOptionProps[] = [ + { + id: ALL_ALERTS.status, + label: ALL_ALERTS.label, + value: ALL_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-show-all-button', + }, + { + id: ACTIVE_ALERTS.status, + label: ACTIVE_ALERTS.label, + value: ACTIVE_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-active-button', + }, + { + id: RECOVERED_ALERTS.status, + label: RECOVERED_ALERTS.label, + value: RECOVERED_ALERTS.query, + 'data-test-subj': 'hostsView-alert-status-filter-recovered-button', + }, +]; + +export function AlertsStatusFilter({ status, onChange }: AlertStatusFilterProps) { + return ( + onChange(id as AlertStatus)} + /> + ); +} + +// eslint-disable-next-line import/no-default-export +export default AlertsStatusFilter; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx new file mode 100644 index 0000000000000..1974782c0ba42 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/alerts_tab_content.tsx @@ -0,0 +1,115 @@ +/* + * 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, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { + calculateTimeRangeBucketSize, + getAlertSummaryTimeRange, + useTimeBuckets, +} from '@kbn/observability-plugin/public'; +import { AlertConsumers } from '@kbn/rule-data-utils'; +import { TimeRange } from '@kbn/es-query'; +import { HeightRetainer } from '../../../../../../components/height_retainer'; +import type { InfraClientCoreStart, InfraClientStartDeps } from '../../../../../../types'; +import { useUnifiedSearchContext } from '../../../hooks/use_unified_search'; + +import { + ALERTS_PER_PAGE, + ALERTS_TABLE_ID, + casesFeatures, + casesOwner, + DEFAULT_DATE_FORMAT, + DEFAULT_INTERVAL, + infraAlertFeatureIds, +} from '../config'; +import { useAlertsQuery } from '../../../hooks/use_alerts_query'; +import AlertsStatusFilter from './alerts_status_filter'; + +export const AlertsTabContent = React.memo(() => { + const { services } = useKibana(); + + const { alertStatus, setAlertStatus, alertsEsQueryByStatus } = useAlertsQuery(); + + const { unifiedSearchDateRange } = useUnifiedSearchContext(); + + const summaryTimeRange = useSummaryTimeRange(unifiedSearchDateRange); + + const { application, cases, charts, triggersActionsUi } = services; + + const { + alertsTableConfigurationRegistry, + getAlertsStateTable: AlertsStateTable, + getAlertSummaryWidget: AlertSummaryWidget, + } = triggersActionsUi; + + const CasesContext = cases.ui.getCasesContext(); + const uiCapabilities = application?.capabilities; + const casesCapabilities = cases.helpers.getUICapabilities(uiCapabilities.observabilityCases); + + const chartThemes = { + theme: charts.theme.useChartsTheme(), + baseTheme: charts.theme.useChartsBaseTheme(), + }; + + return ( + + + + + + + + + + + {alertsEsQueryByStatus && ( + + + + + + )} + + + ); +}); + +const useSummaryTimeRange = (unifiedSearchDateRange: TimeRange) => { + const timeBuckets = useTimeBuckets(); + + const bucketSize = useMemo( + () => calculateTimeRangeBucketSize(unifiedSearchDateRange, timeBuckets), + [unifiedSearchDateRange, timeBuckets] + ); + + return getAlertSummaryTimeRange( + unifiedSearchDateRange, + bucketSize?.intervalString || DEFAULT_INTERVAL, + bucketSize?.dateFormat || DEFAULT_DATE_FORMAT + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/index.ts new file mode 100644 index 0000000000000..a249221b8b159 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts/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 * from './alerts_tab_content'; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx new file mode 100644 index 0000000000000..2e28e358e29ab --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/alerts_tab_badge.tsx @@ -0,0 +1,44 @@ +/* + * 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 { EuiIcon, EuiLoadingSpinner, EuiNotificationBadge, EuiToolTip } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { useAlertsCount } from '../../../../../hooks/use_alerts_count'; +import { infraAlertFeatureIds } from './config'; +import { useAlertsQuery } from '../../hooks/use_alerts_query'; + +export const AlertsTabBadge = () => { + const { alertsEsQuery } = useAlertsQuery(); + + const { alertsCount, loading, error } = useAlertsCount({ + featureIds: infraAlertFeatureIds, + query: alertsEsQuery, + }); + + if (loading) { + return ; + } + + if (error) { + return ( + + + + ); + } + + return ( + + {alertsCount?.activeAlertCount} + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts new file mode 100644 index 0000000000000..2c8af4fa4c76b --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/config.ts @@ -0,0 +1,20 @@ +/* + * 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 { AlertConsumers } from '@kbn/rule-data-utils'; +import type { ValidFeatureId } from '@kbn/rule-data-utils'; + +export const ALERTS_PER_PAGE = 10; +export const ALERTS_TABLE_ID = 'xpack.infra.hosts.alerts.table'; + +export const INFRA_ALERT_FEATURE_ID = 'infrastructure'; +export const infraAlertFeatureIds: ValidFeatureId[] = [AlertConsumers.INFRASTRUCTURE]; +export const casesFeatures = { alerts: { sync: false } }; +export const casesOwner = [INFRA_ALERT_FEATURE_ID]; + +export const DEFAULT_INTERVAL = '60s'; +export const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm'; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx index fe9ef7711bb17..619dee233aea1 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx @@ -57,7 +57,7 @@ const CHARTS_IN_ORDER: Array & { fullRo }, ]; -export const MetricsGrid = () => { +export const MetricsGrid = React.memo(() => { return ( @@ -79,7 +79,7 @@ export const MetricsGrid = () => { {CHARTS_IN_ORDER.map(({ fullRow, ...chartProp }) => ( - + ))} @@ -87,4 +87,4 @@ export const MetricsGrid = () => { ); -}; +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx index dc449327a21de..7b999175e79fa 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/tabs.tsx @@ -5,37 +5,71 @@ * 2.0. */ -import React from 'react'; -import { EuiTabbedContent, EuiSpacer, type EuiTabbedContentTab } from '@elastic/eui'; +import React, { useRef, useState } from 'react'; +import { EuiTabs, EuiTab, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { MetricsGrid } from './metrics/metrics_grid'; +import { AlertsTabContent } from './alerts'; + +import { AlertsTabBadge } from './alerts_tab_badge'; +import { TabIds } from '../../types'; + +const tabs = [ + { + id: TabIds.METRICS, + name: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.title', { + defaultMessage: 'Metrics', + }), + 'data-test-subj': 'hostsView-tabs-metrics', + }, + { + id: TabIds.ALERTS, + name: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.title', { + defaultMessage: 'Alerts', + }), + append: , + 'data-test-subj': 'hostsView-tabs-alerts', + }, +]; + +const initialRenderedTabsSet = new Set([tabs[0].id]); + +export const Tabs = () => { + // This map allow to keep track of which tabs content have been rendered the first time. + // We need it in order to load a tab content only if it gets clicked, and then keep it in the DOM for performance improvement. + const renderedTabsSet = useRef(initialRenderedTabsSet); + + const [selectedTabId, setSelectedTabId] = useState(tabs[0].id); + + const tabEntries = tabs.map((tab, index) => ( + { + renderedTabsSet.current.add(tab.id); // On a tab click, mark the tab content as allowed to be rendered + setSelectedTabId(tab.id); + }} + isSelected={tab.id === selectedTabId} + append={tab.append} + > + {tab.name} + + )); -interface WrapperProps { - children: React.ReactElement; -} -const Wrapper = ({ children }: WrapperProps) => { return ( <> - - {children} + {tabEntries} + + {renderedTabsSet.current.has(TabIds.METRICS) && ( + + )} + {renderedTabsSet.current.has(TabIds.ALERTS) && ( + + )} ); }; -export const Tabs = () => { - const tabs: EuiTabbedContentTab[] = [ - { - id: 'metrics', - name: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.title', { - defaultMessage: 'Metrics', - }), - 'data-test-subj': 'hostsView-tabs-metrics', - content: ( - - - - ), - }, - ]; - - return ; -}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts new file mode 100644 index 0000000000000..3363a307061f2 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts @@ -0,0 +1,41 @@ +/* + * 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'; +import { ALERT_STATUS, ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED } from '@kbn/rule-data-utils'; +import { AlertStatusFilter } from './types'; + +export const ALERT_STATUS_ALL = 'all'; + +export const ALL_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_ALL, + query: '', + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.showAll', { + defaultMessage: 'Show all', + }), +}; + +export const ACTIVE_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_ACTIVE, + query: `${ALERT_STATUS}: "${ALERT_STATUS_ACTIVE}"`, + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.active', { + defaultMessage: 'Active', + }), +}; + +export const RECOVERED_ALERTS: AlertStatusFilter = { + status: ALERT_STATUS_RECOVERED, + query: `${ALERT_STATUS}: "${ALERT_STATUS_RECOVERED}"`, + label: i18n.translate('xpack.infra.hostsViewPage.tabs.alerts.alertStatusFilter.recovered', { + defaultMessage: 'Recovered', + }), +}; + +export const ALERT_STATUS_QUERY = { + [ACTIVE_ALERTS.status]: ACTIVE_ALERTS.query, + [RECOVERED_ALERTS.status]: RECOVERED_ALERTS.query, +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts new file mode 100644 index 0000000000000..947cfe28d4d0c --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_alerts_query.ts @@ -0,0 +1,88 @@ +/* + * 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 { useCallback, useMemo, useState } from 'react'; +import createContainer from 'constate'; +import { getTime } from '@kbn/data-plugin/common'; +import { TIMESTAMP } from '@kbn/rule-data-utils'; +import { buildEsQuery, Filter, Query } from '@kbn/es-query'; +import { SnapshotNode } from '../../../../../common/http_api'; +import { useUnifiedSearchContext } from './use_unified_search'; +import { HostsState } from './use_unified_search_url_state'; +import { useHostsView } from './use_hosts_view'; +import { AlertStatus } from '../types'; +import { ALERT_STATUS_QUERY } from '../constants'; + +export const useAlertsQueryImpl = () => { + const { hostNodes } = useHostsView(); + + const { unifiedSearchDateRange } = useUnifiedSearchContext(); + + const [alertStatus, setAlertStatus] = useState('all'); + + const getAlertsEsQuery = useCallback( + (status?: AlertStatus) => + createAlertsEsQuery({ dateRange: unifiedSearchDateRange, hostNodes, status }), + [hostNodes, unifiedSearchDateRange] + ); + + // Regenerate the query when status change even if is not used. + // eslint-disable-next-line react-hooks/exhaustive-deps + const alertsEsQuery = useMemo(() => getAlertsEsQuery(), [getAlertsEsQuery, alertStatus]); + + const alertsEsQueryByStatus = useMemo( + () => getAlertsEsQuery(alertStatus), + [getAlertsEsQuery, alertStatus] + ); + + return { + alertStatus, + setAlertStatus, + alertsEsQuery, + alertsEsQueryByStatus, + }; +}; + +export const AlertsQueryContainer = createContainer(useAlertsQueryImpl); +export const [AlertsQueryProvider, useAlertsQuery] = AlertsQueryContainer; + +/** + * Helpers + */ +const createAlertsEsQuery = ({ + dateRange, + hostNodes, + status, +}: { + dateRange: HostsState['dateRange']; + hostNodes: SnapshotNode[]; + status?: AlertStatus; +}) => { + const alertStatusQuery = createAlertStatusQuery(status); + + const dateFilter = createDateFilter(dateRange); + const hostsFilter = createHostsFilter(hostNodes); + + const queries = alertStatusQuery ? [alertStatusQuery] : []; + const filters = [hostsFilter, dateFilter].filter(Boolean) as Filter[]; + + return buildEsQuery(undefined, queries, filters); +}; + +const createDateFilter = (date: HostsState['dateRange']) => + getTime(undefined, date, { fieldName: TIMESTAMP }); + +const createAlertStatusQuery = (status: AlertStatus = 'all'): Query | null => + ALERT_STATUS_QUERY[status] ? { query: ALERT_STATUS_QUERY[status], language: 'kuery' } : null; + +const createHostsFilter = (hosts: SnapshotNode[]): Filter => ({ + query: { + terms: { + 'host.name': hosts.map((p) => p.name), + }, + }, + meta: {}, +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts index fa259784a3d72..012dcd42fe556 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_view.ts @@ -12,61 +12,85 @@ * 2.0. */ -import { useMemo, useState } from 'react'; +import { useMemo } from 'react'; import createContainer from 'constate'; +import { BoolQuery } from '@kbn/es-query'; +import { SnapshotMetricType } from '../../../../../common/inventory_models/types'; import { useSourceContext } from '../../../../containers/metrics_source'; -import type { UseSnapshotRequest } from '../../inventory_view/hooks/use_snaphot'; +import { useSnapshot, type UseSnapshotRequest } from '../../inventory_view/hooks/use_snaphot'; import { useUnifiedSearchContext } from './use_unified_search'; +import { StringDateRangeTimestamp } from './use_unified_search_url_state'; -export interface HostViewState { - totalHits: number; - loading: boolean; - error: string | null; -} - -export const INITAL_VALUE = { - error: null, - loading: true, - totalHits: 0, -}; +const HOST_TABLE_METRICS: Array<{ type: SnapshotMetricType }> = [ + { type: 'rx' }, + { type: 'tx' }, + { type: 'memory' }, + { type: 'cpu' }, + { type: 'diskLatency' }, + { type: 'memoryTotal' }, +]; export const useHostsView = () => { const { sourceId } = useSourceContext(); const { buildQuery, getDateRangeAsTimestamp } = useUnifiedSearchContext(); - const [hostViewState, setHostViewState] = useState(INITAL_VALUE); - const baseRequest = useMemo(() => { - const esQuery = buildQuery(); - const { from, to } = getDateRangeAsTimestamp(); + const baseRequest = useMemo( + () => + createSnapshotRequest({ + dateRange: getDateRangeAsTimestamp(), + esQuery: buildQuery(), + sourceId, + }), + [buildQuery, getDateRangeAsTimestamp, sourceId] + ); - const snapshotRequest: UseSnapshotRequest = { - filterQuery: esQuery ? JSON.stringify(esQuery) : null, - metrics: [], - groupBy: [], - nodeType: 'host', - sourceId, - currentTime: to, - includeTimeseries: false, - sendRequestImmediately: true, - timerange: { - interval: '1m', - from, - to, - ignoreLookback: true, - }, - // The user might want to click on the submit button without changing the filters - // This makes sure all child components will re-render. - requestTs: Date.now(), - }; - return snapshotRequest; - }, [buildQuery, getDateRangeAsTimestamp, sourceId]); + // Snapshot endpoint internally uses the indices stored in source.configuration.metricAlias. + // For the Unified Search, we create a data view, which for now will be built off of source.configuration.metricAlias too + // if we introduce data view selection, we'll have to change this hook and the endpoint to accept a new parameter for the indices + const { + loading, + error, + nodes: hostNodes, + } = useSnapshot({ ...baseRequest, metrics: HOST_TABLE_METRICS }); return { baseRequest, - hostViewState, - setHostViewState, + loading, + error, + hostNodes, }; }; export const HostsView = createContainer(useHostsView); export const [HostsViewProvider, useHostsViewContext] = HostsView; + +/** + * Helpers + */ +const createSnapshotRequest = ({ + esQuery, + sourceId, + dateRange, +}: { + esQuery: { bool: BoolQuery } | null; + sourceId: string; + dateRange: StringDateRangeTimestamp; +}): UseSnapshotRequest => ({ + filterQuery: esQuery ? JSON.stringify(esQuery) : null, + metrics: [], + groupBy: [], + nodeType: 'host', + sourceId, + currentTime: dateRange.to, + includeTimeseries: false, + sendRequestImmediately: true, + timerange: { + interval: '1m', + from: dateRange.from, + to: dateRange.to, + ignoreLookback: true, + }, + // The user might want to click on the submit button without changing the filters + // This makes sure all child components will re-render. + requestTs: Date.now(), +}); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts new file mode 100644 index 0000000000000..08cd6ea3a56bf --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/types.ts @@ -0,0 +1,25 @@ +/* + * 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 { ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED } from '@kbn/rule-data-utils'; +import { ALERT_STATUS_ALL } from './constants'; + +export enum TabIds { + ALERTS = 'alerts', + METRICS = 'metrics', +} + +export type AlertStatus = + | typeof ALERT_STATUS_ACTIVE + | typeof ALERT_STATUS_RECOVERED + | typeof ALERT_STATUS_ALL; + +export interface AlertStatusFilter { + status: AlertStatus; + query: string; + label: string; +} diff --git a/x-pack/plugins/infra/public/types.ts b/x-pack/plugins/infra/public/types.ts index 97bf31d102558..449d993ce809a 100644 --- a/x-pack/plugins/infra/public/types.ts +++ b/x-pack/plugins/infra/public/types.ts @@ -30,6 +30,8 @@ import type { import type { SpacesPluginStart } from '@kbn/spaces-plugin/public'; import type { IStorageWrapper } from '@kbn/kibana-utils-plugin/public'; import { type TypedLensByValueInput, LensPublicStart } from '@kbn/lens-plugin/public'; +import type { ChartsPluginStart } from '@kbn/charts-plugin/public'; +import { CasesUiStart } from '@kbn/cases-plugin/public'; import type { UnwrapPromise } from '../common/utility_types'; import type { SourceProviderProps, @@ -67,19 +69,21 @@ export interface InfraClientSetupDeps { } export interface InfraClientStartDeps { + cases: CasesUiStart; + charts: ChartsPluginStart; data: DataPublicPluginStart; - unifiedSearch: UnifiedSearchPublicPluginStart; dataViews: DataViewsPublicPluginStart; - observability: ObservabilityPublicStart; - spaces?: SpacesPluginStart; - triggersActionsUi: TriggersAndActionsUIPublicPluginStart; - usageCollection: UsageCollectionStart; - ml: MlPluginStart; embeddable?: EmbeddableStart; + lens: LensPublicStart; + ml: MlPluginStart; + observability: ObservabilityPublicStart; osquery?: unknown; // OsqueryPluginStart; share: SharePluginStart; + spaces: SpacesPluginStart; storage: IStorageWrapper; - lens: LensPublicStart; + triggersActionsUi: TriggersAndActionsUIPublicPluginStart; + unifiedSearch: UnifiedSearchPublicPluginStart; + usageCollection: UsageCollectionStart; telemetry: ITelemetryClient; } diff --git a/x-pack/plugins/infra/tsconfig.json b/x-pack/plugins/infra/tsconfig.json index 22f0d5727de83..07586b6a25e1c 100644 --- a/x-pack/plugins/infra/tsconfig.json +++ b/x-pack/plugins/infra/tsconfig.json @@ -53,6 +53,7 @@ "@kbn/core-saved-objects-common", "@kbn/core-analytics-server", "@kbn/analytics-client", + "@kbn/cases-plugin", "@kbn/shared-ux-router" ], "exclude": ["target/**/*"] diff --git a/x-pack/plugins/observability/public/index.ts b/x-pack/plugins/observability/public/index.ts index fc626e302d419..27522c7b8a8c4 100644 --- a/x-pack/plugins/observability/public/index.ts +++ b/x-pack/plugins/observability/public/index.ts @@ -82,6 +82,7 @@ export { useChartTheme } from './hooks/use_chart_theme'; export { useBreadcrumbs } from './hooks/use_breadcrumbs'; export { useTheme } from './hooks/use_theme'; export { useTimeZone } from './hooks/use_time_zone'; +export { useTimeBuckets } from './hooks/use_time_buckets'; export { createUseRulesLink } from './hooks/create_use_rules_link'; export { useLinkProps, shouldHandleLinkEvent } from './hooks/use_link_props'; export type { LinkDescriptor } from './hooks/use_link_props'; @@ -118,6 +119,8 @@ export { } from './components/shared/exploratory_view/configurations/constants'; export { ExploratoryViewContextProvider } from './components/shared/exploratory_view/contexts/exploratory_view_config'; export { fromQuery, toQuery } from './utils/url'; +export { getAlertSummaryTimeRange } from './utils/alert_summary_widget'; +export { calculateTimeRangeBucketSize } from './pages/overview/containers/overview_page/helpers'; export type { NavigationSection } from './services/navigation_registry'; export { convertTo } from '../common/utils/formatters/duration'; diff --git a/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx b/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx index ebdd07ae52995..053448fedddaa 100644 --- a/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/components/render_cell_value/render_cell_value.tsx @@ -53,6 +53,8 @@ const getRenderValue = (mappedNonEcsValue: any) => { return '—'; }; +const displayCss = { display: 'contents' }; + /** * This implementation of `EuiDataGrid`'s `renderCellValue` * accepts `EuiDataGridCellValueElementProps`, plus `data` @@ -94,15 +96,7 @@ export const getRenderCellValue = ({ const alert = parseAlert(observabilityRuleTypeRegistry)(dataFieldEs); return ( - // NOTE: EuiLink automatically renders links using a