From e17ce2ef312b00c1671ea1bb59535fedbe29dd70 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 30 Sep 2022 13:19:42 -0600 Subject: [PATCH 01/51] skip failing test suite (#141782) --- .../spaces_only/apis/bulk_create.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts b/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts index 4e5059933dd74..34e18b76088f1 100644 --- a/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts +++ b/x-pack/test/saved_object_api_integration/spaces_only/apis/bulk_create.ts @@ -116,7 +116,8 @@ export default function ({ getService }: FtrProviderContext) { }); }; - describe('_bulk_create', () => { + // Failing: See https://github.com/elastic/kibana/issues/141782 + describe.skip('_bulk_create', () => { getTestScenarios([false, true]).spaces.forEach(({ spaceId, modifier: overwrite }) => { const suffix = overwrite ? ' with overwrite enabled' : ''; const tests = createTests(overwrite!, spaceId); From ed8cf20f3a075e8ef460f65a060f2b26420dcef4 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 30 Sep 2022 15:02:41 -0600 Subject: [PATCH 02/51] skip failing test suite (#142118) --- x-pack/test/functional/apps/ml/data_frame_analytics/cloning.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test/functional/apps/ml/data_frame_analytics/cloning.ts b/x-pack/test/functional/apps/ml/data_frame_analytics/cloning.ts index 7d6cc5ea9881a..a3314aabce725 100644 --- a/x-pack/test/functional/apps/ml/data_frame_analytics/cloning.ts +++ b/x-pack/test/functional/apps/ml/data_frame_analytics/cloning.ts @@ -16,6 +16,7 @@ export default function ({ getService }: FtrProviderContext) { const ml = getService('ml'); // FLAKY: https://github.com/elastic/kibana/issues/142118 + // Failing: See https://github.com/elastic/kibana/issues/142118 describe.skip('jobs cloning supported by UI form', function () { const testDataList: Array<{ suiteTitle: string; From 1b09c8268e4df1bd3f5ade13ade672eceb9ceb74 Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Fri, 30 Sep 2022 16:10:09 -0500 Subject: [PATCH 03/51] [TIP] Fix barchart legend rendering issue (#142268) * [TIP] Fix barchart legend rendering issue - set minimum width - vertically align context menu button - remove value displayed in legend --- .../indicators/components/barchart/barchart/barchart.tsx | 5 +++-- .../components/barchart/legend_action/legend_action.tsx | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/barchart/barchart.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/barchart/barchart.tsx index 2f4fecbd930a2..f15a1f2e4cd3a 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/barchart/barchart.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/barchart/barchart.tsx @@ -16,6 +16,7 @@ import type { ChartSeries } from '../../../services'; const ID = 'tiIndicator'; const DEFAULT_CHART_HEIGHT = '200px'; const DEFAULT_CHART_WIDTH = '100%'; +const DEFAULT_LEGEND_SIZE = 200; export interface IndicatorsBarChartProps { /** @@ -27,7 +28,7 @@ export interface IndicatorsBarChartProps { */ dateRange: TimeRangeBounds; /** - * Indicator field selected in the IndicatorFieldSelector component, passed to the {@link AddToTimeline} to populate the timeline. + * Indicator field selected in the IndicatorFieldSelector component, passed to AddToTimeline to populate the timeline. */ field: string; /** @@ -50,8 +51,8 @@ export const IndicatorsBarChart: VFC = ({ } /> setPopover(!isPopoverOpen)} + onClick={() => setPopover((prevIsPopoverOpen) => !prevIsPopoverOpen)} + style={{ height: '100%' }} /> } From a0d395d4a733bb640789175b347399384b966fc2 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 30 Sep 2022 22:39:27 -0600 Subject: [PATCH 04/51] [api-docs] Daily api_docs build (#142422) --- 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.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/core.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.devdocs.json | 255 ++++++++++++++++++ api_docs/data_views.mdx | 4 +- 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/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/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.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_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_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.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_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_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_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_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 +- .../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 +- .../kbn_core_injected_metadata_browser.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_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_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.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_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_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.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- 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_get_repo_files.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.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_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_kibana_manifest_schema.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_is_populated_object.mdx | 2 +- api_docs/kbn_ml_string_hash.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_source_classifier.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.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 +- ...ared_ux_avatar_user_profile_components.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 +- .../kbn_shared_ux_link_redirect_app_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_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_some_dev_log.mdx | 2 +- api_docs/kbn_sort_package_json.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_type_summarizer.mdx | 2 +- api_docs/kbn_type_summarizer_core.mdx | 2 +- api_docs/kbn_typed_react_router_config.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.devdocs.json | 157 ++++++++++- api_docs/lens.mdx | 4 +- 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/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 12 +- 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.mdx | 2 +- 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.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.mdx | 2 +- api_docs/ui_actions.devdocs.json | 15 ++ api_docs/ui_actions.mdx | 4 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_search.devdocs.json | 56 +++- api_docs/unified_search.mdx | 4 +- api_docs/unified_search_autocomplete.mdx | 4 +- 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 +- 408 files changed, 894 insertions(+), 417 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 27394a9d1337c..48d75bc3ce7cb 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: 2022-09-30 +date: 2022-10-01 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 50e964f1d4fce..ee9b4276cce64 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: 2022-09-30 +date: 2022-10-01 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 97c9deaf7e160..9d860aa24355e 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: 2022-09-30 +date: 2022-10-01 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 1d4419372cb8d..e72baca86cbf6 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: 2022-09-30 +date: 2022-10-01 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 894f1a4124006..020843029e21c 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: 2022-09-30 +date: 2022-10-01 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 a88ae007a49f1..b792f664c347f 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: 2022-09-30 +date: 2022-10-01 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 9aa4dc3dc6cbd..a343745fd134b 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: 2022-09-30 +date: 2022-10-01 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 98d04fe776c11..74326b5f4e705 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 8e0ec02de9523..6d8fcf94ddb84 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 0daa29277e4c5..f2eb1e6d668cd 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: 2022-09-30 +date: 2022-10-01 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 8794f842b3462..a7f1c3bd483c0 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 67f93229e1310..4cd830231b266 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: 2022-09-30 +date: 2022-10-01 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 e1a21c6f2cc8b..7afab612c4a7a 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: 2022-09-30 +date: 2022-10-01 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 8ba5fe4e37288..1ace57ec36bdc 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index b0885214467d7..1e2f85a3b6c6c 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 38ceacd3fae04..e3d2f1354aea8 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 99cc968190594..62deee07bd7d8 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: 2022-09-30 +date: 2022-10-01 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 f429f17719091..abecd96470ec6 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: 2022-09-30 +date: 2022-10-01 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 1b406c8cf22e8..6a49051f2936a 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: 2022-09-30 +date: 2022-10-01 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 6b45be67575ce..44fc64c6bdf41 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: 2022-09-30 +date: 2022-10-01 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 9c7512fae8261..a82d817ae1317 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: 2022-09-30 +date: 2022-10-01 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 6131baf378500..3e7214a59cc2f 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: 2022-09-30 +date: 2022-10-01 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 eb804887cbbb7..288b3ee585f51 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: 2022-09-30 +date: 2022-10-01 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 0360e887a0f14..f0c7b8022d144 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: 2022-09-30 +date: 2022-10-01 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 cf20215434912..9840337f75a70 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.devdocs.json b/api_docs/data_views.devdocs.json index c868634158667..cc6bd0a259d02 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -4164,6 +4164,45 @@ "returnComment": [], "children": [] }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublic.getIndices", + "type": "Function", + "tags": [], + "label": "getIndices", + "description": [], + "signature": [ + "(props: { pattern: string; showAllIndices?: boolean | undefined; isRollupIndex: (indexName: string) => boolean; }) => Promise<", + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.MatchedItem", + "text": "MatchedItem" + }, + "[]>" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublic.getIndices.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "{ pattern: string; showAllIndices?: boolean | undefined; isRollupIndex: (indexName: string) => boolean; }" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "dataViews", "id": "def-public.DataViewsServicePublic.hasData", @@ -5398,6 +5437,101 @@ "path": "src/plugins/data_views/public/data_views_service_public.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices", + "type": "Function", + "tags": [], + "label": "getIndices", + "description": [], + "signature": [ + "(props: { pattern: string; showAllIndices?: boolean | undefined; isRollupIndex: (indexName: string) => boolean; }) => Promise<", + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.MatchedItem", + "text": "MatchedItem" + }, + "[]>" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices.$1.pattern", + "type": "string", + "tags": [], + "label": "pattern", + "description": [], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices.$1.showAllIndices", + "type": "CompoundType", + "tags": [], + "label": "showAllIndices", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices.$1.isRollupIndex", + "type": "Function", + "tags": [], + "label": "isRollupIndex", + "description": [], + "signature": [ + "(indexName: string) => boolean" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsServicePublicDeps.getIndices.$1.isRollupIndex.$1", + "type": "string", + "tags": [], + "label": "indexName", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/data_views/public/data_views_service_public.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ] + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -5906,6 +6040,68 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "dataViews", + "id": "def-public.MatchedItem", + "type": "Interface", + "tags": [], + "label": "MatchedItem", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.MatchedItem.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.MatchedItem.tags", + "type": "Array", + "tags": [], + "label": "tags", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.Tag", + "text": "Tag" + }, + "[]" + ], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.MatchedItem.item", + "type": "Object", + "tags": [], + "label": "item", + "description": [], + "signature": [ + "{ name: string; backing_indices?: string[] | undefined; timestamp_field?: string | undefined; indices?: string[] | undefined; aliases?: string[] | undefined; attributes?: ", + "ResolveIndexResponseItemIndexAttrs", + "[] | undefined; data_stream?: string | undefined; }" + ], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "dataViews", "id": "def-public.RuntimeField", @@ -6339,6 +6535,53 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.Tag", + "type": "Interface", + "tags": [], + "label": "Tag", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.Tag.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.Tag.key", + "type": "string", + "tags": [], + "label": "key", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.Tag.color", + "type": "string", + "tags": [], + "label": "color", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [ @@ -6355,6 +6598,18 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.INDEX_PATTERN_TYPE", + "type": "Enum", + "tags": [], + "label": "INDEX_PATTERN_TYPE", + "description": [], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "misc": [ diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 9e9e13d1c714b..9ce3b6c700638 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; @@ -21,7 +21,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 966 | 0 | 208 | 1 | +| 983 | 0 | 225 | 2 | ## Client diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index a31d748cb362d..05d260b1c544f 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: 2022-09-30 +date: 2022-10-01 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 32c98155e1b6a..a3d96055c821b 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 52ccce27de739..4eb2eb95d80e1 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 28ee76e3644fa..4fc141f38747a 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 9753d6519463e..f22d728079646 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: 2022-09-30 +date: 2022-10-01 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 d99574811ed8e..c744310a34b91 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: 2022-09-30 +date: 2022-10-01 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 46669e83965b4..b9b4af0426fde 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 19cbeac71650f..f09224c581505 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: 2022-09-30 +date: 2022-10-01 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 cad3566677f9a..e1530fd32233e 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: 2022-09-30 +date: 2022-10-01 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 0964ad2d3db43..3f0a323b92794 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: 2022-09-30 +date: 2022-10-01 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 25628d88904b8..68f9252a936a6 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: 2022-09-30 +date: 2022-10-01 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 31bbfd3cfa77e..e4b29fe30fced 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: 2022-09-30 +date: 2022-10-01 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 70931ba483ca9..5fc5dd479579e 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: 2022-09-30 +date: 2022-10-01 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 57cb17ed7f57d..a1aaa7507ccb7 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: 2022-09-30 +date: 2022-10-01 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 87f06ab7f0fc8..a7413684bd039 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: 2022-09-30 +date: 2022-10-01 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 e2d8790bf2b71..a882614c990a5 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: 2022-09-30 +date: 2022-10-01 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 03060b8617a53..9237719c9d201 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: 2022-09-30 +date: 2022-10-01 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 7ccb3fec0ef4b..aae35271ff39e 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: 2022-09-30 +date: 2022-10-01 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 ea8581c29a05f..df673151690c9 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: 2022-09-30 +date: 2022-10-01 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 b7d3b7b434519..da11f3077c1aa 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: 2022-09-30 +date: 2022-10-01 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 901d559b5a7e7..846aa497ea3bb 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: 2022-09-30 +date: 2022-10-01 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 4f53bb28008ea..02618661f080e 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: 2022-09-30 +date: 2022-10-01 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 aeff45f40a77f..02f01b4dd86f5 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: 2022-09-30 +date: 2022-10-01 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 096441865046f..acd06327d8886 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: 2022-09-30 +date: 2022-10-01 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 237430ae0fb81..8046b493fef22 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: 2022-09-30 +date: 2022-10-01 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 2316d7e48cc91..3ddfd870314aa 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: 2022-09-30 +date: 2022-10-01 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 6c70b3fd09b18..0b5d88e7aab73 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: 2022-09-30 +date: 2022-10-01 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 a2c88ec023169..8c09010151113 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: 2022-09-30 +date: 2022-10-01 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 821587d02923a..05df2ffc3a487 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: 2022-09-30 +date: 2022-10-01 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 77ec5bd6a6db2..fb46fbf3c533b 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: 2022-09-30 +date: 2022-10-01 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 71fd5ede2e0a9..ad24537aa0fdc 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: 2022-09-30 +date: 2022-10-01 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 5536609e6bf4f..77286018c6236 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 61843d4ecb35c..8196936c8efd9 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 8681c30dcf97c..6908d7194d17b 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: 2022-09-30 +date: 2022-10-01 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 01249c9253db9..af5a128f54b0d 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: 2022-09-30 +date: 2022-10-01 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 21a00dd18b779..8bbe725e782fe 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 08133b2e0ce45..9edd7ca01eff0 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: 2022-09-30 +date: 2022-10-01 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 e6a58683dd574..0c3c64c38fa9e 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: 2022-09-30 +date: 2022-10-01 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 27d270ef03490..12e3a5944bfec 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: 2022-09-30 +date: 2022-10-01 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 69d8e811d233c..d5d9c2b4b6937 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: 2022-09-30 +date: 2022-10-01 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 d425e08214e06..3f156bfcb7b35 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: 2022-09-30 +date: 2022-10-01 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 85eedf5bc8cb1..9033fdf982ef0 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: 2022-09-30 +date: 2022-10-01 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 0fcb70c426aac..dae5a070183a3 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: 2022-09-30 +date: 2022-10-01 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 7a5a7dc343e11..25f9c2c92bfd1 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: 2022-09-30 +date: 2022-10-01 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 d3da6e6fc6278..ca9ca177b00a7 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index b19adbf23a6ba..9c5c4346e45a0 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: 2022-09-30 +date: 2022-10-01 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 cb3267bf94c0f..0f94bac6c9c8a 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: 2022-09-30 +date: 2022-10-01 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 6f92758ba29f5..71847c01b1eb0 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: 2022-09-30 +date: 2022-10-01 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 42ba3bd8ac0d9..09e9cdc683fa1 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: 2022-09-30 +date: 2022-10-01 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 9e24183eab48c..14753eade649d 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: 2022-09-30 +date: 2022-10-01 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 642cfc316df01..7b98319dfa0d5 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 64f41b4de638f..7e89a7719619f 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: 2022-09-30 +date: 2022-10-01 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 a07ae6ec5b388..a8302426d0f98 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index ccabe37aa9fbf..8e3217250a2f3 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: 2022-09-30 +date: 2022-10-01 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 904c2db7eeb95..b96fac650f3bb 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 3ef51f85a1dd8..2e27eedb97be8 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: 2022-09-30 +date: 2022-10-01 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 4dbba9e0e4bbf..ba566208fe8bb 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: 2022-09-30 +date: 2022-10-01 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 a3510af5f70b1..71b3793b5edba 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: 2022-09-30 +date: 2022-10-01 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 c1bdc23214055..b2e6e11bf6f52 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: 2022-09-30 +date: 2022-10-01 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 dd6763ce0a98c..741e1c8d09dcc 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index b8a547e074cd5..534685b36cd21 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: 2022-09-30 +date: 2022-10-01 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 f2993b49d5f86..3ff3d642b506d 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: 2022-09-30 +date: 2022-10-01 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 62491682503dc..67fdb94f78f3b 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: 2022-09-30 +date: 2022-10-01 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 cf14ce5a40d53..3b43b92a5565c 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 11c9a0928b583..84ad21fc47fdb 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: 2022-09-30 +date: 2022-10-01 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 76cb685c99f35..8c307425ee040 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: 2022-09-30 +date: 2022-10-01 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 6c4d86bf0b722..3212fb673e27f 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: 2022-09-30 +date: 2022-10-01 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 34614865e7e8f..4e9dd3d54d358 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: 2022-09-30 +date: 2022-10-01 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 1342382025c64..7bd027365d6e9 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: 2022-09-30 +date: 2022-10-01 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 da2faf312d367..76cd9dba2db5c 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: 2022-09-30 +date: 2022-10-01 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 f2810dc16d62c..bfa75dd3afd7a 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: 2022-09-30 +date: 2022-10-01 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 b002114d3e337..7f9da63f298a2 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: 2022-09-30 +date: 2022-10-01 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 c726e5f8b7876..2f2615a48955e 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: 2022-09-30 +date: 2022-10-01 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 fe234ab156ecd..9c806330e3668 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: 2022-09-30 +date: 2022-10-01 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 f0450f42dbb9d..9294b5b708f88 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: 2022-09-30 +date: 2022-10-01 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 b486574b88c2c..af582f9ff198f 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: 2022-09-30 +date: 2022-10-01 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 6c09e87c4cc07..8af8f902e5408 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: 2022-09-30 +date: 2022-10-01 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_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 6f23a43cb533a..aaf8373e9ca7c 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: 2022-09-30 +date: 2022-10-01 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 98cc757ce42de..9ed7dbaa5e2d6 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: 2022-09-30 +date: 2022-10-01 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 69b473e30ee8a..8186b42e0220e 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: 2022-09-30 +date: 2022-10-01 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 be0a688924dac..a0c063e840094 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: 2022-09-30 +date: 2022-10-01 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 8eee81e91198b..221ae3385ddd6 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: 2022-09-30 +date: 2022-10-01 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 48ebe7f76b165..2156646c76f0a 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: 2022-09-30 +date: 2022-10-01 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 6c6318b812457..f6c8668e76f26 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: 2022-09-30 +date: 2022-10-01 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 0087fd5a98375..3d39b753f2abb 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: 2022-09-30 +date: 2022-10-01 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 cb7a24e95c615..6e6ffeac0f653 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: 2022-09-30 +date: 2022-10-01 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 b98bb79392f8a..203f9a365fdef 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: 2022-09-30 +date: 2022-10-01 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 83a912dd03fdb..cd573bfd8776c 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: 2022-09-30 +date: 2022-10-01 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_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index a3f274459a413..e2134b925ba81 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: 2022-09-30 +date: 2022-10-01 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 eeb3c991a0d63..9fc96d5d598f3 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: 2022-09-30 +date: 2022-10-01 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 2eb4bda78a5c1..7a6634ac7f8da 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: 2022-09-30 +date: 2022-10-01 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 1edd0ca68c530..edcf87b960941 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: 2022-09-30 +date: 2022-10-01 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 35470535f96e8..35e8a6ce26327 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: 2022-09-30 +date: 2022-10-01 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 b9f9b064de302..8167097daa0d7 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: 2022-09-30 +date: 2022-10-01 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 118225780a1f2..b45ecd8257b07 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: 2022-09-30 +date: 2022-10-01 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 c1331c1caec0f..031456455b1ee 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: 2022-09-30 +date: 2022-10-01 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 7c77af97bad80..381310fcf1546 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: 2022-09-30 +date: 2022-10-01 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 3e100243e2116..05f768b81b3ca 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: 2022-09-30 +date: 2022-10-01 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 83c04c073ea9c..52776680286a7 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: 2022-09-30 +date: 2022-10-01 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 ea9ad18fb0ac4..63cc80d8fa739 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: 2022-09-30 +date: 2022-10-01 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 524e9382c019f..309f4ef8839d3 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: 2022-09-30 +date: 2022-10-01 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 2c5d8ce0deeed..d4df75707a940 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: 2022-09-30 +date: 2022-10-01 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 dd5df0e31e51e..a5ade116a7c0e 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: 2022-09-30 +date: 2022-10-01 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 3e6df91ab7eb5..9a09fe50975c2 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: 2022-09-30 +date: 2022-10-01 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 679fdb16b2af6..7fffb0ccbd3d1 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: 2022-09-30 +date: 2022-10-01 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 bdb596d8b29e8..7c8733b369f01 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: 2022-09-30 +date: 2022-10-01 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 2832e5b25baa2..f283e05e563d0 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: 2022-09-30 +date: 2022-10-01 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 765f996d9c461..d40d5501ca99c 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: 2022-09-30 +date: 2022-10-01 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 dd30432a2a83c..cc1a420ccba12 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: 2022-09-30 +date: 2022-10-01 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 f91bd759633c2..25f0346340ea2 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: 2022-09-30 +date: 2022-10-01 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 06e0a3a543a06..87eb2c5dd2fdc 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: 2022-09-30 +date: 2022-10-01 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 031735030635b..1023c4c175a35 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: 2022-09-30 +date: 2022-10-01 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 5a354609a0a38..20aa61f141c8d 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: 2022-09-30 +date: 2022-10-01 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 d520c20c2d3bb..4fdaf9d97f6fd 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: 2022-09-30 +date: 2022-10-01 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 bc6c34d1c07f7..81e62c8036e09 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: 2022-09-30 +date: 2022-10-01 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 3faf57a4c881c..548174fbd5d8a 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: 2022-09-30 +date: 2022-10-01 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 83a7e913c0825..16c6d6b510208 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: 2022-09-30 +date: 2022-10-01 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 10055c2130fd2..094479784c51c 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: 2022-09-30 +date: 2022-10-01 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 acb60f56ebfc7..41f882912cfec 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: 2022-09-30 +date: 2022-10-01 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 9130f1f857a9e..b00edeb7d68be 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: 2022-09-30 +date: 2022-10-01 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 4d1bfc14b6a63..17d48963b8b76 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: 2022-09-30 +date: 2022-10-01 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_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index d548463315b24..2ee35b66a8f69 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: 2022-09-30 +date: 2022-10-01 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 b873c4a15d6e2..750d6c7b3befb 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: 2022-09-30 +date: 2022-10-01 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 7e6e71fa61954..3a9e92dbe6507 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: 2022-09-30 +date: 2022-10-01 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 8186ddd0f39a8..27352519951fb 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: 2022-09-30 +date: 2022-10-01 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 fdeeded54cd66..2aa52e0dc1c00 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: 2022-09-30 +date: 2022-10-01 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 cc8e5edcd399e..a8e82e67d22cc 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: 2022-09-30 +date: 2022-10-01 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 2ca59b2bad48e..10be37f40c29e 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: 2022-09-30 +date: 2022-10-01 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 ba5a6502efe18..ef29632390089 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: 2022-09-30 +date: 2022-10-01 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 8847538b3a2dd..d6ed176629a21 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: 2022-09-30 +date: 2022-10-01 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 e992ae37a3b76..ee1ed897ede0f 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: 2022-09-30 +date: 2022-10-01 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.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index 39b237eedd45f..7b120559dc173 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.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 9e750bb7dba99..3e7af178ec124 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: 2022-09-30 +date: 2022-10-01 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 ed82f8a5dea47..d2aabf046c88e 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: 2022-09-30 +date: 2022-10-01 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 f9f9e8a948c63..bc12a2785cc02 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: 2022-09-30 +date: 2022-10-01 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 f9376e67d6990..7480b362f29b9 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: 2022-09-30 +date: 2022-10-01 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 fa9f4053803d0..f21296396e1de 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: 2022-09-30 +date: 2022-10-01 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_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 7f27d332faca9..61be5ea720a47 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: 2022-09-30 +date: 2022-10-01 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 3d5bfb44851bf..af6dd35e83129 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: 2022-09-30 +date: 2022-10-01 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 84ab6fff88ffe..a09ca7932e57b 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: 2022-09-30 +date: 2022-10-01 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 3e9e378809f2a..c01ad905bc16f 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: 2022-09-30 +date: 2022-10-01 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 6f502bf2c3bc2..d31c4dd48ee55 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: 2022-09-30 +date: 2022-10-01 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 85f6d9268f7c9..9f15f6cf73905 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: 2022-09-30 +date: 2022-10-01 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 fcc2c94523111..e93ec0476f250 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: 2022-09-30 +date: 2022-10-01 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 5683a2d792ef1..5a94cd10fcb04 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: 2022-09-30 +date: 2022-10-01 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 8b1732b474d94..43e64914cfb32 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: 2022-09-30 +date: 2022-10-01 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 cb8ab729b92d9..557e650a73b5d 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: 2022-09-30 +date: 2022-10-01 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 983e300999f72..a3ebabf7f32c7 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: 2022-09-30 +date: 2022-10-01 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 6832c1707041f..804d680bae804 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: 2022-09-30 +date: 2022-10-01 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 b86953b92d74c..e15645fb9ab88 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: 2022-09-30 +date: 2022-10-01 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 d400da3e6594b..a64c369bcba42 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: 2022-09-30 +date: 2022-10-01 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 457f058a1c212..1192b6244a3a2 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: 2022-09-30 +date: 2022-10-01 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 03fa3b8be0798..0eb8bc161976f 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: 2022-09-30 +date: 2022-10-01 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 187d1c690e2df..d8b0afcc889b6 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: 2022-09-30 +date: 2022-10-01 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 6dca74dc0384d..7982df2fb243d 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: 2022-09-30 +date: 2022-10-01 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 8ef53aa00edb4..9c70f02f78d00 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: 2022-09-30 +date: 2022-10-01 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 f023cecb27a9a..6bd600cfb198c 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: 2022-09-30 +date: 2022-10-01 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_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 89514146e62f3..be27903d8b485 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: 2022-09-30 +date: 2022-10-01 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 5f530e17cbf2f..b4745db58332c 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: 2022-09-30 +date: 2022-10-01 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 3f6c17f74aba3..47752b2ae6726 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: 2022-09-30 +date: 2022-10-01 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_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 4d731485bd3bb..856ab9b0e54bf 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: 2022-09-30 +date: 2022-10-01 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 6297a248ab161..79709ae898489 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: 2022-09-30 +date: 2022-10-01 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 7784682515d4f..b88c155714125 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: 2022-09-30 +date: 2022-10-01 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 9b590bd554e8a..f28c4920181cf 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: 2022-09-30 +date: 2022-10-01 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 321c7d8761b6d..2bf85267549ab 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: 2022-09-30 +date: 2022-10-01 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 13287c8f8e30a..3f364ace01fd9 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: 2022-09-30 +date: 2022-10-01 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 bb9f4b645d23a..2b9b805aa0d51 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: 2022-09-30 +date: 2022-10-01 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 676a2bb193658..94ee2b5e95dd7 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: 2022-09-30 +date: 2022-10-01 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 93c77175614e7..f2e58e7919b5d 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: 2022-09-30 +date: 2022-10-01 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 3d80365761236..2f9686598dae2 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: 2022-09-30 +date: 2022-10-01 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 d9f37e38d76b3..67a62a9d8f82d 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: 2022-09-30 +date: 2022-10-01 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 77f3b314f46f3..f006d43902df5 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: 2022-09-30 +date: 2022-10-01 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 1a389643784bf..962c7d5ac0112 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: 2022-09-30 +date: 2022-10-01 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 5f12f65364d0e..c07112e6ad54c 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: 2022-09-30 +date: 2022-10-01 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 945817f8b5ed2..40a150c47507e 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: 2022-09-30 +date: 2022-10-01 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 128f95a96f7fc..9d63c473addd9 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: 2022-09-30 +date: 2022-10-01 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 52533c9b6fe39..27238b71e9474 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: 2022-09-30 +date: 2022-10-01 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 e1795a3be133e..6ca747830ab44 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: 2022-09-30 +date: 2022-10-01 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 d6ff451e1d1dc..768e628a8af99 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: 2022-09-30 +date: 2022-10-01 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 e3a2233f32a15..970cb7ab087e3 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: 2022-09-30 +date: 2022-10-01 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 2a073386f7a75..cd7bbe51e9042 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: 2022-09-30 +date: 2022-10-01 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 da2f56a7f69ca..da072c5533deb 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: 2022-09-30 +date: 2022-10-01 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 db4c4003ec798..0a9599ba8cac2 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: 2022-09-30 +date: 2022-10-01 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 c8b0a759e9da9..57940d8a2498b 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: 2022-09-30 +date: 2022-10-01 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 a46dd1b958ad3..ba62b21644351 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: 2022-09-30 +date: 2022-10-01 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_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index bf4074f9ff80f..c3939a291a656 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: 2022-09-30 +date: 2022-10-01 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 50d9d7c378160..6148fce410496 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: 2022-09-30 +date: 2022-10-01 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 876f4bd186bb7..5fb0272483d51 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: 2022-09-30 +date: 2022-10-01 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 433f7324e5491..28de861c3382d 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: 2022-09-30 +date: 2022-10-01 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 0bf1ae7c24108..d9a6c2b14d251 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: 2022-09-30 +date: 2022-10-01 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 577822a31bc17..3dd7677225f06 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: 2022-09-30 +date: 2022-10-01 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 30759d2ba604c..8a73e44070355 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: 2022-09-30 +date: 2022-10-01 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 b00037c8b73c7..b86978a4c0f51 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: 2022-09-30 +date: 2022-10-01 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 0dbf6764d598c..632bc077b3e16 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: 2022-09-30 +date: 2022-10-01 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 f2e11e0ec4103..43ce870fd9d1c 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: 2022-09-30 +date: 2022-10-01 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 fdafd7c74c008..982847f0d737c 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: 2022-09-30 +date: 2022-10-01 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 8e7cee968fe75..55d78bd6eee1b 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: 2022-09-30 +date: 2022-10-01 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 bfcb2471b8f09..4a0c5588f0be5 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: 2022-09-30 +date: 2022-10-01 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 d47e0499bc2ad..521e5b631e391 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: 2022-09-30 +date: 2022-10-01 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 471c3b25429df..58ddc73e08dfc 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 4dc98f350e51d..644ca142bc7d0 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: 2022-09-30 +date: 2022-10-01 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 0691a727d305b..61773de18ba45 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: 2022-09-30 +date: 2022-10-01 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 7f92e41d7a4dc..33f29af6449f5 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: 2022-09-30 +date: 2022-10-01 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 720562339cb01..7160587ae7c07 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: 2022-09-30 +date: 2022-10-01 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 9b0d11e055baa..765e362ac5000 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index a972f8dfe08c2..d74e0af0ba44c 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: 2022-09-30 +date: 2022-10-01 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 7fde88f253ffb..bd64af2bd9d2f 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: 2022-09-30 +date: 2022-10-01 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 b60e5a1432257..16b1791d70aab 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 5b8334a6273f7..516930bec71f4 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: 2022-09-30 +date: 2022-10-01 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 cbd8011fd264d..f8cfd1377e566 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 6454ec64eeec1..0125789a530ac 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 9d9912a3e60be..faa1089fab654 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: 2022-09-30 +date: 2022-10-01 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 460d6cc14eab2..756b802d0c32d 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: 2022-09-30 +date: 2022-10-01 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 de71112dafadf..bb82f2d259771 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: 2022-09-30 +date: 2022-10-01 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 4e028126633c1..f745989c9c8a1 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: 2022-09-30 +date: 2022-10-01 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 04d7cb7b4cfd8..6ddc526b2548a 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: 2022-09-30 +date: 2022-10-01 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 d88b4e834bee8..42e063e32e7f1 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 11f578d5d6c58..984eab3d218e8 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index b3a8defe77206..0fcc343e3d190 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: 2022-09-30 +date: 2022-10-01 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 e9429b41deb7b..2b73efa6062ac 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index f678cb181de18..0dc1d0876d3a2 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: 2022-09-30 +date: 2022-10-01 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 404f2163c46c0..f8639118d81e0 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: 2022-09-30 +date: 2022-10-01 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 525cb60f347a1..78d78be33902f 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index d4f49a5704638..f8c83ac7998ac 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: 2022-09-30 +date: 2022-10-01 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 9fa8dfc8321c7..894230ad1d11f 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: 2022-09-30 +date: 2022-10-01 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 4c08eeab4c883..034bcc168b9e6 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: 2022-09-30 +date: 2022-10-01 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 d8948bee86402..417f8ba3a65f1 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: 2022-09-30 +date: 2022-10-01 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 e2a2cc005cad2..7e46d2dcb1f91 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 3999084bdf285..5dc82ade1a649 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 6f279b0700ac2..e88bca58e89eb 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: 2022-09-30 +date: 2022-10-01 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 cc05defa4dac2..dee1f848efd66 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: 2022-09-30 +date: 2022-10-01 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 20c5f25e026bf..ef7abd6df1bfe 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: 2022-09-30 +date: 2022-10-01 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 a0dfd15450607..cb067e4a5e48f 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: 2022-09-30 +date: 2022-10-01 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 8c10def45c78c..2c28a423148f0 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: 2022-09-30 +date: 2022-10-01 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_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index f4eb153961bd3..e1380d56c305b 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: 2022-09-30 +date: 2022-10-01 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 8d36ae0132631..960bb4da53ce7 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 2a32d7d919b0c..00938629a9610 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: 2022-09-30 +date: 2022-10-01 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 ad7149dc8fe1a..0a5ae8a689d82 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: 2022-09-30 +date: 2022-10-01 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 8d83ba6d1f0ef..b6440aacaa070 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: 2022-09-30 +date: 2022-10-01 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 9bd69c34940d3..f92a80367e024 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: 2022-09-30 +date: 2022-10-01 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 e87e2bea07312..56e2cd559c032 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: 2022-09-30 +date: 2022-10-01 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 dff42547b8b4e..23bb7dc57c4e1 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: 2022-09-30 +date: 2022-10-01 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 9dfa323c764a1..c685665c1cd4b 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: 2022-09-30 +date: 2022-10-01 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 233fdfa2b5299..e603b0c70740d 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index e7e506f42c4dc..0aa2a7e6d7e24 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 2385663d0372e..d327087b29294 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: 2022-09-30 +date: 2022-10-01 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 c9560b881efcc..3912476bf911c 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 277e8fe2e29f0..2f31f51131f61 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: 2022-09-30 +date: 2022-10-01 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 aada63b6cdcfc..4777f33dc85d5 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: 2022-09-30 +date: 2022-10-01 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 06a05479ba722..07b9c7684cbb9 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: 2022-09-30 +date: 2022-10-01 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 4ff62a3c86d94..3c721f46f48cb 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: 2022-09-30 +date: 2022-10-01 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 73431dba715aa..1d452af9ea156 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: 2022-09-30 +date: 2022-10-01 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 f1065703e694b..59df749d44291 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: 2022-09-30 +date: 2022-10-01 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 0a3e38566ee92..8063f1fd1592f 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: 2022-09-30 +date: 2022-10-01 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 0dc5e87dba567..184877c74cfaf 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: 2022-09-30 +date: 2022-10-01 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 ee9a5057cd0b7..933a87c620ba4 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: 2022-09-30 +date: 2022-10-01 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 75f29aaf7123e..0f3f3805ca320 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: 2022-09-30 +date: 2022-10-01 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 515b4a8285bb3..6b810acdc8e7d 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: 2022-09-30 +date: 2022-10-01 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 2991cdacbacd0..aceb1ec1d65d6 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: 2022-09-30 +date: 2022-10-01 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 92b1867f34a64..11cfe00c5eb62 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: 2022-09-30 +date: 2022-10-01 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 a9ff8d1d81fbd..4e4ba39e56d9d 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: 2022-09-30 +date: 2022-10-01 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 91cf5bb3b5dd9..5a002fe9b6348 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: 2022-09-30 +date: 2022-10-01 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 cefe3d1543a94..53bffb726d7e0 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: 2022-09-30 +date: 2022-10-01 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 737c986cbf11a..ba975b8446923 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: 2022-09-30 +date: 2022-10-01 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_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index eebd51935c35a..9c30c42972615 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: 2022-09-30 +date: 2022-10-01 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_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index c121d1e8a4893..cf6491d338fe1 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: 2022-09-30 +date: 2022-10-01 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 ff53903386830..e055ce5c7dbec 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: 2022-09-30 +date: 2022-10-01 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 12b820666a653..63958a2cb0297 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: 2022-09-30 +date: 2022-10-01 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 c083f9ea1266f..e8dacbe7203bb 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: 2022-09-30 +date: 2022-10-01 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_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 35439d9fda006..421f7f9d7187b 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: 2022-09-30 +date: 2022-10-01 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_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index de78cc05fd160..99d63502639cf 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: 2022-09-30 +date: 2022-10-01 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 b1c6f91ebdbd1..2deff84864974 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: 2022-09-30 +date: 2022-10-01 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 9f07e742a7606..883bd3ab03a8a 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: 2022-09-30 +date: 2022-10-01 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 065a90d00a348..0db5daddc45c9 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: 2022-09-30 +date: 2022-10-01 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 c100281c25d4d..a9353ec774046 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: 2022-09-30 +date: 2022-10-01 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 b884d72ca4d07..99d9c415c15b1 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: 2022-09-30 +date: 2022-10-01 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 c060047529bc6..2417b72b9ffe3 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: 2022-09-30 +date: 2022-10-01 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 362eb12bc58f9..68dfc645ddd8d 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: 2022-09-30 +date: 2022-10-01 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 4e02c245ff69b..8f977f1cc7a9a 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: 2022-09-30 +date: 2022-10-01 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 49e658a38c8b7..109a924fb3b9a 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: 2022-09-30 +date: 2022-10-01 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 5e2e625539982..07a01ac671dac 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: 2022-09-30 +date: 2022-10-01 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 eec2b418bbc44..10af2f7f2c160 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: 2022-09-30 +date: 2022-10-01 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 f6bf840ae41ac..0b0f2e48ec0a0 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: 2022-09-30 +date: 2022-10-01 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_router.mdx b/api_docs/kbn_shared_ux_router.mdx index deb460019bbeb..956de3dd05849 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: 2022-09-30 +date: 2022-10-01 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 b6141feed65de..f10769e16c69d 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: 2022-09-30 +date: 2022-10-01 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 9d6b7561cd4fe..a99179ef9d406 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: 2022-09-30 +date: 2022-10-01 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 1d57383c1f7a2..6abf6549e0565 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: 2022-09-30 +date: 2022-10-01 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 f1529dbdeeadd..e44419942c796 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 08e81f53f5e6a..e25a62c5079ae 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index f9a40e4e50605..28fe6feb5d19d 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 0be3ac9e885d8..05b56017a08ff 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: 2022-09-30 +date: 2022-10-01 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 12855b1d6c6e1..be9d33d159f3c 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: 2022-09-30 +date: 2022-10-01 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 ff504977fbd18..dd904c049f3bd 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: 2022-09-30 +date: 2022-10-01 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 c4980baa0846b..b854992fde335 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: 2022-09-30 +date: 2022-10-01 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 fc2d3aa4ceb2f..82eab77aca0cf 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: 2022-09-30 +date: 2022-10-01 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 c0fe273058800..bd59838a870d1 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: 2022-09-30 +date: 2022-10-01 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 a11f331d327f9..c5b72af903b3a 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: 2022-09-30 +date: 2022-10-01 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 634503f237630..abd0555459d96 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index ec79f6d74e50a..09bc46b76cc97 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index 64a86ae7f718d..60509b4421a9d 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index fd83134954efd..614b52b535a99 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: 2022-09-30 +date: 2022-10-01 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_theme.mdx b/api_docs/kbn_ui_theme.mdx index e05e7d1fbf270..86b99ea131b43 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: 2022-09-30 +date: 2022-10-01 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 c62021b90a7c5..1411d1f11e0f6 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: 2022-09-30 +date: 2022-10-01 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 383e50529e744..124801b6982ed 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: 2022-09-30 +date: 2022-10-01 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 900ea8d6e615c..286cf41a0f814 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: 2022-09-30 +date: 2022-10-01 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 224a3cfeb7afa..1d15139e5ad5d 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: 2022-09-30 +date: 2022-10-01 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 51c6ae605e7bd..3fa079e3178f7 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: 2022-09-30 +date: 2022-10-01 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 c15bfc3b7fe22..ac6ccdaefbbf2 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: 2022-09-30 +date: 2022-10-01 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 ea705da0da762..e8016cd77287b 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: 2022-09-30 +date: 2022-10-01 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 0ea7624514ef5..dff8ce771bdee 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: 2022-09-30 +date: 2022-10-01 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 ac719690669b5..318aa79a29754 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index 43a256fa418ca..d29c21bc24d31 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -4254,6 +4254,53 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getUsedDataView", + "type": "Function", + "tags": [], + "label": "getUsedDataView", + "description": [], + "signature": [ + "((state: T, layerId: string) => string | undefined) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getUsedDataView.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "T" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getUsedDataView.$2", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Visualization.getUsedDataViews", @@ -4994,13 +5041,84 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSupportedActionsForLayer", + "type": "Function", + "tags": [], + "label": "getSupportedActionsForLayer", + "description": [ + "\nreturns a list of custom actions supported by the visualization layer.\nDefault actions like delete/clear are not included in this list and are managed by the editor frame" + ], + "signature": [ + "((layerId: string, state: T, setState: ", + "StateSetter", + ") => ", + "LayerAction", + "[]) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSupportedActionsForLayer.$1", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSupportedActionsForLayer.$2", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "T" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSupportedActionsForLayer.$3", + "type": "Function", + "tags": [], + "label": "setState", + "description": [], + "signature": [ + "StateSetter", + "" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Visualization.getLayerType", "type": "Function", "tags": [], "label": "getLayerType", - "description": [], + "description": [ + "returns the type string of the given layer" + ], "signature": [ "(layerId: string, state?: T | undefined) => ", { @@ -5494,6 +5612,43 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getDropProps", + "type": "Function", + "tags": [], + "label": "getDropProps", + "description": [], + "signature": [ + "((dropProps: ", + "GetDropPropsArgs", + ") => { dropTypes: ", + "DropType", + "[]; nextLabel?: string | undefined; } | undefined) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getDropProps.$1", + "type": "Object", + "tags": [], + "label": "dropProps", + "description": [], + "signature": [ + "GetDropPropsArgs", + "" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Visualization.renderDimensionEditor", diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index ebeef2fc8c31d..01c5bc3141bc4 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 649 | 0 | 560 | 42 | +| 658 | 0 | 567 | 45 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 7a642bff9e73a..e1894af2cbfa0 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: 2022-09-30 +date: 2022-10-01 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 0f646773d6138..d592aa08d8751 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: 2022-09-30 +date: 2022-10-01 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 13e56db522d2b..a65fb069d0ac4 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: 2022-09-30 +date: 2022-10-01 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 4a6747d66e72c..e4e33df28af34 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: 2022-09-30 +date: 2022-10-01 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 3b4067947d08b..bcb5fc7434722 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: 2022-09-30 +date: 2022-10-01 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 e68653a32c8ca..e1409873d0457 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: 2022-09-30 +date: 2022-10-01 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 8547850fa777a..d6ef5a21773f9 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: 2022-09-30 +date: 2022-10-01 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 b52f48b935000..f725548e9cf9c 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: 2022-09-30 +date: 2022-10-01 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 eaa35953f39e9..c72b46a487e9e 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: 2022-09-30 +date: 2022-10-01 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 4048c3102a29f..41785b90b47d3 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: 2022-09-30 +date: 2022-10-01 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 4b05d9ce3b7ef..4d964c688c8af 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: 2022-09-30 +date: 2022-10-01 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 b10f893f9601b..d084497544343 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 758f400939d9e..e40080c8ecf58 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 40c14dd0feebf..266faca28aede 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: 2022-09-30 +date: 2022-10-01 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 faf5c1b113204..65ed265de39cf 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 31986 | 179 | 21534 | 1003 | +| 32016 | 179 | 21562 | 1007 | ## Plugin Directory @@ -51,7 +51,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 15 | 0 | 7 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Reusable data view field editor across Kibana | 60 | 0 | 30 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data view management app | 2 | 0 | 2 | 0 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 966 | 0 | 208 | 1 | +| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Data services are useful for searching and querying data from Elasticsearch. Helpful utilities include: a re-usable react query bar, KQL autocomplete, async search, Data Views (Index Patterns) and field formatters. | 983 | 0 | 225 | 2 | | | [Machine Learning UI](https://github.com/orgs/elastic/teams/ml-ui) | The Data Visualizer tools help you understand your data, by analyzing the metrics and fields in a log file or an existing Elasticsearch index. | 28 | 3 | 24 | 1 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 10 | 0 | 8 | 2 | | | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 97 | 0 | 80 | 4 | @@ -101,7 +101,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | kibanaUsageCollection | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 0 | 0 | 0 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 615 | 3 | 418 | 9 | | | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 649 | 0 | 560 | 42 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 658 | 0 | 567 | 45 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 8 | 0 | 8 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 3 | 0 | 3 | 0 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | @@ -153,10 +153,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Machine Learning 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 | [Kibana Localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | | | [Response Ops](https://github.com/orgs/elastic/teams/response-ops) | - | 512 | 1 | 485 | 48 | -| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds UI Actions service to Kibana | 132 | 0 | 91 | 11 | +| | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds UI Actions service to Kibana | 133 | 0 | 92 | 11 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Extends UI Actions plugin with more functionality | 206 | 0 | 142 | 9 | | | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 61 | 0 | 59 | 2 | -| | [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-services) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 125 | 2 | 99 | 17 | +| | [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-services) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 128 | 2 | 102 | 17 | | upgradeAssistant | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | | urlDrilldown | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | - | 12 | 0 | 12 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 4d3613a8b117a..581cd5ef4d51a 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: 2022-09-30 +date: 2022-10-01 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 29db7898a4b53..817f03f981b13 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: 2022-09-30 +date: 2022-10-01 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 49b546ef38a2b..e074406c74e89 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: 2022-09-30 +date: 2022-10-01 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 18eff91aea12b..5c1dc0c2685a3 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: 2022-09-30 +date: 2022-10-01 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 099cff0ab5181..df1bff5712972 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index c2aaaeb78852e..ec349c4ad0b5e 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 5c28ac8b2bdb5..5edda54c6f139 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 6351e3d45b6ee..d4d313bef79fb 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index b0955d53c8d0f..1ae6118247ce5 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index ddb1f6d02750c..3a2c36b7cc7f4 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index f9510b48f7efe..6e788653e193a 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 3239724d7ef38..1e81b07e6d24c 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index b11f668fa1169..2146968cda903 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 42b62ddb1d6d1..d88e2e95c6387 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 2e8f47d4893bb..dd4d7868a8991 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index a576dc7f8b981..549878d171ab4 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: 2022-09-30 +date: 2022-10-01 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 575793a057288..eac5df4aa58b0 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: 2022-09-30 +date: 2022-10-01 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 2ccc09799e6f6..212526e3c0214 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: 2022-09-30 +date: 2022-10-01 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 3c787d2f24b06..a3534fb4ba277 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: 2022-09-30 +date: 2022-10-01 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 fcd7d2325c179..5c626675eef66 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: 2022-09-30 +date: 2022-10-01 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 a0c0f7d6c4c24..b8766114204c6 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: 2022-09-30 +date: 2022-10-01 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 6c9a14514a8aa..5bdce3da3e229 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: 2022-09-30 +date: 2022-10-01 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 fb2aab7cf00a6..415c51b650dcb 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: 2022-09-30 +date: 2022-10-01 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 5289e0a7dee5e..e730f9b56148e 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: 2022-09-30 +date: 2022-10-01 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 ec6a6fda9343b..8cc947166e677 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: 2022-09-30 +date: 2022-10-01 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 28813ee2279e7..7d0012a2281a9 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: 2022-09-30 +date: 2022-10-01 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 167b467328b25..27fb11dfae9f9 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: 2022-09-30 +date: 2022-10-01 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 c11efc4d43706..e358c37feb52c 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: 2022-09-30 +date: 2022-10-01 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 8d9b53a137bc8..54c0a5d93409a 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: 2022-09-30 +date: 2022-10-01 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 5070df796c8a6..9c00897d8c1fd 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: 2022-09-30 +date: 2022-10-01 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 3115cbb40769f..510d527d883c6 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index c7570c5245900..c94cb7a1a751d 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.devdocs.json b/api_docs/ui_actions.devdocs.json index 293aa53e4d804..d224e96cb9e8a 100644 --- a/api_docs/ui_actions.devdocs.json +++ b/api_docs/ui_actions.devdocs.json @@ -2191,6 +2191,21 @@ "path": "src/plugins/ui_actions/public/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "uiActions", + "id": "def-public.VisualizeFieldContext.query", + "type": "CompoundType", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "AggregateQuery", + " | undefined" + ], + "path": "src/plugins/ui_actions/public/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 9626982ef7232..a67988ed1155e 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; @@ -21,7 +21,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 132 | 0 | 91 | 11 | +| 133 | 0 | 92 | 11 | ## Client diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 5e08f17c4b215..a2d9c4d869b7b 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: 2022-09-30 +date: 2022-10-01 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 2c376ec69d7eb..ccea854bb0735 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json index 8a490ca91dd2b..5678db92f00cd 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -11,7 +11,7 @@ "label": "DataViewPicker", "description": [], "signature": [ - "({ isMissingCurrent, currentDataViewId, adHocDataViews, onChangeDataView, onAddField, onDataViewCreated, trigger, selectableProps, textBasedLanguages, onSaveTextLanguageQuery, onTextLangQuerySubmit, textBasedLanguage, isDisabled, }: ", + "({ isMissingCurrent, currentDataViewId, adHocDataViews, onChangeDataView, onAddField, onDataViewCreated, trigger, selectableProps, textBasedLanguages, onSaveTextLanguageQuery, onTextLangQuerySubmit, textBasedLanguage, onCreateDefaultAdHocDataView, isDisabled, }: ", "DataViewPickerPropsExtended", ") => JSX.Element" ], @@ -24,7 +24,7 @@ "id": "def-public.DataViewPicker.$1", "type": "Object", "tags": [], - "label": "{\n isMissingCurrent,\n currentDataViewId,\n adHocDataViews,\n onChangeDataView,\n onAddField,\n onDataViewCreated,\n trigger,\n selectableProps,\n textBasedLanguages,\n onSaveTextLanguageQuery,\n onTextLangQuerySubmit,\n textBasedLanguage,\n isDisabled,\n}", + "label": "{\n isMissingCurrent,\n currentDataViewId,\n adHocDataViews,\n onChangeDataView,\n onAddField,\n onDataViewCreated,\n trigger,\n selectableProps,\n textBasedLanguages,\n onSaveTextLanguageQuery,\n onTextLangQuerySubmit,\n textBasedLanguage,\n onCreateDefaultAdHocDataView,\n isDisabled,\n}", "description": [], "signature": [ "DataViewPickerPropsExtended" @@ -645,6 +645,38 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.DataViewPickerProps.onCreateDefaultAdHocDataView", + "type": "Function", + "tags": [], + "label": "onCreateDefaultAdHocDataView", + "description": [], + "signature": [ + "((pattern: string) => void) | undefined" + ], + "path": "src/plugins/unified_search/public/dataview_picker/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "unifiedSearch", + "id": "def-public.DataViewPickerProps.onCreateDefaultAdHocDataView.$1", + "type": "string", + "tags": [], + "label": "pattern", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/unified_search/public/dataview_picker/index.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "unifiedSearch", "id": "def-public.DataViewPickerProps.textBasedLanguages", @@ -1058,6 +1090,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "unifiedSearch", + "id": "def-public.IUnifiedSearchPluginServices.dataViews", + "type": "Object", + "tags": [], + "label": "dataViews", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "public", + "docId": "kibDataViewsPluginApi", + "section": "def-public.DataViewsServicePublic", + "text": "DataViewsServicePublic" + } + ], + "path": "src/plugins/unified_search/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "unifiedSearch", "id": "def-public.IUnifiedSearchPluginServices.usageCollection", diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index de104e703fd94..76011654fbea5 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-servic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 125 | 2 | 99 | 17 | +| 128 | 2 | 102 | 17 | ## Client diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 6138b56184d26..14a0d57226b4c 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Unified Search](https://github.com/orgs/elastic/teams/kibana-app-servic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 125 | 2 | 99 | 17 | +| 128 | 2 | 102 | 17 | ## Client diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index e44699c7b7c56..f7410808300ee 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: 2022-09-30 +date: 2022-10-01 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 b59d6dcec2681..a62461b88ceec 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: 2022-09-30 +date: 2022-10-01 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 b5e23e55dfb64..7d7a4df32df81 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: 2022-09-30 +date: 2022-10-01 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 2fb7351aa02f8..3a1a53675deec 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: 2022-09-30 +date: 2022-10-01 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 408e2c2ca376b..cfdaf08f6cc1b 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: 2022-09-30 +date: 2022-10-01 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 fa44a39b582b7..b26a487e9cbbc 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: 2022-09-30 +date: 2022-10-01 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 cd176ecf49a95..a3aaeb805b0c3 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: 2022-09-30 +date: 2022-10-01 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 d5b90e601d8ec..aff9846178613 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: 2022-09-30 +date: 2022-10-01 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 ba692d609d713..c1f44c36c05d8 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: 2022-09-30 +date: 2022-10-01 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 4b74690406711..179e2273cf670 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: 2022-09-30 +date: 2022-10-01 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 9eddbfeec41d4..691934f5c9b10 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: 2022-09-30 +date: 2022-10-01 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 31e138d68aa17..a18309726008d 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: 2022-09-30 +date: 2022-10-01 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 a1d6cb9154128..9733a2e51f76c 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: 2022-09-30 +date: 2022-10-01 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 db658a8b5a0b1..1b87bc4d3156d 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: 2022-09-30 +date: 2022-10-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From e50b5eb6da88b426bf4eebd02e3c535c92ab6c34 Mon Sep 17 00:00:00 2001 From: Sean Sullivan Date: Sat, 1 Oct 2022 07:20:13 -0400 Subject: [PATCH 05/51] Allow custom sources to have control over data sync (#141829) --- .../raster_tile_layer.test.ts | 17 ++++++-- .../raster_tile_layer/raster_tile_layer.ts | 43 ++++++------------- .../kibana_tilemap_source.js | 10 ++++- .../classes/sources/raster_source/index.ts | 18 ++++++++ .../classes/sources/tms_source/index.ts | 1 - .../classes/sources/wms_source/wms_source.js | 10 ++++- .../sources/xyz_tms_source/xyz_tms_source.ts | 38 ++++++++++++++-- .../maps/public/selectors/map_selectors.ts | 4 +- 8 files changed, 101 insertions(+), 40 deletions(-) create mode 100644 x-pack/plugins/maps/public/classes/sources/raster_source/index.ts diff --git a/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.test.ts b/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.test.ts index 963a12e9f7374..c42b338032f05 100644 --- a/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.test.ts @@ -7,10 +7,12 @@ import { RasterTileLayer } from './raster_tile_layer'; import { SOURCE_TYPES } from '../../../../common/constants'; -import { XYZTMSSourceDescriptor } from '../../../../common/descriptor_types'; +import { DataRequestMeta, XYZTMSSourceDescriptor } from '../../../../common/descriptor_types'; import { AbstractSource } from '../../sources/source'; -import { ITMSSource } from '../../sources/tms_source'; import { ILayer } from '../layer'; +import { RasterTileSource } from 'maplibre-gl'; +import { DataRequest } from '../../util/data_request'; +import { IRasterSource, RasterTileSourceData } from '../../sources/raster_source'; const sourceDescriptor: XYZTMSSourceDescriptor = { type: SOURCE_TYPES.EMS_XYZ, @@ -18,12 +20,21 @@ const sourceDescriptor: XYZTMSSourceDescriptor = { id: 'foobar', }; -class MockTileSource extends AbstractSource implements ITMSSource { +class MockTileSource extends AbstractSource implements IRasterSource { readonly _descriptor: XYZTMSSourceDescriptor; constructor(descriptor: XYZTMSSourceDescriptor) { super(descriptor); this._descriptor = descriptor; } + async canSkipSourceUpdate( + dataRequest: DataRequest, + nextRequestMeta: DataRequestMeta + ): Promise { + return true; + } + isSourceStale(mbSource: RasterTileSource, sourceData: RasterTileSourceData): boolean { + return false; + } async getDisplayName(): Promise { return this._descriptor.urlTemplate; diff --git a/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.ts b/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.ts index fc471375e1d30..cc13b70d01060 100644 --- a/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.ts +++ b/x-pack/plugins/maps/public/classes/layers/raster_tile_layer/raster_tile_layer.ts @@ -9,15 +9,11 @@ import type { Map as MbMap, RasterTileSource } from '@kbn/mapbox-gl'; import _ from 'lodash'; import { AbstractLayer } from '../layer'; import { SOURCE_DATA_REQUEST_ID, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../../../common/constants'; -import { LayerDescriptor, Timeslice } from '../../../../common/descriptor_types'; +import { LayerDescriptor } from '../../../../common/descriptor_types'; import { TileStyle } from '../../styles/tile/tile_style'; -import { ITMSSource } from '../../sources/tms_source'; import { DataRequestContext } from '../../../actions'; -import { canSkipSourceUpdate } from '../../util/can_skip_fetch'; -interface RasterTileSourceData { - url: string; -} +import { IRasterSource, RasterTileSourceData } from '../../sources/raster_source'; export class RasterTileLayer extends AbstractLayer { static createDescriptor(options: Partial) { @@ -34,15 +30,15 @@ export class RasterTileLayer extends AbstractLayer { source, layerDescriptor, }: { - source: ITMSSource; + source: IRasterSource; layerDescriptor: LayerDescriptor; }) { super({ source, layerDescriptor }); this._style = new TileStyle(); } - getSource(): ITMSSource { - return super.getSource() as ITMSSource; + getSource(): IRasterSource { + return super.getSource() as IRasterSource; } getStyleForEditing() { @@ -65,17 +61,7 @@ export class RasterTileLayer extends AbstractLayer { }; const prevDataRequest = this.getSourceDataRequest(); if (prevDataRequest) { - const prevMeta = prevDataRequest?.getMeta(); - const canSkip = await canSkipSourceUpdate({ - extentAware: false, - source, - prevDataRequest, - nextRequestMeta: nextMeta, - getUpdateDueToTimeslice: (timeslice?: Timeslice) => { - if (!prevMeta) return true; - return source.getUpdateDueToTimeslice(prevMeta, timeslice); - }, - }); + const canSkip = await source.canSkipSourceUpdate(prevDataRequest, nextMeta); if (canSkip) return; } const requestToken = Symbol(`layer-source-refresh:${this.getId()} - source`); @@ -107,21 +93,20 @@ export class RasterTileLayer extends AbstractLayer { } _requiresPrevSourceCleanup(mbMap: MbMap): boolean { + const source = this.getSource(); const mbSource = mbMap.getSource(this.getMbSourceId()) as RasterTileSource; if (!mbSource) { return false; } const sourceDataRequest = this.getSourceDataRequest(); - if (!sourceDataRequest) { - return false; - } - const sourceData = sourceDataRequest.getData() as RasterTileSourceData | undefined; - if (!sourceData) { - return false; + if (sourceDataRequest) { + const data = sourceDataRequest.getData(); + if (data) { + return source.isSourceStale(mbSource, data as RasterTileSourceData); + } } - - return mbSource.tiles?.[0] !== sourceData.url; + return false; } syncLayerWithMB(mbMap: MbMap) { @@ -138,7 +123,7 @@ export class RasterTileLayer extends AbstractLayer { return; } - const tmsSourceData = sourceDataRequest.getData() as { url?: string }; + const tmsSourceData = sourceDataRequest.getData() as RasterTileSourceData; if (!tmsSourceData || !tmsSourceData.url) { return; } diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js index db0b5359ca56e..19a7ec2941102 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js +++ b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js @@ -41,7 +41,15 @@ export class KibanaTilemapSource extends AbstractSource { }, ]; } - + isSourceStale(mbSource, sourceData) { + if (!sourceData.url) { + return false; + } + return mbSource.tiles?.[0] !== sourceData.url; + } + async canSkipSourceUpdate() { + return false; + } async getUrlTemplate() { const tilemap = getKibanaTileMap(); if (!tilemap.url) { diff --git a/x-pack/plugins/maps/public/classes/sources/raster_source/index.ts b/x-pack/plugins/maps/public/classes/sources/raster_source/index.ts new file mode 100644 index 0000000000000..53f1b75003ea3 --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/raster_source/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { RasterTileSource } from '@kbn/mapbox-gl'; +import { DataRequest } from '../../util/data_request'; +import { ITMSSource } from '../tms_source'; +import { DataRequestMeta } from '../../../../common/descriptor_types'; +export interface RasterTileSourceData { + url: string; +} +export interface IRasterSource extends ITMSSource { + canSkipSourceUpdate(dataRequest: DataRequest, nextRequestMeta: DataRequestMeta): Promise; + isSourceStale(mbSource: RasterTileSource, sourceData: RasterTileSourceData): boolean; +} diff --git a/x-pack/plugins/maps/public/classes/sources/tms_source/index.ts b/x-pack/plugins/maps/public/classes/sources/tms_source/index.ts index 05207acf7329a..d18a00df34f07 100644 --- a/x-pack/plugins/maps/public/classes/sources/tms_source/index.ts +++ b/x-pack/plugins/maps/public/classes/sources/tms_source/index.ts @@ -7,7 +7,6 @@ import { DataFilters } from '../../../../common/descriptor_types'; import { ISource } from '../source'; - export interface ITMSSource extends ISource { getUrlTemplate(dataFilters: DataFilters): Promise; } diff --git a/x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js index b884785d348aa..a1c1c60d75561 100644 --- a/x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js +++ b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js @@ -27,7 +27,15 @@ export class WMSSource extends AbstractSource { styles, }; } - + isSourceStale(mbSource, sourceData) { + if (!sourceData.url) { + return false; + } + return mbSource.tiles?.[0] !== sourceData.url; + } + async canSkipSourceUpdate() { + return false; + } async getImmutableProperties() { return [ { label: getDataSourceLabel(), value: sourceTitle }, diff --git a/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts index 01f77e4a45c38..c2c5e6404c8f0 100644 --- a/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts +++ b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts @@ -6,19 +6,26 @@ */ import { i18n } from '@kbn/i18n'; +import { RasterTileSource } from 'maplibre-gl'; import { getDataSourceLabel, getUrlLabel } from '../../../../common/i18n_getters'; import { SOURCE_TYPES } from '../../../../common/constants'; import { registerSource } from '../source_registry'; -import { ITMSSource } from '../tms_source'; -import { XYZTMSSourceDescriptor } from '../../../../common/descriptor_types'; +import { + XYZTMSSourceDescriptor, + DataRequestMeta, + Timeslice, +} from '../../../../common/descriptor_types'; import { AbstractSource, ImmutableSourceProperty } from '../source'; import { XYZTMSSourceConfig } from './xyz_tms_editor'; +import { canSkipSourceUpdate } from '../../util/can_skip_fetch'; +import { DataRequest } from '../../util/data_request'; +import { IRasterSource, RasterTileSourceData } from '../raster_source'; export const sourceTitle = i18n.translate('xpack.maps.source.ems_xyzTitle', { defaultMessage: 'Tile Map Service', }); -export class XYZTMSSource extends AbstractSource implements ITMSSource { +export class XYZTMSSource extends AbstractSource implements IRasterSource { static type = SOURCE_TYPES.EMS_XYZ; readonly _descriptor: XYZTMSSourceDescriptor; @@ -49,6 +56,31 @@ export class XYZTMSSource extends AbstractSource implements ITMSSource { async getUrlTemplate(): Promise { return this._descriptor.urlTemplate; } + + isSourceStale(mbSource: RasterTileSource, sourceData: RasterTileSourceData): boolean { + if (!sourceData.url) { + return false; + } + return mbSource.tiles?.[0] !== sourceData.url; + } + + async canSkipSourceUpdate( + prevDataRequest: DataRequest, + nextMeta: DataRequestMeta + ): Promise { + const prevMeta = prevDataRequest?.getMeta(); + const canSkip = await canSkipSourceUpdate({ + extentAware: false, + source: this, + prevDataRequest, + nextRequestMeta: nextMeta, + getUpdateDueToTimeslice: (timeslice?: Timeslice) => { + if (!prevMeta) return true; + return this.getUpdateDueToTimeslice(prevMeta, timeslice); + }, + }); + return canSkip; + } } registerSource({ diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.ts b/x-pack/plugins/maps/public/selectors/map_selectors.ts index 8adb3f8f927ab..6ee55bd72e49d 100644 --- a/x-pack/plugins/maps/public/selectors/map_selectors.ts +++ b/x-pack/plugins/maps/public/selectors/map_selectors.ts @@ -54,10 +54,10 @@ import { VectorLayerDescriptor, } from '../../common/descriptor_types'; import { ISource } from '../classes/sources/source'; -import { ITMSSource } from '../classes/sources/tms_source'; import { IVectorSource } from '../classes/sources/vector_source'; import { ESGeoGridSource } from '../classes/sources/es_geo_grid_source'; import { EMSTMSSource } from '../classes/sources/ems_tms_source'; +import { IRasterSource } from '../classes/sources/raster_source'; import { ILayer } from '../classes/layers/layer'; import { getIsReadOnly } from './ui_selectors'; @@ -78,7 +78,7 @@ export function createLayerInstance( switch (layerDescriptor.type) { case LAYER_TYPE.RASTER_TILE: - return new RasterTileLayer({ layerDescriptor, source: source as ITMSSource }); + return new RasterTileLayer({ layerDescriptor, source: source as IRasterSource }); case LAYER_TYPE.EMS_VECTOR_TILE: return new EmsVectorTileLayer({ layerDescriptor: layerDescriptor as EMSVectorTileLayerDescriptor, From 083b9a74fd6e291c1113acd8ef996a940cd5b1a3 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Sat, 1 Oct 2022 22:38:50 -0600 Subject: [PATCH 06/51] [api-docs] Daily api_docs build (#142425) --- 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.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/core.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/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/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.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_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.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_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- api_docs/kbn_core_application_browser_internal.mdx | 2 +- api_docs/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_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 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/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_deprecations_browser.mdx | 2 +- api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- api_docs/kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- api_docs/kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +- api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- api_docs/kbn_core_execution_context_server_internal.mdx | 2 +- api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_router_server_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_injected_metadata_browser.mdx | 2 +- api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +- api_docs/kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/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_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_core_notifications_browser_internal.mdx | 2 +- api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/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_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- .../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +- api_docs/kbn_core_test_helpers_http_setup_browser.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 +- api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/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_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.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- 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 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_get_repo_files.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.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_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_kibana_manifest_schema.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_is_populated_object.mdx | 2 +- api_docs/kbn_ml_string_hash.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 +- api_docs/kbn_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_source_classifier.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +- api_docs/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 +- api_docs/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_user_profile_components.mdx | 2 +- api_docs/kbn_shared_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_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views_mocks.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_some_dev_log.mdx | 2 +- api_docs/kbn_sort_package_json.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_type_summarizer.mdx | 2 +- api_docs/kbn_type_summarizer_core.mdx | 2 +- api_docs/kbn_typed_react_router_config.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/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- 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.mdx | 2 +- 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.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.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.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 +- 404 files changed, 404 insertions(+), 404 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 48d75bc3ce7cb..f91e6ca14c5c6 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: 2022-10-01 +date: 2022-10-02 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 ee9b4276cce64..7c38365d9afe8 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: 2022-10-01 +date: 2022-10-02 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 9d860aa24355e..1adc1287e6f25 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: 2022-10-01 +date: 2022-10-02 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 e72baca86cbf6..3da854ba53f11 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: 2022-10-01 +date: 2022-10-02 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 020843029e21c..5831360d8a8cb 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: 2022-10-01 +date: 2022-10-02 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 b792f664c347f..a25e8c846c7e9 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: 2022-10-01 +date: 2022-10-02 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 a343745fd134b..06dd79899f4f1 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: 2022-10-01 +date: 2022-10-02 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 74326b5f4e705..8524768364141 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 6d8fcf94ddb84..aed43e616a03a 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index f2eb1e6d668cd..166c25203c17a 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: 2022-10-01 +date: 2022-10-02 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 a7f1c3bd483c0..4cf122ec44f1f 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 4cd830231b266..afce96b1debd4 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: 2022-10-01 +date: 2022-10-02 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 7afab612c4a7a..6da76742d8c28 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: 2022-10-01 +date: 2022-10-02 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 1ace57ec36bdc..c5b317f06f243 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 1e2f85a3b6c6c..7af97619b1a37 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.mdx b/api_docs/core.mdx index e3d2f1354aea8..5f59293c8f37b 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 62deee07bd7d8..6778fc3543db5 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: 2022-10-01 +date: 2022-10-02 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 abecd96470ec6..711da58211c55 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: 2022-10-01 +date: 2022-10-02 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 6a49051f2936a..a4aac32db1705 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: 2022-10-01 +date: 2022-10-02 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 44fc64c6bdf41..74a573292d797 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: 2022-10-01 +date: 2022-10-02 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 a82d817ae1317..52ec376fb7cb8 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: 2022-10-01 +date: 2022-10-02 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 3e7214a59cc2f..c0cda63f61621 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: 2022-10-01 +date: 2022-10-02 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 288b3ee585f51..3a448dea572e4 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: 2022-10-01 +date: 2022-10-02 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 f0c7b8022d144..c4933b68c9368 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: 2022-10-01 +date: 2022-10-02 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 9840337f75a70..35b2849b1521e 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: 2022-10-01 +date: 2022-10-02 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 9ce3b6c700638..8b66e010c36d3 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: 2022-10-01 +date: 2022-10-02 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 05d260b1c544f..17ed535ee87c4 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: 2022-10-01 +date: 2022-10-02 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 a3d96055c821b..f4b1fa55c1ed8 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 4eb2eb95d80e1..0c5bbd60e517f 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 4fc141f38747a..60d74fa28721a 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index f22d728079646..06dfec816d605 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: 2022-10-01 +date: 2022-10-02 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 c744310a34b91..e703c38627cbc 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: 2022-10-01 +date: 2022-10-02 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 b9b4af0426fde..591663448e856 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index f09224c581505..9782e32b7985f 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: 2022-10-01 +date: 2022-10-02 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 e1530fd32233e..84dd77d22a239 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: 2022-10-01 +date: 2022-10-02 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 3f0a323b92794..ffd479100976d 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: 2022-10-01 +date: 2022-10-02 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 68f9252a936a6..6d8e9e20d6993 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: 2022-10-01 +date: 2022-10-02 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 e4b29fe30fced..661382fdf519e 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: 2022-10-01 +date: 2022-10-02 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 5fc5dd479579e..d752e0f31cc9d 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: 2022-10-01 +date: 2022-10-02 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 a1aaa7507ccb7..cfa039d75aa8c 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: 2022-10-01 +date: 2022-10-02 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 a7413684bd039..1ea659904646d 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: 2022-10-01 +date: 2022-10-02 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 a882614c990a5..2e6be367a1d99 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: 2022-10-01 +date: 2022-10-02 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 9237719c9d201..f4086885e5073 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: 2022-10-01 +date: 2022-10-02 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 aae35271ff39e..b0d7b0b0e664b 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: 2022-10-01 +date: 2022-10-02 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 df673151690c9..f58979b777a3c 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: 2022-10-01 +date: 2022-10-02 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 da11f3077c1aa..1b1035d10c9ea 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: 2022-10-01 +date: 2022-10-02 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 846aa497ea3bb..8c3a8f9b39334 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: 2022-10-01 +date: 2022-10-02 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 02618661f080e..646de5a025171 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: 2022-10-01 +date: 2022-10-02 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 02f01b4dd86f5..4913f9da7c397 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: 2022-10-01 +date: 2022-10-02 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 acd06327d8886..906b0f9a865c8 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: 2022-10-01 +date: 2022-10-02 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 8046b493fef22..32e6eca8a079c 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: 2022-10-01 +date: 2022-10-02 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 3ddfd870314aa..7eb9651829275 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: 2022-10-01 +date: 2022-10-02 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 0b5d88e7aab73..c727f32752b6f 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: 2022-10-01 +date: 2022-10-02 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 8c09010151113..63b7d486fa201 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: 2022-10-01 +date: 2022-10-02 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 05df2ffc3a487..14e361da22469 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: 2022-10-01 +date: 2022-10-02 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 fb46fbf3c533b..4c8ac407c2a2d 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: 2022-10-01 +date: 2022-10-02 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 ad24537aa0fdc..a5923aea7ee0c 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: 2022-10-01 +date: 2022-10-02 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 77286018c6236..d40d7e303d6b2 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 8196936c8efd9..bafd3ddd8518e 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 6908d7194d17b..42378d31281f1 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: 2022-10-01 +date: 2022-10-02 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 af5a128f54b0d..d183f51fa1495 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: 2022-10-01 +date: 2022-10-02 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 8bbe725e782fe..388cdf51fff4d 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 9edd7ca01eff0..36f4a84d6d37b 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: 2022-10-01 +date: 2022-10-02 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 0c3c64c38fa9e..f142e52067907 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: 2022-10-01 +date: 2022-10-02 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 12e3a5944bfec..ba44a8375901b 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: 2022-10-01 +date: 2022-10-02 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 d5d9c2b4b6937..cebd40add5413 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: 2022-10-01 +date: 2022-10-02 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 3f156bfcb7b35..bcfc55b7a3106 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: 2022-10-01 +date: 2022-10-02 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 9033fdf982ef0..de04343d39dd8 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: 2022-10-01 +date: 2022-10-02 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 dae5a070183a3..640d8bc0daddc 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: 2022-10-01 +date: 2022-10-02 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 25f9c2c92bfd1..37748e5923d7e 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: 2022-10-01 +date: 2022-10-02 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 ca9ca177b00a7..4f93c597b2e4a 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 9c5c4346e45a0..653e93710bb2c 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: 2022-10-01 +date: 2022-10-02 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 0f94bac6c9c8a..ab8ade876b3b3 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: 2022-10-01 +date: 2022-10-02 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 71847c01b1eb0..94415cdc496c6 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: 2022-10-01 +date: 2022-10-02 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 09e9cdc683fa1..bc6057bd65960 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: 2022-10-01 +date: 2022-10-02 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 14753eade649d..953ad7736eaa5 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: 2022-10-01 +date: 2022-10-02 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 7b98319dfa0d5..68b4f9a89cc35 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 7e89a7719619f..633a769efa1ad 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: 2022-10-01 +date: 2022-10-02 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 a8302426d0f98..99ce7b8a19bba 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 8e3217250a2f3..962b5aa586a18 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: 2022-10-01 +date: 2022-10-02 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 b96fac650f3bb..50f8cd64aee1b 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 2e27eedb97be8..476bfef859d00 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: 2022-10-01 +date: 2022-10-02 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 ba566208fe8bb..549084cde27d5 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: 2022-10-01 +date: 2022-10-02 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 71b3793b5edba..2256eb2966edb 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: 2022-10-01 +date: 2022-10-02 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 b2e6e11bf6f52..ad42b9ac3ee42 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: 2022-10-01 +date: 2022-10-02 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 741e1c8d09dcc..22a6845fb05d9 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 534685b36cd21..2d54eb64e6033 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: 2022-10-01 +date: 2022-10-02 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 3ff3d642b506d..a52202f78637b 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: 2022-10-01 +date: 2022-10-02 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 67fdb94f78f3b..192f0654b7d5f 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: 2022-10-01 +date: 2022-10-02 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 3b43b92a5565c..5633664daf6d5 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 84ad21fc47fdb..bbf2c310a588d 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: 2022-10-01 +date: 2022-10-02 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 8c307425ee040..e090ff0a26740 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: 2022-10-01 +date: 2022-10-02 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 3212fb673e27f..fe43394f77fb7 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: 2022-10-01 +date: 2022-10-02 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 4e9dd3d54d358..e9c9b866f0fe7 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: 2022-10-01 +date: 2022-10-02 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 7bd027365d6e9..a86d4bce56287 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: 2022-10-01 +date: 2022-10-02 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 76cd9dba2db5c..9b2fe9f9f192c 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: 2022-10-01 +date: 2022-10-02 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 bfa75dd3afd7a..c2dc15b657d76 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: 2022-10-01 +date: 2022-10-02 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 7f9da63f298a2..e935da7289301 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: 2022-10-01 +date: 2022-10-02 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 2f2615a48955e..2a05ae0c01c52 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: 2022-10-01 +date: 2022-10-02 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 9c806330e3668..2e74725d2f3d3 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: 2022-10-01 +date: 2022-10-02 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 9294b5b708f88..4a541f590e2f5 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: 2022-10-01 +date: 2022-10-02 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 af582f9ff198f..3463e8e9384e2 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: 2022-10-01 +date: 2022-10-02 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 8af8f902e5408..834faf66c67a2 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: 2022-10-01 +date: 2022-10-02 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_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index aaf8373e9ca7c..f22445d1e10ed 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: 2022-10-01 +date: 2022-10-02 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 9ed7dbaa5e2d6..fe429f0f502ae 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: 2022-10-01 +date: 2022-10-02 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 8186b42e0220e..9d162ecc81bb8 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: 2022-10-01 +date: 2022-10-02 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 a0c063e840094..be46292c9bc9e 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: 2022-10-01 +date: 2022-10-02 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 221ae3385ddd6..aa7f5b3d5df79 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: 2022-10-01 +date: 2022-10-02 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 2156646c76f0a..1380bd04beea9 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: 2022-10-01 +date: 2022-10-02 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 f6c8668e76f26..00087d6131cc8 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: 2022-10-01 +date: 2022-10-02 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 3d39b753f2abb..e4e5a9223ba0b 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: 2022-10-01 +date: 2022-10-02 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 6e6ffeac0f653..251b2d507b168 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: 2022-10-01 +date: 2022-10-02 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 203f9a365fdef..10c16f282a6f9 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: 2022-10-01 +date: 2022-10-02 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 cd573bfd8776c..8d29eb118d55c 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: 2022-10-01 +date: 2022-10-02 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_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index e2134b925ba81..0d64e581664eb 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: 2022-10-01 +date: 2022-10-02 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 9fc96d5d598f3..6d31a54a56052 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: 2022-10-01 +date: 2022-10-02 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 7a6634ac7f8da..9c7aa10193724 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: 2022-10-01 +date: 2022-10-02 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 edcf87b960941..bc77cf44b3bd3 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: 2022-10-01 +date: 2022-10-02 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 35e8a6ce26327..a976ebcc9a0e8 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: 2022-10-01 +date: 2022-10-02 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 8167097daa0d7..a3af9d6298c58 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: 2022-10-01 +date: 2022-10-02 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 b45ecd8257b07..42feea3f29fba 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: 2022-10-01 +date: 2022-10-02 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 031456455b1ee..1d24379f441f6 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: 2022-10-01 +date: 2022-10-02 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 381310fcf1546..48c6d6862f4dd 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: 2022-10-01 +date: 2022-10-02 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 05f768b81b3ca..8195d4f623893 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: 2022-10-01 +date: 2022-10-02 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 52776680286a7..85fa2c4715748 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: 2022-10-01 +date: 2022-10-02 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 63cc80d8fa739..feabe3a92d7f7 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: 2022-10-01 +date: 2022-10-02 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 309f4ef8839d3..7b9875f589c6b 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: 2022-10-01 +date: 2022-10-02 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 d4df75707a940..1e0c6217b952f 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: 2022-10-01 +date: 2022-10-02 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 a5ade116a7c0e..7bc107af9a805 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: 2022-10-01 +date: 2022-10-02 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 9a09fe50975c2..95497dfe20dc5 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: 2022-10-01 +date: 2022-10-02 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 7fffb0ccbd3d1..5f7c6dc637c89 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: 2022-10-01 +date: 2022-10-02 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 7c8733b369f01..bbda34217fa74 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: 2022-10-01 +date: 2022-10-02 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 f283e05e563d0..fad63abe19936 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: 2022-10-01 +date: 2022-10-02 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 d40d5501ca99c..006d8b447663b 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: 2022-10-01 +date: 2022-10-02 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 cc1a420ccba12..96e88c7e5c2a2 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: 2022-10-01 +date: 2022-10-02 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 25f0346340ea2..7e3559438efa3 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: 2022-10-01 +date: 2022-10-02 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 87eb2c5dd2fdc..e6ab7c3d89159 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: 2022-10-01 +date: 2022-10-02 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 1023c4c175a35..17fee1daced5d 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: 2022-10-01 +date: 2022-10-02 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 20aa61f141c8d..ed465631b22b5 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: 2022-10-01 +date: 2022-10-02 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 4fdaf9d97f6fd..89eb21cdb4d55 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: 2022-10-01 +date: 2022-10-02 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 81e62c8036e09..3e1fbaec76d31 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: 2022-10-01 +date: 2022-10-02 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 548174fbd5d8a..13817b60a15a0 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: 2022-10-01 +date: 2022-10-02 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 16c6d6b510208..3380e7e1a2b4c 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: 2022-10-01 +date: 2022-10-02 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 094479784c51c..4020a1edd3ae5 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: 2022-10-01 +date: 2022-10-02 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 41f882912cfec..a48229db2238e 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: 2022-10-01 +date: 2022-10-02 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 b00edeb7d68be..6c86cd7218b8a 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: 2022-10-01 +date: 2022-10-02 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 17d48963b8b76..a41bd0793732d 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: 2022-10-01 +date: 2022-10-02 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_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 2ee35b66a8f69..98354a9107f34 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: 2022-10-01 +date: 2022-10-02 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 750d6c7b3befb..99ac50e292b6b 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: 2022-10-01 +date: 2022-10-02 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 3a9e92dbe6507..fd022dfb3eea2 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: 2022-10-01 +date: 2022-10-02 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 27352519951fb..f058d1e28dec7 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: 2022-10-01 +date: 2022-10-02 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 2aa52e0dc1c00..1b6cf98922c1b 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: 2022-10-01 +date: 2022-10-02 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 a8e82e67d22cc..bc10c115fb754 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: 2022-10-01 +date: 2022-10-02 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 10be37f40c29e..02d199810fef1 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: 2022-10-01 +date: 2022-10-02 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 ef29632390089..b391482c1e673 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: 2022-10-01 +date: 2022-10-02 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 d6ed176629a21..8bdf305b19645 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: 2022-10-01 +date: 2022-10-02 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 ee1ed897ede0f..949a0fde56bc7 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: 2022-10-01 +date: 2022-10-02 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.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index 7b120559dc173..f93ad919d9fe8 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.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 3e7af178ec124..6389c0fa21a8c 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: 2022-10-01 +date: 2022-10-02 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 d2aabf046c88e..f1c6bacc8a191 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: 2022-10-01 +date: 2022-10-02 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 bc12a2785cc02..91fca25dd4974 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: 2022-10-01 +date: 2022-10-02 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 7480b362f29b9..8aee8a80734c6 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: 2022-10-01 +date: 2022-10-02 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 f21296396e1de..d76de30044e47 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: 2022-10-01 +date: 2022-10-02 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_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 61be5ea720a47..575ad511b8fdc 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: 2022-10-01 +date: 2022-10-02 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 af6dd35e83129..02793dca49021 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: 2022-10-01 +date: 2022-10-02 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 a09ca7932e57b..259d3fd65a265 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: 2022-10-01 +date: 2022-10-02 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 c01ad905bc16f..81710e21c33ff 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: 2022-10-01 +date: 2022-10-02 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 d31c4dd48ee55..e3e171db8439c 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: 2022-10-01 +date: 2022-10-02 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 9f15f6cf73905..bacd5044596db 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: 2022-10-01 +date: 2022-10-02 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 e93ec0476f250..eadb43389a164 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: 2022-10-01 +date: 2022-10-02 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 5a94cd10fcb04..baaf23f8822d5 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: 2022-10-01 +date: 2022-10-02 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 43e64914cfb32..0b68bd525a649 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: 2022-10-01 +date: 2022-10-02 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 557e650a73b5d..08f7016062533 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: 2022-10-01 +date: 2022-10-02 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 a3ebabf7f32c7..5b065122b113b 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: 2022-10-01 +date: 2022-10-02 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 804d680bae804..e540991a1252e 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: 2022-10-01 +date: 2022-10-02 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 e15645fb9ab88..8bea394dae010 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: 2022-10-01 +date: 2022-10-02 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 a64c369bcba42..ad8e17b446e9e 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: 2022-10-01 +date: 2022-10-02 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 1192b6244a3a2..514474ea2ef25 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: 2022-10-01 +date: 2022-10-02 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 0eb8bc161976f..bae3dbcf63251 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: 2022-10-01 +date: 2022-10-02 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 d8b0afcc889b6..0544899499223 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: 2022-10-01 +date: 2022-10-02 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 7982df2fb243d..9b739d1209d1b 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: 2022-10-01 +date: 2022-10-02 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 9c70f02f78d00..5b9a435bacaff 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: 2022-10-01 +date: 2022-10-02 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 6bd600cfb198c..b9fa84b19f8cc 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: 2022-10-01 +date: 2022-10-02 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_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index be27903d8b485..0906ee4ed8381 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: 2022-10-01 +date: 2022-10-02 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 b4745db58332c..6b97c1f880675 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: 2022-10-01 +date: 2022-10-02 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 47752b2ae6726..520e18ebb3e77 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: 2022-10-01 +date: 2022-10-02 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_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 856ab9b0e54bf..020fabbec183c 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: 2022-10-01 +date: 2022-10-02 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 79709ae898489..6da27ef121439 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: 2022-10-01 +date: 2022-10-02 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 b88c155714125..df6fc60584f43 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: 2022-10-01 +date: 2022-10-02 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 f28c4920181cf..81a29c9d9a727 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: 2022-10-01 +date: 2022-10-02 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 2bf85267549ab..b2eb85135b8d3 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: 2022-10-01 +date: 2022-10-02 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 3f364ace01fd9..d6eb21156cef7 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: 2022-10-01 +date: 2022-10-02 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 2b9b805aa0d51..c0db5893ecdcd 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: 2022-10-01 +date: 2022-10-02 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 94ee2b5e95dd7..6b1df9e60f5a6 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: 2022-10-01 +date: 2022-10-02 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 f2e58e7919b5d..3767a975778f6 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: 2022-10-01 +date: 2022-10-02 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 2f9686598dae2..46e635afccffe 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: 2022-10-01 +date: 2022-10-02 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 67a62a9d8f82d..d9dcf279b04e4 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: 2022-10-01 +date: 2022-10-02 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 f006d43902df5..b273522ddd598 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: 2022-10-01 +date: 2022-10-02 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 962c7d5ac0112..4a63a5bd89ef0 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: 2022-10-01 +date: 2022-10-02 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 c07112e6ad54c..c02fc259a89b2 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: 2022-10-01 +date: 2022-10-02 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 40a150c47507e..78b702fb4478d 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: 2022-10-01 +date: 2022-10-02 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 9d63c473addd9..90c8b849e0ba0 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: 2022-10-01 +date: 2022-10-02 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 27238b71e9474..f349189ab730f 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: 2022-10-01 +date: 2022-10-02 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 6ca747830ab44..8c5aeb1e8262b 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: 2022-10-01 +date: 2022-10-02 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 768e628a8af99..d9566708b3aeb 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: 2022-10-01 +date: 2022-10-02 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 970cb7ab087e3..a55470733390a 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: 2022-10-01 +date: 2022-10-02 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 cd7bbe51e9042..439d255043861 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: 2022-10-01 +date: 2022-10-02 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 da072c5533deb..96f568f178a40 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: 2022-10-01 +date: 2022-10-02 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 0a9599ba8cac2..85b8475863cf3 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: 2022-10-01 +date: 2022-10-02 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 57940d8a2498b..957576c2e148f 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: 2022-10-01 +date: 2022-10-02 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 ba62b21644351..aeaf0b8ee1105 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: 2022-10-01 +date: 2022-10-02 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_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index c3939a291a656..45aa25f3d172d 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: 2022-10-01 +date: 2022-10-02 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 6148fce410496..4b3a42ce6cc77 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: 2022-10-01 +date: 2022-10-02 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 5fb0272483d51..92f080e0f5285 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: 2022-10-01 +date: 2022-10-02 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 28de861c3382d..4a1529581735e 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: 2022-10-01 +date: 2022-10-02 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 d9a6c2b14d251..6fb6935573a7b 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: 2022-10-01 +date: 2022-10-02 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 3dd7677225f06..31697c023ddaa 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: 2022-10-01 +date: 2022-10-02 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 8a73e44070355..574d0ec8e7b47 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: 2022-10-01 +date: 2022-10-02 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 b86978a4c0f51..0997bcdc22115 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: 2022-10-01 +date: 2022-10-02 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 632bc077b3e16..7b4df9498b908 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: 2022-10-01 +date: 2022-10-02 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 43ce870fd9d1c..d222af41c3fd9 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: 2022-10-01 +date: 2022-10-02 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 982847f0d737c..976fc475761a2 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: 2022-10-01 +date: 2022-10-02 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 55d78bd6eee1b..9bd4dab752efb 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: 2022-10-01 +date: 2022-10-02 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 4a0c5588f0be5..8dd7253ab6ab8 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: 2022-10-01 +date: 2022-10-02 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 521e5b631e391..a8049f93e0422 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: 2022-10-01 +date: 2022-10-02 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 58ddc73e08dfc..d5209c039a16a 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 644ca142bc7d0..76052024f029d 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: 2022-10-01 +date: 2022-10-02 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 61773de18ba45..39e11f8614d83 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: 2022-10-01 +date: 2022-10-02 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 33f29af6449f5..95871faf86786 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: 2022-10-01 +date: 2022-10-02 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 7160587ae7c07..198147e7c8229 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: 2022-10-01 +date: 2022-10-02 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 765e362ac5000..b9922d230eb74 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index d74e0af0ba44c..3fe12c91c32a4 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: 2022-10-01 +date: 2022-10-02 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 bd64af2bd9d2f..3545dbecd6961 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: 2022-10-01 +date: 2022-10-02 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 16b1791d70aab..b4270c9011bbe 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 516930bec71f4..ca423dde44514 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: 2022-10-01 +date: 2022-10-02 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 f8cfd1377e566..f422e71b9a8b6 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 0125789a530ac..a0bf853e54fda 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index faa1089fab654..42124a156bffe 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: 2022-10-01 +date: 2022-10-02 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 756b802d0c32d..883203cc6f10a 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: 2022-10-01 +date: 2022-10-02 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 bb82f2d259771..8791798c64654 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: 2022-10-01 +date: 2022-10-02 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 f745989c9c8a1..ae1139f5d3604 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: 2022-10-01 +date: 2022-10-02 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 6ddc526b2548a..1c2551073eb20 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: 2022-10-01 +date: 2022-10-02 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 42e063e32e7f1..9e670335e3a9e 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 984eab3d218e8..816ea84cc9691 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 0fcc343e3d190..88db861974d6f 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: 2022-10-01 +date: 2022-10-02 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 2b73efa6062ac..be13032975df7 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 0dc1d0876d3a2..71c8b52c08c7d 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: 2022-10-01 +date: 2022-10-02 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 f8639118d81e0..67b69bdc69372 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: 2022-10-01 +date: 2022-10-02 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 78d78be33902f..287c326105c8a 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index f8c83ac7998ac..2f8cc3ebfa05c 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: 2022-10-01 +date: 2022-10-02 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 894230ad1d11f..119a20db590da 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: 2022-10-01 +date: 2022-10-02 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 034bcc168b9e6..2dd42caa19c20 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: 2022-10-01 +date: 2022-10-02 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 417f8ba3a65f1..5f98c468a61c0 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: 2022-10-01 +date: 2022-10-02 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 7e46d2dcb1f91..15376c2757602 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 5dc82ade1a649..f4f8350b8df63 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index e88bca58e89eb..1121ec512bc39 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: 2022-10-01 +date: 2022-10-02 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 dee1f848efd66..fe90ec4cc221f 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: 2022-10-01 +date: 2022-10-02 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 ef7abd6df1bfe..0de9f54e62995 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: 2022-10-01 +date: 2022-10-02 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 cb067e4a5e48f..007e3dd15767c 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: 2022-10-01 +date: 2022-10-02 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 2c28a423148f0..cafb9d704b491 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: 2022-10-01 +date: 2022-10-02 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_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index e1380d56c305b..ea7bb98fca111 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: 2022-10-01 +date: 2022-10-02 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 960bb4da53ce7..cd15a3909e9cb 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 00938629a9610..f418088dad248 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: 2022-10-01 +date: 2022-10-02 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 0a5ae8a689d82..8aef1a04d1a5f 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: 2022-10-01 +date: 2022-10-02 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 b6440aacaa070..a784f125dd4a3 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: 2022-10-01 +date: 2022-10-02 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 f92a80367e024..752a04593d5ed 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: 2022-10-01 +date: 2022-10-02 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 56e2cd559c032..7c7ace4751a93 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: 2022-10-01 +date: 2022-10-02 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 23bb7dc57c4e1..b76a868134479 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: 2022-10-01 +date: 2022-10-02 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 c685665c1cd4b..a5ff4e0a5f172 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: 2022-10-01 +date: 2022-10-02 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 e603b0c70740d..e0f55f2faed98 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 0aa2a7e6d7e24..9adf212a87d0c 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index d327087b29294..77cd942716abf 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: 2022-10-01 +date: 2022-10-02 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 3912476bf911c..ac51a31185439 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 2f31f51131f61..a1831303286bd 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: 2022-10-01 +date: 2022-10-02 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 4777f33dc85d5..5e5dec3f0efa7 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: 2022-10-01 +date: 2022-10-02 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 07b9c7684cbb9..25b3f6af8b102 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: 2022-10-01 +date: 2022-10-02 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 3c721f46f48cb..09850981c9212 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: 2022-10-01 +date: 2022-10-02 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 1d452af9ea156..6de7cb1f0d6c8 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: 2022-10-01 +date: 2022-10-02 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 59df749d44291..baf98e2fd0b00 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: 2022-10-01 +date: 2022-10-02 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 8063f1fd1592f..500c8c72ca837 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: 2022-10-01 +date: 2022-10-02 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 184877c74cfaf..5b26d74de8a7f 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: 2022-10-01 +date: 2022-10-02 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 933a87c620ba4..05e6ed82f6ddf 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: 2022-10-01 +date: 2022-10-02 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 0f3f3805ca320..e8c0fc13f6e10 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: 2022-10-01 +date: 2022-10-02 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 6b810acdc8e7d..8203f6334e051 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: 2022-10-01 +date: 2022-10-02 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 aceb1ec1d65d6..a5fea43827df3 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: 2022-10-01 +date: 2022-10-02 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 11cfe00c5eb62..5fc96c25aa1d6 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: 2022-10-01 +date: 2022-10-02 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 4e4ba39e56d9d..205d44e5872cb 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: 2022-10-01 +date: 2022-10-02 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 5a002fe9b6348..3d373165a9284 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: 2022-10-01 +date: 2022-10-02 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 53bffb726d7e0..2d765470b354b 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: 2022-10-01 +date: 2022-10-02 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 ba975b8446923..760277af99b74 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: 2022-10-01 +date: 2022-10-02 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_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index 9c30c42972615..bbbfb6144deb5 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: 2022-10-01 +date: 2022-10-02 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_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index cf6491d338fe1..09dad01095487 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: 2022-10-01 +date: 2022-10-02 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 e055ce5c7dbec..52a088948e2b6 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: 2022-10-01 +date: 2022-10-02 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 63958a2cb0297..472e6b89741c9 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: 2022-10-01 +date: 2022-10-02 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 e8dacbe7203bb..3999dd6522fd6 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: 2022-10-01 +date: 2022-10-02 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_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 421f7f9d7187b..2c6d531cd186f 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: 2022-10-01 +date: 2022-10-02 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_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 99d63502639cf..9ecba55b278c4 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: 2022-10-01 +date: 2022-10-02 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 2deff84864974..2c999a65117a6 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: 2022-10-01 +date: 2022-10-02 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 883bd3ab03a8a..7426d22515d58 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: 2022-10-01 +date: 2022-10-02 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 0db5daddc45c9..d815677cdbbb0 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: 2022-10-01 +date: 2022-10-02 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 a9353ec774046..285fff4f69d53 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: 2022-10-01 +date: 2022-10-02 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 99d9c415c15b1..e753d5c2306e5 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: 2022-10-01 +date: 2022-10-02 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 2417b72b9ffe3..3e801da7773bf 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: 2022-10-01 +date: 2022-10-02 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 68dfc645ddd8d..7d0ed072b3404 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: 2022-10-01 +date: 2022-10-02 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 8f977f1cc7a9a..04e54301c0928 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: 2022-10-01 +date: 2022-10-02 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 109a924fb3b9a..574f7592eec1e 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: 2022-10-01 +date: 2022-10-02 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 07a01ac671dac..9886feeb304b4 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: 2022-10-01 +date: 2022-10-02 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 10af2f7f2c160..3688d0c50fd5b 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: 2022-10-01 +date: 2022-10-02 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 0b0f2e48ec0a0..49e38c10a1ab6 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: 2022-10-01 +date: 2022-10-02 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_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 956de3dd05849..baf10caeedb7d 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: 2022-10-01 +date: 2022-10-02 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 f10769e16c69d..05d0ab8de20a5 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: 2022-10-01 +date: 2022-10-02 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 a99179ef9d406..5a6e193562b5a 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: 2022-10-01 +date: 2022-10-02 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 6abf6549e0565..fd0593f5bf74e 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: 2022-10-01 +date: 2022-10-02 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 e44419942c796..6f8f8a20349f3 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index e25a62c5079ae..d3796d5d79dd3 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index 28fe6feb5d19d..6ba6f268cd132 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 05b56017a08ff..de90284104e3b 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: 2022-10-01 +date: 2022-10-02 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 be9d33d159f3c..13b3aa2b6ebbd 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: 2022-10-01 +date: 2022-10-02 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 dd904c049f3bd..e57f44e869e1b 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: 2022-10-01 +date: 2022-10-02 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 b854992fde335..730dfdd548326 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: 2022-10-01 +date: 2022-10-02 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 82eab77aca0cf..3e4061d439386 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: 2022-10-01 +date: 2022-10-02 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 bd59838a870d1..80bce2c3d3bb8 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: 2022-10-01 +date: 2022-10-02 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 c5b72af903b3a..38296f51f0ea9 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: 2022-10-01 +date: 2022-10-02 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 abd0555459d96..d038b65a9b437 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index 09bc46b76cc97..1dc49f971de9d 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index 60509b4421a9d..cc8f70eddfb49 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 614b52b535a99..fa9aec2765d0e 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: 2022-10-01 +date: 2022-10-02 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_theme.mdx b/api_docs/kbn_ui_theme.mdx index 86b99ea131b43..a23a496ec08a1 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: 2022-10-01 +date: 2022-10-02 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 1411d1f11e0f6..e22681ed1b21f 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: 2022-10-01 +date: 2022-10-02 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 124801b6982ed..4e184219ce29e 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: 2022-10-01 +date: 2022-10-02 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 286cf41a0f814..e2ede8850299f 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: 2022-10-01 +date: 2022-10-02 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 1d15139e5ad5d..9fc2d665396ba 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: 2022-10-01 +date: 2022-10-02 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 3fa079e3178f7..7822a652e9dc9 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: 2022-10-01 +date: 2022-10-02 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 ac6ccdaefbbf2..3f7cc296f0789 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: 2022-10-01 +date: 2022-10-02 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 e8016cd77287b..721d581c9aebb 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: 2022-10-01 +date: 2022-10-02 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 dff8ce771bdee..331c1c9cc68ef 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: 2022-10-01 +date: 2022-10-02 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 318aa79a29754..927b730fbd080 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: 2022-10-01 +date: 2022-10-02 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 01c5bc3141bc4..29f7f9b863fe9 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: 2022-10-01 +date: 2022-10-02 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 e1894af2cbfa0..cfe740cacdaf4 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: 2022-10-01 +date: 2022-10-02 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 d592aa08d8751..1f90c8557e07e 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: 2022-10-01 +date: 2022-10-02 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 a65fb069d0ac4..27be5086f77e3 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: 2022-10-01 +date: 2022-10-02 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 e4e33df28af34..0fe469c827997 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: 2022-10-01 +date: 2022-10-02 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 bcb5fc7434722..0dab3bc7dfeb7 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: 2022-10-01 +date: 2022-10-02 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 e1409873d0457..606529ea480d8 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: 2022-10-01 +date: 2022-10-02 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 d6ef5a21773f9..cb8141b2fa2eb 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: 2022-10-01 +date: 2022-10-02 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 f725548e9cf9c..a220cc633fdbe 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: 2022-10-01 +date: 2022-10-02 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 c72b46a487e9e..d57492b577032 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: 2022-10-01 +date: 2022-10-02 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 41785b90b47d3..4fa7372e846d3 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: 2022-10-01 +date: 2022-10-02 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 4d964c688c8af..ace04be9dfd65 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: 2022-10-01 +date: 2022-10-02 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 d084497544343..ea74ae679ce8f 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index e40080c8ecf58..63effa9722c28 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 266faca28aede..0c73ce5aa345c 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: 2022-10-01 +date: 2022-10-02 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 65ed265de39cf..51cba79e857c9 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 581cd5ef4d51a..b7aa3b787718d 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: 2022-10-01 +date: 2022-10-02 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 817f03f981b13..877b703d7e169 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: 2022-10-01 +date: 2022-10-02 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 e074406c74e89..9f3abb5e1d970 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: 2022-10-01 +date: 2022-10-02 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 5c1dc0c2685a3..53a33e3f3e021 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: 2022-10-01 +date: 2022-10-02 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 df1bff5712972..4e870d52ebe4e 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index ec349c4ad0b5e..3a2aa8b507fe9 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 5edda54c6f139..4092856f85483 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index d4d313bef79fb..6e00cff68eeaf 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 1ae6118247ce5..92585b79379f3 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 3a2c36b7cc7f4..f97c77aca56d9 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 6e788653e193a..69df9871d9f65 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 1e81b07e6d24c..9e3ca4f8d4e8f 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 2146968cda903..ce10df747f588 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index d88e2e95c6387..db9cf0112901e 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index dd4d7868a8991..88a61fbfbefd6 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 549878d171ab4..574757b6488dd 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: 2022-10-01 +date: 2022-10-02 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 eac5df4aa58b0..fd2ceda90f9ee 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: 2022-10-01 +date: 2022-10-02 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 212526e3c0214..dae50a1df7b65 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: 2022-10-01 +date: 2022-10-02 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 a3534fb4ba277..da7c56ca51c58 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: 2022-10-01 +date: 2022-10-02 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 5c626675eef66..12fb3c0f940cb 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: 2022-10-01 +date: 2022-10-02 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 b8766114204c6..ad1ae785ccc95 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: 2022-10-01 +date: 2022-10-02 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 5bdce3da3e229..366616671516d 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: 2022-10-01 +date: 2022-10-02 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 415c51b650dcb..811c79896d7ec 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: 2022-10-01 +date: 2022-10-02 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 e730f9b56148e..0f244bdfa77ac 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: 2022-10-01 +date: 2022-10-02 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 8cc947166e677..27b6af9549d74 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: 2022-10-01 +date: 2022-10-02 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 7d0012a2281a9..e40ec8f867a6e 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: 2022-10-01 +date: 2022-10-02 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 27fb11dfae9f9..15225549bbe79 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: 2022-10-01 +date: 2022-10-02 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 e358c37feb52c..e962b1c74b73a 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: 2022-10-01 +date: 2022-10-02 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 54c0a5d93409a..bc8d91d1ee1df 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: 2022-10-01 +date: 2022-10-02 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 9c00897d8c1fd..f12a30a01feae 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: 2022-10-01 +date: 2022-10-02 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 510d527d883c6..0c044093de8da 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index c94cb7a1a751d..d628475506628 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index a67988ed1155e..a11e23546d229 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: 2022-10-01 +date: 2022-10-02 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 a2d9c4d869b7b..273a9ab86497e 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: 2022-10-01 +date: 2022-10-02 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 ccea854bb0735..d3614845b2485 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 76011654fbea5..efac37faf56d0 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: 2022-10-01 +date: 2022-10-02 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 14a0d57226b4c..b0ffa71265a1c 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: 2022-10-01 +date: 2022-10-02 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 f7410808300ee..ef65b102aed74 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: 2022-10-01 +date: 2022-10-02 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 a62461b88ceec..e41693e5efca0 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: 2022-10-01 +date: 2022-10-02 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 7d7a4df32df81..cfafdaf068029 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: 2022-10-01 +date: 2022-10-02 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 3a1a53675deec..f63baebfa4b2a 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: 2022-10-01 +date: 2022-10-02 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 cfdaf08f6cc1b..b91e25ae3893f 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: 2022-10-01 +date: 2022-10-02 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 b26a487e9cbbc..49ba54cdc57d3 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: 2022-10-01 +date: 2022-10-02 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 a3aaeb805b0c3..93e84b16f4d28 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: 2022-10-01 +date: 2022-10-02 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 aff9846178613..90bae1cb686f6 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: 2022-10-01 +date: 2022-10-02 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 c1f44c36c05d8..06b9a57efddf5 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: 2022-10-01 +date: 2022-10-02 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 179e2273cf670..7aafcad29e0fa 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: 2022-10-01 +date: 2022-10-02 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 691934f5c9b10..324013c67331a 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: 2022-10-01 +date: 2022-10-02 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 a18309726008d..d8e1da6a13e95 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: 2022-10-01 +date: 2022-10-02 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 9733a2e51f76c..4722a4b75256e 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: 2022-10-01 +date: 2022-10-02 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 1b87bc4d3156d..36d12fab03cfc 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: 2022-10-01 +date: 2022-10-02 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From de1c22a07429001ce582dd28d97860754f5b5220 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Sun, 2 Oct 2022 22:39:26 -0600 Subject: [PATCH 07/51] [api-docs] Daily api_docs build (#142438) --- 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.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/core.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/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/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.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_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.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_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- api_docs/kbn_core_application_browser_internal.mdx | 2 +- api_docs/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_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 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/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_deprecations_browser.mdx | 2 +- api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- api_docs/kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- api_docs/kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +- api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- api_docs/kbn_core_execution_context_server_internal.mdx | 2 +- api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_router_server_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_injected_metadata_browser.mdx | 2 +- api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +- api_docs/kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/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_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_core_notifications_browser_internal.mdx | 2 +- api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/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_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- .../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +- api_docs/kbn_core_test_helpers_http_setup_browser.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 +- api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/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 +- api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/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_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.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- 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 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_get_repo_files.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.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_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_kibana_manifest_schema.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_is_populated_object.mdx | 2 +- api_docs/kbn_ml_string_hash.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 +- api_docs/kbn_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_source_classifier.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +- api_docs/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 +- api_docs/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_user_profile_components.mdx | 2 +- api_docs/kbn_shared_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_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views_mocks.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_some_dev_log.mdx | 2 +- api_docs/kbn_sort_package_json.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_type_summarizer.mdx | 2 +- api_docs/kbn_type_summarizer_core.mdx | 2 +- api_docs/kbn_typed_react_router_config.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/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- 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.mdx | 2 +- 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.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.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.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 +- 404 files changed, 404 insertions(+), 404 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index f91e6ca14c5c6..8c70634191ac9 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: 2022-10-02 +date: 2022-10-03 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 7c38365d9afe8..5f708b7bd5b22 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: 2022-10-02 +date: 2022-10-03 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 1adc1287e6f25..affc8c08a679c 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: 2022-10-02 +date: 2022-10-03 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 3da854ba53f11..dba2b5b8a03fa 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: 2022-10-02 +date: 2022-10-03 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 5831360d8a8cb..e327d3d9ef266 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: 2022-10-02 +date: 2022-10-03 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 a25e8c846c7e9..8465fcc62bbbe 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: 2022-10-02 +date: 2022-10-03 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 06dd79899f4f1..b4d39167b8afc 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: 2022-10-02 +date: 2022-10-03 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 8524768364141..964d7c080f50e 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index aed43e616a03a..1b56bb9f2bb5a 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 166c25203c17a..5971c6140b9d0 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: 2022-10-02 +date: 2022-10-03 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 4cf122ec44f1f..07a722e9fc63c 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index afce96b1debd4..8cb19bfe8beb9 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: 2022-10-02 +date: 2022-10-03 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 6da76742d8c28..6c31131981413 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: 2022-10-02 +date: 2022-10-03 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 c5b317f06f243..69717a2855de0 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 7af97619b1a37..d120725ebf6c3 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 5f59293c8f37b..2ce73b73214aa 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 6778fc3543db5..c9bd9c16e7214 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: 2022-10-02 +date: 2022-10-03 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 711da58211c55..7fa93934def07 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: 2022-10-02 +date: 2022-10-03 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 a4aac32db1705..4f0b134f643ca 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: 2022-10-02 +date: 2022-10-03 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 74a573292d797..3cda1cdf63de6 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: 2022-10-02 +date: 2022-10-03 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 52ec376fb7cb8..09c0ef0d696bf 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: 2022-10-02 +date: 2022-10-03 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 c0cda63f61621..c3b582462fd7d 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: 2022-10-02 +date: 2022-10-03 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 3a448dea572e4..34855c7100cec 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: 2022-10-02 +date: 2022-10-03 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 c4933b68c9368..5daa20fdddfef 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: 2022-10-02 +date: 2022-10-03 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 35b2849b1521e..fa43c84f3166a 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: 2022-10-02 +date: 2022-10-03 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 8b66e010c36d3..817619ccf49c9 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: 2022-10-02 +date: 2022-10-03 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 17ed535ee87c4..6df0430d04c27 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: 2022-10-02 +date: 2022-10-03 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 f4b1fa55c1ed8..3c34e78a89e7f 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 0c5bbd60e517f..abe2810379ec2 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 60d74fa28721a..882abd4cb6150 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 06dfec816d605..76be86527aaed 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: 2022-10-02 +date: 2022-10-03 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 e703c38627cbc..9c9793bd2bcfb 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: 2022-10-02 +date: 2022-10-03 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 591663448e856..bc90ebb67c09b 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 9782e32b7985f..4c4b222a02a7c 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: 2022-10-02 +date: 2022-10-03 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 84dd77d22a239..5ab0874911417 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: 2022-10-02 +date: 2022-10-03 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 ffd479100976d..5aa1eae40de53 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: 2022-10-02 +date: 2022-10-03 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 6d8e9e20d6993..ba021086e294a 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: 2022-10-02 +date: 2022-10-03 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 661382fdf519e..bf991156be210 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: 2022-10-02 +date: 2022-10-03 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 d752e0f31cc9d..2c09bd5d65d46 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: 2022-10-02 +date: 2022-10-03 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 cfa039d75aa8c..482e1d361a157 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: 2022-10-02 +date: 2022-10-03 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 1ea659904646d..2ab9af9772d04 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: 2022-10-02 +date: 2022-10-03 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 2e6be367a1d99..908d90469c751 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: 2022-10-02 +date: 2022-10-03 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 f4086885e5073..aa2ac31f046ec 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: 2022-10-02 +date: 2022-10-03 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 b0d7b0b0e664b..fd4412ad3f9e9 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: 2022-10-02 +date: 2022-10-03 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 f58979b777a3c..4f1bd9723f36a 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: 2022-10-02 +date: 2022-10-03 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 1b1035d10c9ea..d17081eed3cbf 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: 2022-10-02 +date: 2022-10-03 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 8c3a8f9b39334..daa61ecf37e7b 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: 2022-10-02 +date: 2022-10-03 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 646de5a025171..aaf66fd40fa4e 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: 2022-10-02 +date: 2022-10-03 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 4913f9da7c397..8e5467dc9cff3 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: 2022-10-02 +date: 2022-10-03 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 906b0f9a865c8..a2a032c0c0bde 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: 2022-10-02 +date: 2022-10-03 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 32e6eca8a079c..e650bf57eac7f 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: 2022-10-02 +date: 2022-10-03 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 7eb9651829275..cf00311b239a8 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: 2022-10-02 +date: 2022-10-03 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 c727f32752b6f..0eed4b0b713d0 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: 2022-10-02 +date: 2022-10-03 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 63b7d486fa201..353dfa02a7830 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: 2022-10-02 +date: 2022-10-03 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 14e361da22469..8b7f40f4a359b 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: 2022-10-02 +date: 2022-10-03 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 4c8ac407c2a2d..040d820604007 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: 2022-10-02 +date: 2022-10-03 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 a5923aea7ee0c..768f6188371fc 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: 2022-10-02 +date: 2022-10-03 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 d40d7e303d6b2..8491d90df2446 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index bafd3ddd8518e..b63495e177924 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 42378d31281f1..97d12a56906f0 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: 2022-10-02 +date: 2022-10-03 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 d183f51fa1495..899b3205a819c 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: 2022-10-02 +date: 2022-10-03 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 388cdf51fff4d..30beb41d12fae 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 36f4a84d6d37b..e3ee1798496d0 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: 2022-10-02 +date: 2022-10-03 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 f142e52067907..34f9d8fcde852 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: 2022-10-02 +date: 2022-10-03 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 ba44a8375901b..7ab9b9d8573c5 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: 2022-10-02 +date: 2022-10-03 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 cebd40add5413..4cb29a4632cab 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: 2022-10-02 +date: 2022-10-03 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 bcfc55b7a3106..6f257bb854320 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: 2022-10-02 +date: 2022-10-03 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 de04343d39dd8..0dcf9a1b797bc 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: 2022-10-02 +date: 2022-10-03 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 640d8bc0daddc..60ab8f506c3a5 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: 2022-10-02 +date: 2022-10-03 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 37748e5923d7e..c459ac8369da3 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: 2022-10-02 +date: 2022-10-03 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 4f93c597b2e4a..aaf236aab90f0 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 653e93710bb2c..35df4e16f17cd 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: 2022-10-02 +date: 2022-10-03 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 ab8ade876b3b3..0d18980e0b1c0 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: 2022-10-02 +date: 2022-10-03 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 94415cdc496c6..c4b9427b1a333 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: 2022-10-02 +date: 2022-10-03 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 bc6057bd65960..f06cb724cc729 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: 2022-10-02 +date: 2022-10-03 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 953ad7736eaa5..cd5176593f6ad 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: 2022-10-02 +date: 2022-10-03 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 68b4f9a89cc35..d6317c64bf48c 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 633a769efa1ad..e916c19f16197 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: 2022-10-02 +date: 2022-10-03 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 99ce7b8a19bba..9ba0d5aeeacf4 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 962b5aa586a18..ca208a21625bd 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: 2022-10-02 +date: 2022-10-03 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 50f8cd64aee1b..7a1ad1863e07b 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 476bfef859d00..6e102733b051b 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: 2022-10-02 +date: 2022-10-03 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 549084cde27d5..cfd53f8e091ff 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: 2022-10-02 +date: 2022-10-03 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 2256eb2966edb..c28b07464ba41 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: 2022-10-02 +date: 2022-10-03 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 ad42b9ac3ee42..d5c55b31b68c0 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: 2022-10-02 +date: 2022-10-03 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 22a6845fb05d9..c2de5353062a3 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 2d54eb64e6033..c5026a994bbff 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: 2022-10-02 +date: 2022-10-03 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 a52202f78637b..a81d5f720c20a 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: 2022-10-02 +date: 2022-10-03 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 192f0654b7d5f..3ca7cf87f8819 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: 2022-10-02 +date: 2022-10-03 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 5633664daf6d5..f4fd135eead55 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index bbf2c310a588d..2cb822b645378 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: 2022-10-02 +date: 2022-10-03 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 e090ff0a26740..2cf8df7f6fb13 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: 2022-10-02 +date: 2022-10-03 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 fe43394f77fb7..217056d756e6c 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: 2022-10-02 +date: 2022-10-03 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 e9c9b866f0fe7..8674be0b88a22 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: 2022-10-02 +date: 2022-10-03 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 a86d4bce56287..a3e9193110cf9 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: 2022-10-02 +date: 2022-10-03 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 9b2fe9f9f192c..87edbd5da1573 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: 2022-10-02 +date: 2022-10-03 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 c2dc15b657d76..eba99f7740982 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: 2022-10-02 +date: 2022-10-03 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 e935da7289301..6cd2f00a3f32a 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: 2022-10-02 +date: 2022-10-03 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 2a05ae0c01c52..0e0674185951d 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: 2022-10-02 +date: 2022-10-03 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 2e74725d2f3d3..f58bebcf2f5d0 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: 2022-10-02 +date: 2022-10-03 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 4a541f590e2f5..3d4d7035f6c1d 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: 2022-10-02 +date: 2022-10-03 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 3463e8e9384e2..7681b7a4a3885 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: 2022-10-02 +date: 2022-10-03 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 834faf66c67a2..02a409c5881de 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: 2022-10-02 +date: 2022-10-03 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_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index f22445d1e10ed..b60d8471e15dd 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: 2022-10-02 +date: 2022-10-03 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 fe429f0f502ae..39463461d9165 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: 2022-10-02 +date: 2022-10-03 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 9d162ecc81bb8..2a64da20012e8 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: 2022-10-02 +date: 2022-10-03 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 be46292c9bc9e..b2056befb2acb 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: 2022-10-02 +date: 2022-10-03 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 aa7f5b3d5df79..6d28c54984174 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: 2022-10-02 +date: 2022-10-03 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 1380bd04beea9..c7628a5a59c63 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: 2022-10-02 +date: 2022-10-03 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 00087d6131cc8..e01e96164ef47 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: 2022-10-02 +date: 2022-10-03 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 e4e5a9223ba0b..9ef6e61852ed2 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: 2022-10-02 +date: 2022-10-03 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 251b2d507b168..57e8483cb0f74 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: 2022-10-02 +date: 2022-10-03 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 10c16f282a6f9..c4fabecffea39 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: 2022-10-02 +date: 2022-10-03 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 8d29eb118d55c..1d7858167c974 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: 2022-10-02 +date: 2022-10-03 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_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 0d64e581664eb..3914aa766a64d 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: 2022-10-02 +date: 2022-10-03 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 6d31a54a56052..fca144e245a76 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: 2022-10-02 +date: 2022-10-03 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 9c7aa10193724..5be603ffa1f96 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: 2022-10-02 +date: 2022-10-03 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 bc77cf44b3bd3..afde35a745d30 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: 2022-10-02 +date: 2022-10-03 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 a976ebcc9a0e8..92ba606e6044c 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: 2022-10-02 +date: 2022-10-03 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 a3af9d6298c58..9b3c1070f6623 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: 2022-10-02 +date: 2022-10-03 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 42feea3f29fba..e871d2dc0a941 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: 2022-10-02 +date: 2022-10-03 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 1d24379f441f6..d591288b81315 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: 2022-10-02 +date: 2022-10-03 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 48c6d6862f4dd..7cd809b6b97e1 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: 2022-10-02 +date: 2022-10-03 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 8195d4f623893..273051738c41f 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: 2022-10-02 +date: 2022-10-03 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 85fa2c4715748..0cddffa5aeab6 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: 2022-10-02 +date: 2022-10-03 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 feabe3a92d7f7..88eb042d98206 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: 2022-10-02 +date: 2022-10-03 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 7b9875f589c6b..bbf4d1f0a58e8 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: 2022-10-02 +date: 2022-10-03 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 1e0c6217b952f..c9f8fdbd9b45d 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: 2022-10-02 +date: 2022-10-03 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 7bc107af9a805..f4032d04f97ca 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: 2022-10-02 +date: 2022-10-03 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 95497dfe20dc5..835c21903b6bf 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: 2022-10-02 +date: 2022-10-03 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 5f7c6dc637c89..47f64412fe99e 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: 2022-10-02 +date: 2022-10-03 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 bbda34217fa74..082f5dd46eced 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: 2022-10-02 +date: 2022-10-03 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 fad63abe19936..492f874f833eb 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: 2022-10-02 +date: 2022-10-03 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 006d8b447663b..f8426b783c45a 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: 2022-10-02 +date: 2022-10-03 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 96e88c7e5c2a2..6efeffd1c91c3 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: 2022-10-02 +date: 2022-10-03 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 7e3559438efa3..ed8e5ae438b3d 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: 2022-10-02 +date: 2022-10-03 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 e6ab7c3d89159..6441c8e326395 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: 2022-10-02 +date: 2022-10-03 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 17fee1daced5d..4f0d3211fa39d 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: 2022-10-02 +date: 2022-10-03 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 ed465631b22b5..02fa99d7cb6ce 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: 2022-10-02 +date: 2022-10-03 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 89eb21cdb4d55..40263469ee782 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: 2022-10-02 +date: 2022-10-03 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 3e1fbaec76d31..a6af55aa79cbe 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: 2022-10-02 +date: 2022-10-03 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 13817b60a15a0..a1c258a426f33 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: 2022-10-02 +date: 2022-10-03 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 3380e7e1a2b4c..a937dccab7fb8 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: 2022-10-02 +date: 2022-10-03 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 4020a1edd3ae5..a6274dd34b37d 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: 2022-10-02 +date: 2022-10-03 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 a48229db2238e..6293ae9b58af2 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: 2022-10-02 +date: 2022-10-03 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 6c86cd7218b8a..f11227d039fcf 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: 2022-10-02 +date: 2022-10-03 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 a41bd0793732d..d0ea0e82f7682 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: 2022-10-02 +date: 2022-10-03 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_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 98354a9107f34..7654b3f70cc87 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: 2022-10-02 +date: 2022-10-03 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 99ac50e292b6b..8a2d3a3de3333 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: 2022-10-02 +date: 2022-10-03 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 fd022dfb3eea2..62b834449c23f 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: 2022-10-02 +date: 2022-10-03 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 f058d1e28dec7..bbda88d5c238c 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: 2022-10-02 +date: 2022-10-03 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 1b6cf98922c1b..e99fba0127cc2 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: 2022-10-02 +date: 2022-10-03 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 bc10c115fb754..c6da1dc82bc90 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: 2022-10-02 +date: 2022-10-03 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 02d199810fef1..140e346128004 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: 2022-10-02 +date: 2022-10-03 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 b391482c1e673..ddd02e61d7ee4 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: 2022-10-02 +date: 2022-10-03 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 8bdf305b19645..56636905f7afa 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: 2022-10-02 +date: 2022-10-03 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 949a0fde56bc7..f8ed8c6f0bec6 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: 2022-10-02 +date: 2022-10-03 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.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index f93ad919d9fe8..9a02125114dc7 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.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 6389c0fa21a8c..d6a078aef0df0 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: 2022-10-02 +date: 2022-10-03 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 f1c6bacc8a191..38c283eaaf97e 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: 2022-10-02 +date: 2022-10-03 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 91fca25dd4974..5cc58ad5a914c 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: 2022-10-02 +date: 2022-10-03 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 8aee8a80734c6..1ab8822af2252 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: 2022-10-02 +date: 2022-10-03 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 d76de30044e47..99d9d3f32d3e8 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: 2022-10-02 +date: 2022-10-03 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_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 575ad511b8fdc..5065fff3211ff 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: 2022-10-02 +date: 2022-10-03 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 02793dca49021..2e6959cc87594 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: 2022-10-02 +date: 2022-10-03 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 259d3fd65a265..81a53652b4ea2 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: 2022-10-02 +date: 2022-10-03 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 81710e21c33ff..3d5b6fffdd513 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: 2022-10-02 +date: 2022-10-03 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 e3e171db8439c..14756f136bd3a 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: 2022-10-02 +date: 2022-10-03 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 bacd5044596db..087dd2dd357ca 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: 2022-10-02 +date: 2022-10-03 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 eadb43389a164..5f5ea85f80056 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: 2022-10-02 +date: 2022-10-03 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 baaf23f8822d5..6216a6d589ce5 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: 2022-10-02 +date: 2022-10-03 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 0b68bd525a649..82c2c06e08457 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: 2022-10-02 +date: 2022-10-03 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 08f7016062533..b4eeaf823c522 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: 2022-10-02 +date: 2022-10-03 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 5b065122b113b..04c3664f49b67 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: 2022-10-02 +date: 2022-10-03 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 e540991a1252e..edcf4af2b62ad 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: 2022-10-02 +date: 2022-10-03 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 8bea394dae010..d120b6ccece74 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: 2022-10-02 +date: 2022-10-03 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 ad8e17b446e9e..e4152c45f1f60 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: 2022-10-02 +date: 2022-10-03 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 514474ea2ef25..a571fb85c2ef4 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: 2022-10-02 +date: 2022-10-03 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 bae3dbcf63251..8f4457512da88 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: 2022-10-02 +date: 2022-10-03 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 0544899499223..6e25c69de32ee 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: 2022-10-02 +date: 2022-10-03 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 9b739d1209d1b..ce41f3aac1f43 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: 2022-10-02 +date: 2022-10-03 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 5b9a435bacaff..0b413f962b275 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: 2022-10-02 +date: 2022-10-03 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 b9fa84b19f8cc..b31af30c16030 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: 2022-10-02 +date: 2022-10-03 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_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 0906ee4ed8381..ec6b64842af42 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: 2022-10-02 +date: 2022-10-03 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 6b97c1f880675..583b5bc973add 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: 2022-10-02 +date: 2022-10-03 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 520e18ebb3e77..383e9c6511efa 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: 2022-10-02 +date: 2022-10-03 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_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 020fabbec183c..e07f5797c7f72 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: 2022-10-02 +date: 2022-10-03 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 6da27ef121439..8a3662b8b470c 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: 2022-10-02 +date: 2022-10-03 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 df6fc60584f43..7244cfe8beb60 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: 2022-10-02 +date: 2022-10-03 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 81a29c9d9a727..9a62ec00bb37c 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: 2022-10-02 +date: 2022-10-03 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 b2eb85135b8d3..4068fcf5e73b5 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: 2022-10-02 +date: 2022-10-03 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 d6eb21156cef7..7af80f7527944 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: 2022-10-02 +date: 2022-10-03 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 c0db5893ecdcd..83b6f08887286 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: 2022-10-02 +date: 2022-10-03 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 6b1df9e60f5a6..3d8e3d03be29b 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: 2022-10-02 +date: 2022-10-03 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 3767a975778f6..ad03d6488f2a0 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: 2022-10-02 +date: 2022-10-03 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 46e635afccffe..b06d26ed9bea4 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: 2022-10-02 +date: 2022-10-03 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 d9dcf279b04e4..6532dfcaeaf81 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: 2022-10-02 +date: 2022-10-03 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 b273522ddd598..53092b90fc151 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: 2022-10-02 +date: 2022-10-03 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 4a63a5bd89ef0..3d1544f4f110f 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: 2022-10-02 +date: 2022-10-03 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 c02fc259a89b2..c662be1f8fb09 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: 2022-10-02 +date: 2022-10-03 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 78b702fb4478d..8a27161ad18de 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: 2022-10-02 +date: 2022-10-03 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 90c8b849e0ba0..c73c73d974180 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: 2022-10-02 +date: 2022-10-03 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 f349189ab730f..e8fe3856fa57f 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: 2022-10-02 +date: 2022-10-03 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 8c5aeb1e8262b..5eb6ed5fabf23 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: 2022-10-02 +date: 2022-10-03 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 d9566708b3aeb..3f9ec5be08ad2 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: 2022-10-02 +date: 2022-10-03 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 a55470733390a..fd7956ee7ab43 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: 2022-10-02 +date: 2022-10-03 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 439d255043861..71ceb6a7bede4 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: 2022-10-02 +date: 2022-10-03 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 96f568f178a40..3916cb3c3119c 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: 2022-10-02 +date: 2022-10-03 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 85b8475863cf3..966876de9b0c2 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: 2022-10-02 +date: 2022-10-03 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 957576c2e148f..f3ad0c01cc377 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: 2022-10-02 +date: 2022-10-03 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 aeaf0b8ee1105..995497dffa505 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: 2022-10-02 +date: 2022-10-03 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_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 45aa25f3d172d..2db8ecd68b0dc 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: 2022-10-02 +date: 2022-10-03 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 4b3a42ce6cc77..38778f82b4a73 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: 2022-10-02 +date: 2022-10-03 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 92f080e0f5285..d561c846ba528 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: 2022-10-02 +date: 2022-10-03 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 4a1529581735e..f4b08646423d6 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: 2022-10-02 +date: 2022-10-03 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 6fb6935573a7b..607eaa47b682d 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: 2022-10-02 +date: 2022-10-03 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 31697c023ddaa..15ecdc9fee508 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: 2022-10-02 +date: 2022-10-03 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 574d0ec8e7b47..6644389a6513b 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: 2022-10-02 +date: 2022-10-03 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 0997bcdc22115..d486425f2067d 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: 2022-10-02 +date: 2022-10-03 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 7b4df9498b908..98b9aa8e6584a 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: 2022-10-02 +date: 2022-10-03 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 d222af41c3fd9..c287c7d3717f4 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: 2022-10-02 +date: 2022-10-03 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 976fc475761a2..8d5b6922438e8 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: 2022-10-02 +date: 2022-10-03 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 9bd4dab752efb..e433b18463057 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: 2022-10-02 +date: 2022-10-03 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 8dd7253ab6ab8..ad3dac588eb63 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: 2022-10-02 +date: 2022-10-03 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 a8049f93e0422..0e41431342876 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: 2022-10-02 +date: 2022-10-03 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 d5209c039a16a..7f67262cf91c9 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 76052024f029d..86cc145ec159a 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: 2022-10-02 +date: 2022-10-03 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 39e11f8614d83..e46730cf719c3 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: 2022-10-02 +date: 2022-10-03 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 95871faf86786..54d0f8713d0fb 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: 2022-10-02 +date: 2022-10-03 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 198147e7c8229..b646fc86f43f5 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: 2022-10-02 +date: 2022-10-03 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 b9922d230eb74..83091d9879dc4 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 3fe12c91c32a4..8913a1a03ab85 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: 2022-10-02 +date: 2022-10-03 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 3545dbecd6961..a5d4079c284b0 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: 2022-10-02 +date: 2022-10-03 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 b4270c9011bbe..8370c22a01f19 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index ca423dde44514..4ad77bfff6559 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: 2022-10-02 +date: 2022-10-03 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 f422e71b9a8b6..bf9c27ac92b27 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index a0bf853e54fda..632303fa82c97 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 42124a156bffe..6a6ac63f69acd 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: 2022-10-02 +date: 2022-10-03 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 883203cc6f10a..e0525000b5f9f 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: 2022-10-02 +date: 2022-10-03 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 8791798c64654..f9ad3846f19fa 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: 2022-10-02 +date: 2022-10-03 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 ae1139f5d3604..9bc0b92168240 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: 2022-10-02 +date: 2022-10-03 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 1c2551073eb20..359334478d03d 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: 2022-10-02 +date: 2022-10-03 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 9e670335e3a9e..151e0da4dd3b1 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 816ea84cc9691..161354bbbcb14 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 88db861974d6f..1e054c0706c6f 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: 2022-10-02 +date: 2022-10-03 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 be13032975df7..0852dda61f29a 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 71c8b52c08c7d..d4cca06818606 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: 2022-10-02 +date: 2022-10-03 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 67b69bdc69372..54d4d15fc741e 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: 2022-10-02 +date: 2022-10-03 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 287c326105c8a..c7ff5b8ab5056 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 2f8cc3ebfa05c..262e79df335d1 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: 2022-10-02 +date: 2022-10-03 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 119a20db590da..df20b5d894c5e 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: 2022-10-02 +date: 2022-10-03 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 2dd42caa19c20..4994d60766a45 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: 2022-10-02 +date: 2022-10-03 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 5f98c468a61c0..e5e069f91c957 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: 2022-10-02 +date: 2022-10-03 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 15376c2757602..21477f1c435c7 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index f4f8350b8df63..6d9b4a9bb317c 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 1121ec512bc39..712dd79f55359 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: 2022-10-02 +date: 2022-10-03 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 fe90ec4cc221f..6dcc57446aaad 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: 2022-10-02 +date: 2022-10-03 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 0de9f54e62995..788e96c22f5c3 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: 2022-10-02 +date: 2022-10-03 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 007e3dd15767c..8e2ce8b3d9fdc 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: 2022-10-02 +date: 2022-10-03 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 cafb9d704b491..25b2b17e3997b 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: 2022-10-02 +date: 2022-10-03 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_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index ea7bb98fca111..5f24dc1806b03 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: 2022-10-02 +date: 2022-10-03 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index cd15a3909e9cb..2fa9ac8d84b7a 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index f418088dad248..c5b48fbeff006 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: 2022-10-02 +date: 2022-10-03 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 8aef1a04d1a5f..2a5d7bc10afb8 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: 2022-10-02 +date: 2022-10-03 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 a784f125dd4a3..3f87a2b8b79d8 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: 2022-10-02 +date: 2022-10-03 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 752a04593d5ed..76d9089526cec 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: 2022-10-02 +date: 2022-10-03 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 7c7ace4751a93..3e83e64f435dc 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: 2022-10-02 +date: 2022-10-03 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 b76a868134479..dc887c9ce3056 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: 2022-10-02 +date: 2022-10-03 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 a5ff4e0a5f172..30cf3560edd3a 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: 2022-10-02 +date: 2022-10-03 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 e0f55f2faed98..ae485f79249a3 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 9adf212a87d0c..8249b1eae5a39 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 77cd942716abf..a4ef149f8033b 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: 2022-10-02 +date: 2022-10-03 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 ac51a31185439..ea7380185e08a 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index a1831303286bd..4f2b01b578636 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: 2022-10-02 +date: 2022-10-03 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 5e5dec3f0efa7..35651464e503c 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: 2022-10-02 +date: 2022-10-03 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 25b3f6af8b102..74a60ea3a6e0d 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: 2022-10-02 +date: 2022-10-03 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 09850981c9212..a2e5cb79e7ec0 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: 2022-10-02 +date: 2022-10-03 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 6de7cb1f0d6c8..878d21884f5ab 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: 2022-10-02 +date: 2022-10-03 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 baf98e2fd0b00..7009b4610d376 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: 2022-10-02 +date: 2022-10-03 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 500c8c72ca837..1a8635741da38 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: 2022-10-02 +date: 2022-10-03 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 5b26d74de8a7f..ba0f3639d8e00 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: 2022-10-02 +date: 2022-10-03 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 05e6ed82f6ddf..cc6cd2e0e30ab 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: 2022-10-02 +date: 2022-10-03 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 e8c0fc13f6e10..c160feacf522f 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: 2022-10-02 +date: 2022-10-03 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 8203f6334e051..1a0fb17e5ced7 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: 2022-10-02 +date: 2022-10-03 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 a5fea43827df3..7aa3b1237d1bd 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: 2022-10-02 +date: 2022-10-03 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 5fc96c25aa1d6..7b831d8213377 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: 2022-10-02 +date: 2022-10-03 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 205d44e5872cb..e82e1785f2490 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: 2022-10-02 +date: 2022-10-03 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 3d373165a9284..60f6a7802671b 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: 2022-10-02 +date: 2022-10-03 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 2d765470b354b..d5b974e9060a3 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: 2022-10-02 +date: 2022-10-03 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 760277af99b74..434f6ebf7360f 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: 2022-10-02 +date: 2022-10-03 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_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index bbbfb6144deb5..aca5844ce1aa5 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: 2022-10-02 +date: 2022-10-03 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_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 09dad01095487..64ff483b257b8 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: 2022-10-02 +date: 2022-10-03 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 52a088948e2b6..98810e33e0a49 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: 2022-10-02 +date: 2022-10-03 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 472e6b89741c9..f7ca5b1619118 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: 2022-10-02 +date: 2022-10-03 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 3999dd6522fd6..bae9391ff07c9 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: 2022-10-02 +date: 2022-10-03 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_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index 2c6d531cd186f..aeabec4b1421b 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: 2022-10-02 +date: 2022-10-03 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_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 9ecba55b278c4..7dc8d4c973138 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: 2022-10-02 +date: 2022-10-03 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 2c999a65117a6..5386d337930ef 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: 2022-10-02 +date: 2022-10-03 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 7426d22515d58..77248704888b4 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: 2022-10-02 +date: 2022-10-03 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 d815677cdbbb0..100b84a823c93 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: 2022-10-02 +date: 2022-10-03 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 285fff4f69d53..fc9392a85f8ee 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: 2022-10-02 +date: 2022-10-03 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 e753d5c2306e5..75c7b818d2b99 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: 2022-10-02 +date: 2022-10-03 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 3e801da7773bf..46c1575ac211e 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: 2022-10-02 +date: 2022-10-03 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 7d0ed072b3404..ab3b48e848639 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: 2022-10-02 +date: 2022-10-03 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 04e54301c0928..be35872625c46 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: 2022-10-02 +date: 2022-10-03 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 574f7592eec1e..b5afba9ff421d 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: 2022-10-02 +date: 2022-10-03 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 9886feeb304b4..da1478041d724 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: 2022-10-02 +date: 2022-10-03 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 3688d0c50fd5b..1b1327a86bd0a 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: 2022-10-02 +date: 2022-10-03 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 49e38c10a1ab6..0e7e8889a58c6 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: 2022-10-02 +date: 2022-10-03 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_router.mdx b/api_docs/kbn_shared_ux_router.mdx index baf10caeedb7d..f9c07c50257c8 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: 2022-10-02 +date: 2022-10-03 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 05d0ab8de20a5..a0aca2fcd5aaf 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: 2022-10-02 +date: 2022-10-03 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 5a6e193562b5a..aeae1c356a861 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: 2022-10-02 +date: 2022-10-03 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 fd0593f5bf74e..d5712323de82d 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: 2022-10-02 +date: 2022-10-03 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 6f8f8a20349f3..3466072027056 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index d3796d5d79dd3..d6c26edac107d 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index 6ba6f268cd132..13db8c8155fd0 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index de90284104e3b..e96bc3e61652b 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: 2022-10-02 +date: 2022-10-03 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 13b3aa2b6ebbd..b4aac204fc2fc 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: 2022-10-02 +date: 2022-10-03 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 e57f44e869e1b..13b0046b3c5f5 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: 2022-10-02 +date: 2022-10-03 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 730dfdd548326..5dc57b83e3caf 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: 2022-10-02 +date: 2022-10-03 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 3e4061d439386..924a8f1d2d36d 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: 2022-10-02 +date: 2022-10-03 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 80bce2c3d3bb8..cc4a486b6dc8e 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: 2022-10-02 +date: 2022-10-03 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 38296f51f0ea9..38fd9ee192959 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: 2022-10-02 +date: 2022-10-03 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 d038b65a9b437..efc952ecde5a0 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index 1dc49f971de9d..1c63f3fb99305 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index cc8f70eddfb49..346fc07253bf5 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index fa9aec2765d0e..cc16ed53a0ad1 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: 2022-10-02 +date: 2022-10-03 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_theme.mdx b/api_docs/kbn_ui_theme.mdx index a23a496ec08a1..768d7656e3a83 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: 2022-10-02 +date: 2022-10-03 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 e22681ed1b21f..321db07786d48 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: 2022-10-02 +date: 2022-10-03 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 4e184219ce29e..59733af696053 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: 2022-10-02 +date: 2022-10-03 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 e2ede8850299f..d34f5eb451f66 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: 2022-10-02 +date: 2022-10-03 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 9fc2d665396ba..3301abb7449f7 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: 2022-10-02 +date: 2022-10-03 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 7822a652e9dc9..7aba97a043a20 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: 2022-10-02 +date: 2022-10-03 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 3f7cc296f0789..99437dfa2d79f 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: 2022-10-02 +date: 2022-10-03 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 721d581c9aebb..b563f5461da0f 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: 2022-10-02 +date: 2022-10-03 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 331c1c9cc68ef..5bb528b470212 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: 2022-10-02 +date: 2022-10-03 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 927b730fbd080..b08fc593fdcc7 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: 2022-10-02 +date: 2022-10-03 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 29f7f9b863fe9..ee26d7bf7b870 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: 2022-10-02 +date: 2022-10-03 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 cfe740cacdaf4..f3039f89e8db3 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: 2022-10-02 +date: 2022-10-03 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 1f90c8557e07e..a2bbb989390e5 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: 2022-10-02 +date: 2022-10-03 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 27be5086f77e3..a1ea39b243d1e 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: 2022-10-02 +date: 2022-10-03 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 0fe469c827997..167f95ca81b40 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: 2022-10-02 +date: 2022-10-03 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 0dab3bc7dfeb7..7b13b081164ff 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: 2022-10-02 +date: 2022-10-03 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 606529ea480d8..84567432aed62 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: 2022-10-02 +date: 2022-10-03 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 cb8141b2fa2eb..7e0c0528fef4a 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: 2022-10-02 +date: 2022-10-03 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 a220cc633fdbe..a7a7a0517b9b8 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: 2022-10-02 +date: 2022-10-03 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 d57492b577032..e884c213dddbc 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: 2022-10-02 +date: 2022-10-03 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 4fa7372e846d3..37856b288370a 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: 2022-10-02 +date: 2022-10-03 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 ace04be9dfd65..283d52b0a4c3a 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: 2022-10-02 +date: 2022-10-03 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 ea74ae679ce8f..278b15e23d47f 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 63effa9722c28..2f29ba44a8c06 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 0c73ce5aa345c..5b05f78a15a04 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: 2022-10-02 +date: 2022-10-03 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 51cba79e857c9..b6b1d856686da 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b7aa3b787718d..f9b349676713b 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: 2022-10-02 +date: 2022-10-03 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 877b703d7e169..489f7c32b600e 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: 2022-10-02 +date: 2022-10-03 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 9f3abb5e1d970..6a8252bfebe78 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: 2022-10-02 +date: 2022-10-03 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 53a33e3f3e021..fbdfd3cb5bd01 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: 2022-10-02 +date: 2022-10-03 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 4e870d52ebe4e..11313a6dc5f24 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 3a2aa8b507fe9..3ac4843ea4176 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 4092856f85483..17f5b0c7f230d 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 6e00cff68eeaf..5063707c3abd9 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 92585b79379f3..53186cbce4362 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index f97c77aca56d9..0032f71ba6484 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 69df9871d9f65..b3c954d358cb1 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 9e3ca4f8d4e8f..280c60872da7d 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index ce10df747f588..eac6e8187a83f 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index db9cf0112901e..50deed0a47fdd 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 88a61fbfbefd6..64b2f1e872dd9 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 574757b6488dd..b62b787d9d0e4 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: 2022-10-02 +date: 2022-10-03 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 fd2ceda90f9ee..088b9d7a12e2b 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: 2022-10-02 +date: 2022-10-03 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 dae50a1df7b65..eaddd45f9b778 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: 2022-10-02 +date: 2022-10-03 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 da7c56ca51c58..c6ba8145d4c64 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: 2022-10-02 +date: 2022-10-03 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 12fb3c0f940cb..daaaceba668b4 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: 2022-10-02 +date: 2022-10-03 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 ad1ae785ccc95..1196b40d5c3bf 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: 2022-10-02 +date: 2022-10-03 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 366616671516d..fdd5dfbc025b1 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: 2022-10-02 +date: 2022-10-03 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 811c79896d7ec..89056c9ebd088 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: 2022-10-02 +date: 2022-10-03 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 0f244bdfa77ac..1b7e13dd4d650 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: 2022-10-02 +date: 2022-10-03 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 27b6af9549d74..8e865875b83fe 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: 2022-10-02 +date: 2022-10-03 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 e40ec8f867a6e..e5cbc94c567a3 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: 2022-10-02 +date: 2022-10-03 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 15225549bbe79..7b775d1ce3bce 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: 2022-10-02 +date: 2022-10-03 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 e962b1c74b73a..7312616ea8a6e 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: 2022-10-02 +date: 2022-10-03 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 bc8d91d1ee1df..4abe6fedf3bf3 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: 2022-10-02 +date: 2022-10-03 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 f12a30a01feae..692501acd7de0 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: 2022-10-02 +date: 2022-10-03 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 0c044093de8da..9603096cd2b99 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index d628475506628..a9c60110ba139 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index a11e23546d229..734e896cbdf27 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: 2022-10-02 +date: 2022-10-03 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 273a9ab86497e..5ac50aa29c085 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: 2022-10-02 +date: 2022-10-03 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 d3614845b2485..2818641379fb7 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index efac37faf56d0..ed31e74c5d7eb 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: 2022-10-02 +date: 2022-10-03 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 b0ffa71265a1c..e75d86bbab218 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: 2022-10-02 +date: 2022-10-03 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 ef65b102aed74..0ac5762c42af3 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: 2022-10-02 +date: 2022-10-03 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 e41693e5efca0..b493774dc1eb3 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: 2022-10-02 +date: 2022-10-03 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 cfafdaf068029..f3c60dc8b7b43 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: 2022-10-02 +date: 2022-10-03 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 f63baebfa4b2a..ec4208a4a06da 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: 2022-10-02 +date: 2022-10-03 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 b91e25ae3893f..43f73daa08070 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: 2022-10-02 +date: 2022-10-03 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 49ba54cdc57d3..d537797699cab 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: 2022-10-02 +date: 2022-10-03 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 93e84b16f4d28..08324c72b813f 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: 2022-10-02 +date: 2022-10-03 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 90bae1cb686f6..7d052e7dd40fb 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: 2022-10-02 +date: 2022-10-03 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 06b9a57efddf5..696edbd5d321e 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: 2022-10-02 +date: 2022-10-03 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 7aafcad29e0fa..ef87c344661e6 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: 2022-10-02 +date: 2022-10-03 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 324013c67331a..1a5a44160bf46 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: 2022-10-02 +date: 2022-10-03 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 d8e1da6a13e95..8651bb82ad813 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: 2022-10-02 +date: 2022-10-03 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 4722a4b75256e..440839b51793a 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: 2022-10-02 +date: 2022-10-03 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 36d12fab03cfc..2edc6b736c5b6 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: 2022-10-02 +date: 2022-10-03 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 8a298e4c8d1a9c75ce081e5c4c91174818e057d9 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Mon, 3 Oct 2022 09:52:17 +0200 Subject: [PATCH 08/51] Migrate server-side `rendering` service to packages (#141902) * create empty packages * moves files to packages * adapt usages * updating READMEs and packages jsons * [CI] Auto-commit changed files from 'node scripts/generate codeowners' * adapt more usages * more import fixes * fix mock method names * export the `Fonts` component for security... * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' * fix more usages again * includes tsx files Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 3 + package.json | 6 + packages/BUILD.bazel | 6 + .../BUILD.bazel | 107 +++++++++++++++ .../README.md | 3 + .../index.ts | 9 ++ .../jest.config.js | 13 ++ .../kibana.jsonc | 7 + .../package.json | 8 ++ .../src/index.ts | 9 ++ .../src/types.ts | 51 +++++++ .../tsconfig.json | 17 +++ .../BUILD.bazel | 127 ++++++++++++++++++ .../core-rendering-server-internal/README.md | 3 + .../core-rendering-server-internal/index.ts | 17 +++ .../jest.config.js | 13 ++ .../kibana.jsonc | 7 + .../package.json | 8 ++ .../rendering_service.test.ts.snap | 0 .../render_template.test.ts.snap | 0 .../bootstrap_renderer.test.mocks.ts | 0 .../src}/bootstrap/bootstrap_renderer.test.ts | 2 +- .../src}/bootstrap/bootstrap_renderer.ts | 2 +- .../bootstrap/get_js_dependency_paths.test.ts | 0 .../src}/bootstrap/get_js_dependency_paths.ts | 0 .../bootstrap/get_plugin_bundle_paths.test.ts | 3 +- .../src}/bootstrap/get_plugin_bundle_paths.ts | 2 +- .../src}/bootstrap/get_theme_tag.test.ts | 0 .../src}/bootstrap/get_theme_tag.ts | 0 .../src}/bootstrap/index.ts | 0 .../bootstrap/register_bootstrap_route.ts | 0 .../src}/bootstrap/render_template.test.ts | 0 .../src}/bootstrap/render_template.ts | 0 .../src}/filter_ui_plugins.test.ts | 3 +- .../src}/filter_ui_plugins.ts | 2 +- .../src}/index.ts | 1 + .../src}/internal_types.ts | 0 .../src}/render_utils.test.ts | 0 .../src}/render_utils.ts | 0 .../src}/rendering_service.test.mocks.ts | 0 .../src}/rendering_service.test.ts | 2 +- .../src}/rendering_service.tsx | 4 +- .../src/test_helpers}/params.ts | 13 +- .../src/test_helpers}/rendering_service.ts | 0 .../src}/types.ts | 4 +- .../src}/views/fonts.tsx | 0 .../src}/views/index.ts | 1 + .../src}/views/logo.tsx | 0 .../src}/views/styles.tsx | 0 .../src}/views/template.tsx | 0 .../tsconfig.json | 19 +++ .../core-rendering-server-mocks/BUILD.bazel | 106 +++++++++++++++ .../core-rendering-server-mocks/README.md | 4 + .../core-rendering-server-mocks/index.ts | 9 ++ .../jest.config.js | 13 ++ .../core-rendering-server-mocks/kibana.jsonc | 7 + .../core-rendering-server-mocks/package.json | 8 ++ .../core-rendering-server-mocks/src/index.ts | 9 ++ .../src}/rendering_service.mock.ts | 25 +++- .../core-rendering-server-mocks/tsconfig.json | 17 +++ .../register_bundle_routes.test.ts | 2 +- .../bundle_routes/register_bundle_routes.ts | 2 +- src/core/server/core_app/core_app.test.ts | 2 +- src/core/server/core_app/core_app.ts | 2 +- .../http_resources_service.test.ts | 6 +- .../http_resources/http_resources_service.ts | 5 +- src/core/server/index.ts | 1 - src/core/server/internal_types.ts | 2 +- src/core/server/mocks.ts | 6 +- src/core/server/plugins/index.ts | 1 - src/core/server/plugins/plugins_service.ts | 28 +--- src/core/server/plugins/types.ts | 22 --- src/core/server/server.test.mocks.ts | 8 +- src/core/server/server.ts | 2 +- .../unauthenticated_page.test.tsx | 2 +- .../authorization/reset_session_page.test.tsx | 2 +- .../security/server/prompt_page.test.tsx | 2 +- .../plugins/security/server/prompt_page.tsx | 2 +- yarn.lock | 24 ++++ 79 files changed, 705 insertions(+), 86 deletions(-) create mode 100644 packages/core/plugins/core-plugins-base-server-internal/BUILD.bazel create mode 100644 packages/core/plugins/core-plugins-base-server-internal/README.md create mode 100644 packages/core/plugins/core-plugins-base-server-internal/index.ts create mode 100644 packages/core/plugins/core-plugins-base-server-internal/jest.config.js create mode 100644 packages/core/plugins/core-plugins-base-server-internal/kibana.jsonc create mode 100644 packages/core/plugins/core-plugins-base-server-internal/package.json create mode 100644 packages/core/plugins/core-plugins-base-server-internal/src/index.ts create mode 100644 packages/core/plugins/core-plugins-base-server-internal/src/types.ts create mode 100644 packages/core/plugins/core-plugins-base-server-internal/tsconfig.json create mode 100644 packages/core/rendering/core-rendering-server-internal/BUILD.bazel create mode 100644 packages/core/rendering/core-rendering-server-internal/README.md create mode 100644 packages/core/rendering/core-rendering-server-internal/index.ts create mode 100644 packages/core/rendering/core-rendering-server-internal/jest.config.js create mode 100644 packages/core/rendering/core-rendering-server-internal/kibana.jsonc create mode 100644 packages/core/rendering/core-rendering-server-internal/package.json rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/__snapshots__/rendering_service.test.ts.snap (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/__snapshots__/render_template.test.ts.snap (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/bootstrap_renderer.test.mocks.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/bootstrap_renderer.test.ts (98%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/bootstrap_renderer.ts (97%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_js_dependency_paths.test.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_js_dependency_paths.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_plugin_bundle_paths.test.ts (94%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_plugin_bundle_paths.ts (95%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_theme_tag.test.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/get_theme_tag.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/index.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/register_bootstrap_route.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/render_template.test.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/bootstrap/render_template.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/filter_ui_plugins.test.ts (93%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/filter_ui_plugins.ts (95%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/index.ts (94%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/internal_types.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/render_utils.test.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/render_utils.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/rendering_service.test.mocks.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/rendering_service.test.ts (99%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/rendering_service.tsx (98%) rename {src/core/server/rendering/__mocks__ => packages/core/rendering/core-rendering-server-internal/src/test_helpers}/params.ts (85%) rename {src/core/server/rendering/__mocks__ => packages/core/rendering/core-rendering-server-internal/src/test_helpers}/rendering_service.ts (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/types.ts (96%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/views/fonts.tsx (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/views/index.ts (92%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/views/logo.tsx (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/views/styles.tsx (100%) rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-internal/src}/views/template.tsx (100%) create mode 100644 packages/core/rendering/core-rendering-server-internal/tsconfig.json create mode 100644 packages/core/rendering/core-rendering-server-mocks/BUILD.bazel create mode 100644 packages/core/rendering/core-rendering-server-mocks/README.md create mode 100644 packages/core/rendering/core-rendering-server-mocks/index.ts create mode 100644 packages/core/rendering/core-rendering-server-mocks/jest.config.js create mode 100644 packages/core/rendering/core-rendering-server-mocks/kibana.jsonc create mode 100644 packages/core/rendering/core-rendering-server-mocks/package.json create mode 100644 packages/core/rendering/core-rendering-server-mocks/src/index.ts rename {src/core/server/rendering => packages/core/rendering/core-rendering-server-mocks/src}/rendering_service.mock.ts (55%) create mode 100644 packages/core/rendering/core-rendering-server-mocks/tsconfig.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0a1fcc60d55b6..b7d588bc89269 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -784,6 +784,7 @@ packages/core/notifications/core-notifications-browser-mocks @elastic/kibana-cor packages/core/overlays/core-overlays-browser @elastic/kibana-core packages/core/overlays/core-overlays-browser-internal @elastic/kibana-core packages/core/overlays/core-overlays-browser-mocks @elastic/kibana-core +packages/core/plugins/core-plugins-base-server-internal @elastic/kibana-core packages/core/plugins/core-plugins-browser @elastic/kibana-core packages/core/plugins/core-plugins-browser-internal @elastic/kibana-core packages/core/plugins/core-plugins-browser-mocks @elastic/kibana-core @@ -792,6 +793,8 @@ packages/core/preboot/core-preboot-server-internal @elastic/kibana-core packages/core/preboot/core-preboot-server-mocks @elastic/kibana-core packages/core/rendering/core-rendering-browser-internal @elastic/kibana-core packages/core/rendering/core-rendering-browser-mocks @elastic/kibana-core +packages/core/rendering/core-rendering-server-internal @elastic/kibana-core +packages/core/rendering/core-rendering-server-mocks @elastic/kibana-core packages/core/root/core-root-browser-internal @elastic/kibana-core packages/core/saved-objects/core-saved-objects-api-browser @elastic/kibana-core packages/core/saved-objects/core-saved-objects-api-server @elastic/kibana-core diff --git a/package.json b/package.json index e7b1f86b9c053..4108e83b0e6c6 100644 --- a/package.json +++ b/package.json @@ -254,6 +254,7 @@ "@kbn/core-overlays-browser": "link:bazel-bin/packages/core/overlays/core-overlays-browser", "@kbn/core-overlays-browser-internal": "link:bazel-bin/packages/core/overlays/core-overlays-browser-internal", "@kbn/core-overlays-browser-mocks": "link:bazel-bin/packages/core/overlays/core-overlays-browser-mocks", + "@kbn/core-plugins-base-server-internal": "link:bazel-bin/packages/core/plugins/core-plugins-base-server-internal", "@kbn/core-plugins-browser": "link:bazel-bin/packages/core/plugins/core-plugins-browser", "@kbn/core-plugins-browser-internal": "link:bazel-bin/packages/core/plugins/core-plugins-browser-internal", "@kbn/core-plugins-browser-mocks": "link:bazel-bin/packages/core/plugins/core-plugins-browser-mocks", @@ -262,6 +263,8 @@ "@kbn/core-preboot-server-mocks": "link:bazel-bin/packages/core/preboot/core-preboot-server-mocks", "@kbn/core-rendering-browser-internal": "link:bazel-bin/packages/core/rendering/core-rendering-browser-internal", "@kbn/core-rendering-browser-mocks": "link:bazel-bin/packages/core/rendering/core-rendering-browser-mocks", + "@kbn/core-rendering-server-internal": "link:bazel-bin/packages/core/rendering/core-rendering-server-internal", + "@kbn/core-rendering-server-mocks": "link:bazel-bin/packages/core/rendering/core-rendering-server-mocks", "@kbn/core-root-browser-internal": "link:bazel-bin/packages/core/root/core-root-browser-internal", "@kbn/core-saved-objects-api-browser": "link:bazel-bin/packages/core/saved-objects/core-saved-objects-api-browser", "@kbn/core-saved-objects-api-server": "link:bazel-bin/packages/core/saved-objects/core-saved-objects-api-server", @@ -978,6 +981,7 @@ "@types/kbn__core-overlays-browser": "link:bazel-bin/packages/core/overlays/core-overlays-browser/npm_module_types", "@types/kbn__core-overlays-browser-internal": "link:bazel-bin/packages/core/overlays/core-overlays-browser-internal/npm_module_types", "@types/kbn__core-overlays-browser-mocks": "link:bazel-bin/packages/core/overlays/core-overlays-browser-mocks/npm_module_types", + "@types/kbn__core-plugins-base-server-internal": "link:bazel-bin/packages/core/plugins/core-plugins-base-server-internal/npm_module_types", "@types/kbn__core-plugins-browser": "link:bazel-bin/packages/core/plugins/core-plugins-browser/npm_module_types", "@types/kbn__core-plugins-browser-internal": "link:bazel-bin/packages/core/plugins/core-plugins-browser-internal/npm_module_types", "@types/kbn__core-plugins-browser-mocks": "link:bazel-bin/packages/core/plugins/core-plugins-browser-mocks/npm_module_types", @@ -987,6 +991,8 @@ "@types/kbn__core-public-internal-base": "link:bazel-bin/packages/core/public/internal-base/npm_module_types", "@types/kbn__core-rendering-browser-internal": "link:bazel-bin/packages/core/rendering/core-rendering-browser-internal/npm_module_types", "@types/kbn__core-rendering-browser-mocks": "link:bazel-bin/packages/core/rendering/core-rendering-browser-mocks/npm_module_types", + "@types/kbn__core-rendering-server-internal": "link:bazel-bin/packages/core/rendering/core-rendering-server-internal/npm_module_types", + "@types/kbn__core-rendering-server-mocks": "link:bazel-bin/packages/core/rendering/core-rendering-server-mocks/npm_module_types", "@types/kbn__core-root-browser-internal": "link:bazel-bin/packages/core/root/core-root-browser-internal/npm_module_types", "@types/kbn__core-saved-objects-api-browser": "link:bazel-bin/packages/core/saved-objects/core-saved-objects-api-browser/npm_module_types", "@types/kbn__core-saved-objects-api-server": "link:bazel-bin/packages/core/saved-objects/core-saved-objects-api-server/npm_module_types", diff --git a/packages/BUILD.bazel b/packages/BUILD.bazel index cf97e501df09c..0d5ecd4bc4cfc 100644 --- a/packages/BUILD.bazel +++ b/packages/BUILD.bazel @@ -120,6 +120,7 @@ filegroup( "//packages/core/overlays/core-overlays-browser:build", "//packages/core/overlays/core-overlays-browser-internal:build", "//packages/core/overlays/core-overlays-browser-mocks:build", + "//packages/core/plugins/core-plugins-base-server-internal:build", "//packages/core/plugins/core-plugins-browser:build", "//packages/core/plugins/core-plugins-browser-internal:build", "//packages/core/plugins/core-plugins-browser-mocks:build", @@ -128,6 +129,8 @@ filegroup( "//packages/core/preboot/core-preboot-server-mocks:build", "//packages/core/rendering/core-rendering-browser-internal:build", "//packages/core/rendering/core-rendering-browser-mocks:build", + "//packages/core/rendering/core-rendering-server-internal:build", + "//packages/core/rendering/core-rendering-server-mocks:build", "//packages/core/root/core-root-browser-internal:build", "//packages/core/saved-objects/core-saved-objects-api-browser:build", "//packages/core/saved-objects/core-saved-objects-api-server:build", @@ -454,6 +457,7 @@ filegroup( "//packages/core/overlays/core-overlays-browser:build_types", "//packages/core/overlays/core-overlays-browser-internal:build_types", "//packages/core/overlays/core-overlays-browser-mocks:build_types", + "//packages/core/plugins/core-plugins-base-server-internal:build_types", "//packages/core/plugins/core-plugins-browser:build_types", "//packages/core/plugins/core-plugins-browser-internal:build_types", "//packages/core/plugins/core-plugins-browser-mocks:build_types", @@ -462,6 +466,8 @@ filegroup( "//packages/core/preboot/core-preboot-server-mocks:build_types", "//packages/core/rendering/core-rendering-browser-internal:build_types", "//packages/core/rendering/core-rendering-browser-mocks:build_types", + "//packages/core/rendering/core-rendering-server-internal:build_types", + "//packages/core/rendering/core-rendering-server-mocks:build_types", "//packages/core/root/core-root-browser-internal:build_types", "//packages/core/saved-objects/core-saved-objects-api-browser:build_types", "//packages/core/saved-objects/core-saved-objects-api-server:build_types", diff --git a/packages/core/plugins/core-plugins-base-server-internal/BUILD.bazel b/packages/core/plugins/core-plugins-base-server-internal/BUILD.bazel new file mode 100644 index 0000000000000..7e4d73b638a75 --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/BUILD.bazel @@ -0,0 +1,107 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-plugins-base-server-internal" +PKG_REQUIRE_NAME = "@kbn/core-plugins-base-server-internal" + +SOURCE_FILES = glob( + [ + "**/*.ts", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "@npm//rxjs", + "//packages/core/base/core-base-common:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/plugins/core-plugins-base-server-internal/README.md b/packages/core/plugins/core-plugins-base-server-internal/README.md new file mode 100644 index 0000000000000..565082ebccc04 --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-plugins-base-server-internal + +This package contains base internal types of the `plugins` domain used across other core domains. diff --git a/packages/core/plugins/core-plugins-base-server-internal/index.ts b/packages/core/plugins/core-plugins-base-server-internal/index.ts new file mode 100644 index 0000000000000..3052f46e9fe7a --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/index.ts @@ -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. + */ + +export type { UiPlugins, InternalPluginInfo } from './src'; diff --git a/packages/core/plugins/core-plugins-base-server-internal/jest.config.js b/packages/core/plugins/core-plugins-base-server-internal/jest.config.js new file mode 100644 index 0000000000000..9a9b5aa5ec9bf --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/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/plugins/core-plugins-base-server-internal'], +}; diff --git a/packages/core/plugins/core-plugins-base-server-internal/kibana.jsonc b/packages/core/plugins/core-plugins-base-server-internal/kibana.jsonc new file mode 100644 index 0000000000000..a593530ab5fc4 --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-plugins-base-server-internal", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/plugins/core-plugins-base-server-internal/package.json b/packages/core/plugins/core-plugins-base-server-internal/package.json new file mode 100644 index 0000000000000..6af3453f1a29b --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-plugins-base-server-internal", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/packages/core/plugins/core-plugins-base-server-internal/src/index.ts b/packages/core/plugins/core-plugins-base-server-internal/src/index.ts new file mode 100644 index 0000000000000..ade9e77fc1783 --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/src/index.ts @@ -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. + */ + +export type { UiPlugins, InternalPluginInfo } from './types'; diff --git a/packages/core/plugins/core-plugins-base-server-internal/src/types.ts b/packages/core/plugins/core-plugins-base-server-internal/src/types.ts new file mode 100644 index 0000000000000..d0afcce5dba5c --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/src/types.ts @@ -0,0 +1,51 @@ +/* + * 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 { Observable } from 'rxjs'; +import type { DiscoveredPlugin, PluginName } from '@kbn/core-base-common'; + +/** @internal */ +export interface UiPlugins { + /** + * Paths to all discovered ui plugin entrypoints on the filesystem, even if + * disabled. + */ + internal: Map; + + /** + * Information needed by client-side to load plugins and wire dependencies. + */ + public: Map; + + /** + * Configuration for plugins to be exposed to the client-side. + */ + browserConfigs: Map>; +} + +/** + * @internal + */ +export interface InternalPluginInfo { + /** + * Version of the plugin + */ + readonly version: string; + /** + * Bundles that must be loaded for this plugin + */ + readonly requiredBundles: readonly string[]; + /** + * Path to the target/public directory of the plugin which should be served + */ + readonly publicTargetDir: string; + /** + * Path to the plugin assets directory. + */ + readonly publicAssetsDir: string; +} diff --git a/packages/core/plugins/core-plugins-base-server-internal/tsconfig.json b/packages/core/plugins/core-plugins-base-server-internal/tsconfig.json new file mode 100644 index 0000000000000..71bb40fe57f3f --- /dev/null +++ b/packages/core/plugins/core-plugins-base-server-internal/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/packages/core/rendering/core-rendering-server-internal/BUILD.bazel b/packages/core/rendering/core-rendering-server-internal/BUILD.bazel new file mode 100644 index 0000000000000..b02ff09264699 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/BUILD.bazel @@ -0,0 +1,127 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-rendering-server-internal" +PKG_REQUIRE_NAME = "@kbn/core-rendering-server-internal" + +SOURCE_FILES = glob( + [ + "**/*.ts", + "**/*.tsx", + ], + exclude = [ + "**/*.config.js", + "**/*.mock.*", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ + "@npm//react", + "@npm//react-dom", + "@npm//rxjs", + "//packages/kbn-i18n", + "//packages/kbn-ui-shared-deps-npm", + "//packages/kbn-ui-shared-deps-src", +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "@npm//@types/react", + "@npm//@types/react-dom", + "@npm//rxjs", + "//packages/kbn-i18n:npm_module_types", + "//packages/kbn-ui-shared-deps-npm:npm_module_types", + "//packages/kbn-ui-shared-deps-src:npm_module_types", + "//packages/core/base/core-base-server-internal:npm_module_types", + "//packages/core/injected-metadata/core-injected-metadata-common-internal:npm_module_types", + "//packages/core/http/core-http-server:npm_module_types", + "//packages/core/http/core-http-server-internal:npm_module_types", + "//packages/core/elasticsearch/core-elasticsearch-server-internal:npm_module_types", + "//packages/core/status/core-status-server-internal:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-common:npm_module_types", + "//packages/core/ui-settings/core-ui-settings-server:npm_module_types", + "//packages/core/plugins/core-plugins-base-server-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/rendering/core-rendering-server-internal/README.md b/packages/core/rendering/core-rendering-server-internal/README.md new file mode 100644 index 0000000000000..629ac2047de02 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/README.md @@ -0,0 +1,3 @@ +# @kbn/core-rendering-server-internal + +This package contains the internal types and implementation for Core's server-side rendering service. diff --git a/packages/core/rendering/core-rendering-server-internal/index.ts b/packages/core/rendering/core-rendering-server-internal/index.ts new file mode 100644 index 0000000000000..7ddc442a74253 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { RenderingService, Fonts } from './src'; +export type { + InternalRenderingServicePreboot, + InternalRenderingServiceSetup, + IRenderOptions, + RenderingMetadata, + RenderingPrebootDeps, + RenderingSetupDeps, +} from './src'; diff --git a/packages/core/rendering/core-rendering-server-internal/jest.config.js b/packages/core/rendering/core-rendering-server-internal/jest.config.js new file mode 100644 index 0000000000000..48ca2e89b9763 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/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/rendering/core-rendering-server-internal'], +}; diff --git a/packages/core/rendering/core-rendering-server-internal/kibana.jsonc b/packages/core/rendering/core-rendering-server-internal/kibana.jsonc new file mode 100644 index 0000000000000..2ce227d70528f --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-rendering-server-internal", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/rendering/core-rendering-server-internal/package.json b/packages/core/rendering/core-rendering-server-internal/package.json new file mode 100644 index 0000000000000..ef29d29e9fa2f --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-rendering-server-internal", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap b/packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap similarity index 100% rename from src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap rename to packages/core/rendering/core-rendering-server-internal/src/__snapshots__/rendering_service.test.ts.snap diff --git a/src/core/server/rendering/bootstrap/__snapshots__/render_template.test.ts.snap b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/__snapshots__/render_template.test.ts.snap similarity index 100% rename from src/core/server/rendering/bootstrap/__snapshots__/render_template.test.ts.snap rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/__snapshots__/render_template.test.ts.snap diff --git a/src/core/server/rendering/bootstrap/bootstrap_renderer.test.mocks.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.test.mocks.ts similarity index 100% rename from src/core/server/rendering/bootstrap/bootstrap_renderer.test.mocks.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.test.mocks.ts diff --git a/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.test.ts similarity index 98% rename from src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.test.ts index a1ed415f72c42..af9de3fbd6ff1 100644 --- a/src/core/server/rendering/bootstrap/bootstrap_renderer.test.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.test.ts @@ -15,7 +15,7 @@ import { import { PackageInfo } from '@kbn/config'; import { AuthStatus } from '@kbn/core-http-server'; -import { UiPlugins } from '../../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; import { bootstrapRendererFactory, BootstrapRenderer } from './bootstrap_renderer'; diff --git a/src/core/server/rendering/bootstrap/bootstrap_renderer.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts similarity index 97% rename from src/core/server/rendering/bootstrap/bootstrap_renderer.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts index 4c20f8d3d799a..8424bb3e68a1d 100644 --- a/src/core/server/rendering/bootstrap/bootstrap_renderer.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/bootstrap_renderer.ts @@ -11,7 +11,7 @@ import { PackageInfo } from '@kbn/config'; import { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; -import { UiPlugins } from '../../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { getPluginsBundlePaths } from './get_plugin_bundle_paths'; import { getJsDependencyPaths } from './get_js_dependency_paths'; import { getThemeTag } from './get_theme_tag'; diff --git a/src/core/server/rendering/bootstrap/get_js_dependency_paths.test.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_js_dependency_paths.test.ts similarity index 100% rename from src/core/server/rendering/bootstrap/get_js_dependency_paths.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_js_dependency_paths.test.ts diff --git a/src/core/server/rendering/bootstrap/get_js_dependency_paths.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_js_dependency_paths.ts similarity index 100% rename from src/core/server/rendering/bootstrap/get_js_dependency_paths.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_js_dependency_paths.ts diff --git a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.test.ts similarity index 94% rename from src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.test.ts index e3746eeb17a00..619765cdc7b6a 100644 --- a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.test.ts @@ -6,7 +6,8 @@ * Side Public License, v 1. */ -import { InternalPluginInfo, PluginType, UiPlugins } from '../../plugins'; +import { PluginType } from '@kbn/core-base-common'; +import type { InternalPluginInfo, UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { getPluginsBundlePaths } from './get_plugin_bundle_paths'; const createUiPlugins = (pluginDeps: Record) => { diff --git a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.ts similarity index 95% rename from src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.ts index e5a9ed9fdd3d0..ad9f3edb4aa51 100644 --- a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_plugin_bundle_paths.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiPlugins } from '../../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { filterUiPlugins } from '../filter_ui_plugins'; export interface PluginInfo { diff --git a/src/core/server/rendering/bootstrap/get_theme_tag.test.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_theme_tag.test.ts similarity index 100% rename from src/core/server/rendering/bootstrap/get_theme_tag.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_theme_tag.test.ts diff --git a/src/core/server/rendering/bootstrap/get_theme_tag.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_theme_tag.ts similarity index 100% rename from src/core/server/rendering/bootstrap/get_theme_tag.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/get_theme_tag.ts diff --git a/src/core/server/rendering/bootstrap/index.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/index.ts similarity index 100% rename from src/core/server/rendering/bootstrap/index.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/index.ts diff --git a/src/core/server/rendering/bootstrap/register_bootstrap_route.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/register_bootstrap_route.ts similarity index 100% rename from src/core/server/rendering/bootstrap/register_bootstrap_route.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/register_bootstrap_route.ts diff --git a/src/core/server/rendering/bootstrap/render_template.test.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/render_template.test.ts similarity index 100% rename from src/core/server/rendering/bootstrap/render_template.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/render_template.test.ts diff --git a/src/core/server/rendering/bootstrap/render_template.ts b/packages/core/rendering/core-rendering-server-internal/src/bootstrap/render_template.ts similarity index 100% rename from src/core/server/rendering/bootstrap/render_template.ts rename to packages/core/rendering/core-rendering-server-internal/src/bootstrap/render_template.ts diff --git a/src/core/server/rendering/filter_ui_plugins.test.ts b/packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.test.ts similarity index 93% rename from src/core/server/rendering/filter_ui_plugins.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.test.ts index fc013b4be0d07..096e0cc57b1f6 100644 --- a/src/core/server/rendering/filter_ui_plugins.test.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.test.ts @@ -6,7 +6,8 @@ * Side Public License, v 1. */ -import type { DiscoveredPlugin, PluginName, UiPlugins } from '../plugins'; +import type { PluginName, DiscoveredPlugin } from '@kbn/core-base-common'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { filterUiPlugins } from './filter_ui_plugins'; function createMockPlugin(params: Partial) { diff --git a/src/core/server/rendering/filter_ui_plugins.ts b/packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.ts similarity index 95% rename from src/core/server/rendering/filter_ui_plugins.ts rename to packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.ts index d3ca102a35758..e1be7719bfea7 100644 --- a/src/core/server/rendering/filter_ui_plugins.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/filter_ui_plugins.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { UiPlugins } from '../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; /** * Gets the array of plugins that should be enabled on the page. diff --git a/src/core/server/rendering/index.ts b/packages/core/rendering/core-rendering-server-internal/src/index.ts similarity index 94% rename from src/core/server/rendering/index.ts rename to packages/core/rendering/core-rendering-server-internal/src/index.ts index 6cf0e2a74aa1f..e1cac45f7765c 100644 --- a/src/core/server/rendering/index.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/index.ts @@ -7,6 +7,7 @@ */ export { RenderingService } from './rendering_service'; +export { Fonts } from './views'; export type { InternalRenderingServicePreboot, InternalRenderingServiceSetup, diff --git a/src/core/server/rendering/internal_types.ts b/packages/core/rendering/core-rendering-server-internal/src/internal_types.ts similarity index 100% rename from src/core/server/rendering/internal_types.ts rename to packages/core/rendering/core-rendering-server-internal/src/internal_types.ts diff --git a/src/core/server/rendering/render_utils.test.ts b/packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts similarity index 100% rename from src/core/server/rendering/render_utils.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/render_utils.test.ts diff --git a/src/core/server/rendering/render_utils.ts b/packages/core/rendering/core-rendering-server-internal/src/render_utils.ts similarity index 100% rename from src/core/server/rendering/render_utils.ts rename to packages/core/rendering/core-rendering-server-internal/src/render_utils.ts diff --git a/src/core/server/rendering/rendering_service.test.mocks.ts b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts similarity index 100% rename from src/core/server/rendering/rendering_service.test.mocks.ts rename to packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.mocks.ts diff --git a/src/core/server/rendering/rendering_service.test.ts b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts similarity index 99% rename from src/core/server/rendering/rendering_service.test.ts rename to packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts index 424bcd8a6533b..48196717c6f9f 100644 --- a/src/core/server/rendering/rendering_service.test.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.test.ts @@ -22,7 +22,7 @@ import { mockRenderingServiceParams, mockRenderingPrebootDeps, mockRenderingSetupDeps, -} from './__mocks__/params'; +} from './test_helpers/params'; import { InternalRenderingServicePreboot, InternalRenderingServiceSetup } from './types'; import { RenderingService } from './rendering_service'; import { AuthStatus } from '@kbn/core-http-server'; diff --git a/src/core/server/rendering/rendering_service.tsx b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx similarity index 98% rename from src/core/server/rendering/rendering_service.tsx rename to packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx index c5b56a06782bc..653768c83d784 100644 --- a/src/core/server/rendering/rendering_service.tsx +++ b/packages/core/rendering/core-rendering-server-internal/src/rendering_service.tsx @@ -8,15 +8,15 @@ import React from 'react'; import { renderToStaticMarkup } from 'react-dom/server'; +import { firstValueFrom, of } from 'rxjs'; import { catchError, take, timeout } from 'rxjs/operators'; import { i18n } from '@kbn/i18n'; import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; -import { firstValueFrom, of } from 'rxjs'; import type { CoreContext } from '@kbn/core-base-server-internal'; import type { KibanaRequest, HttpAuth } from '@kbn/core-http-server'; import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; -import type { UiPlugins } from '../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { Template } from './views'; import { IRenderOptions, diff --git a/src/core/server/rendering/__mocks__/params.ts b/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts similarity index 85% rename from src/core/server/rendering/__mocks__/params.ts rename to packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts index c75353b87a65d..51dfab71efd22 100644 --- a/src/core/server/rendering/__mocks__/params.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/test_helpers/params.ts @@ -10,7 +10,6 @@ import { mockCoreContext } from '@kbn/core-base-server-mocks'; import { httpServiceMock } from '@kbn/core-http-server-mocks'; import { elasticsearchServiceMock } from '@kbn/core-elasticsearch-server-mocks'; import { statusServiceMock } from '@kbn/core-status-server-mocks'; -import { pluginServiceMock } from '../../plugins/plugins_service.mock'; const context = mockCoreContext.create(); const httpPreboot = httpServiceMock.createInternalPrebootContract(); @@ -18,14 +17,22 @@ const httpSetup = httpServiceMock.createInternalSetupContract(); const status = statusServiceMock.createInternalSetupContract(); const elasticsearch = elasticsearchServiceMock.createInternalSetup(); +function createUiPlugins() { + return { + browserConfigs: new Map(), + internal: new Map(), + public: new Map(), + }; +} + export const mockRenderingServiceParams = context; export const mockRenderingPrebootDeps = { http: httpPreboot, - uiPlugins: pluginServiceMock.createUiPlugins(), + uiPlugins: createUiPlugins(), }; export const mockRenderingSetupDeps = { elasticsearch, http: httpSetup, - uiPlugins: pluginServiceMock.createUiPlugins(), + uiPlugins: createUiPlugins(), status, }; diff --git a/src/core/server/rendering/__mocks__/rendering_service.ts b/packages/core/rendering/core-rendering-server-internal/src/test_helpers/rendering_service.ts similarity index 100% rename from src/core/server/rendering/__mocks__/rendering_service.ts rename to packages/core/rendering/core-rendering-server-internal/src/test_helpers/rendering_service.ts diff --git a/src/core/server/rendering/types.ts b/packages/core/rendering/core-rendering-server-internal/src/types.ts similarity index 96% rename from src/core/server/rendering/types.ts rename to packages/core/rendering/core-rendering-server-internal/src/types.ts index 7068d2a9b789d..e2f7797ac5c42 100644 --- a/src/core/server/rendering/types.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/types.ts @@ -17,7 +17,7 @@ import type { import type { InternalElasticsearchServiceSetup } from '@kbn/core-elasticsearch-server-internal'; import type { InternalStatusServiceSetup } from '@kbn/core-status-server-internal'; import type { IUiSettingsClient } from '@kbn/core-ui-settings-server'; -import { UiPlugins } from '../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; /** @internal */ export interface RenderingMetadata { @@ -46,7 +46,7 @@ export interface RenderingSetupDeps { uiPlugins: UiPlugins; } -/** @public */ +/** @internal */ export interface IRenderOptions { /** * Set whether the page is anonymous, which determines what plugins are enabled and whether to output user settings in the page metadata. diff --git a/src/core/server/rendering/views/fonts.tsx b/packages/core/rendering/core-rendering-server-internal/src/views/fonts.tsx similarity index 100% rename from src/core/server/rendering/views/fonts.tsx rename to packages/core/rendering/core-rendering-server-internal/src/views/fonts.tsx diff --git a/src/core/server/rendering/views/index.ts b/packages/core/rendering/core-rendering-server-internal/src/views/index.ts similarity index 92% rename from src/core/server/rendering/views/index.ts rename to packages/core/rendering/core-rendering-server-internal/src/views/index.ts index 1aa6e658e3d29..01f395261eccf 100644 --- a/src/core/server/rendering/views/index.ts +++ b/packages/core/rendering/core-rendering-server-internal/src/views/index.ts @@ -7,3 +7,4 @@ */ export { Template } from './template'; +export { Fonts } from './fonts'; diff --git a/src/core/server/rendering/views/logo.tsx b/packages/core/rendering/core-rendering-server-internal/src/views/logo.tsx similarity index 100% rename from src/core/server/rendering/views/logo.tsx rename to packages/core/rendering/core-rendering-server-internal/src/views/logo.tsx diff --git a/src/core/server/rendering/views/styles.tsx b/packages/core/rendering/core-rendering-server-internal/src/views/styles.tsx similarity index 100% rename from src/core/server/rendering/views/styles.tsx rename to packages/core/rendering/core-rendering-server-internal/src/views/styles.tsx diff --git a/src/core/server/rendering/views/template.tsx b/packages/core/rendering/core-rendering-server-internal/src/views/template.tsx similarity index 100% rename from src/core/server/rendering/views/template.tsx rename to packages/core/rendering/core-rendering-server-internal/src/views/template.tsx diff --git a/packages/core/rendering/core-rendering-server-internal/tsconfig.json b/packages/core/rendering/core-rendering-server-internal/tsconfig.json new file mode 100644 index 0000000000000..73c8a6666ff7e --- /dev/null +++ b/packages/core/rendering/core-rendering-server-internal/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node", + "react", + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ] +} diff --git a/packages/core/rendering/core-rendering-server-mocks/BUILD.bazel b/packages/core/rendering/core-rendering-server-mocks/BUILD.bazel new file mode 100644 index 0000000000000..9ec36da1a1f67 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/BUILD.bazel @@ -0,0 +1,106 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") + +PKG_DIRNAME = "core-rendering-server-mocks" +PKG_REQUIRE_NAME = "@kbn/core-rendering-server-mocks" + +SOURCE_FILES = glob( + [ + "**/*.ts", + ], + exclude = [ + "**/*.config.js", + "**/*.test.*", + "**/*.stories.*", + "**/__snapshots__/**", + "**/integration_tests/**", + "**/mocks/**", + "**/scripts/**", + "**/storybook/**", + "**/test_fixtures/**", + "**/test_helpers/**", + ], +) + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = SRCS, +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", +] + +RUNTIME_DEPS = [ +] + +TYPES_DEPS = [ + "@npm//@types/node", + "@npm//@types/jest", + "//packages/kbn-utility-types:npm_module_types", + "//packages/core/rendering/core-rendering-server-internal:npm_module_types", +] + +jsts_transpiler( + name = "target_node", + srcs = SRCS, + build_pkg_name = package_name(), +) + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + "//:tsconfig.bazel.json", + ], +) + +ts_project( + name = "tsc_types", + args = ['--pretty'], + srcs = SRCS, + deps = TYPES_DEPS, + declaration = True, + declaration_map = True, + emit_declaration_only = True, + out_dir = "target_types", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_DIRNAME, + srcs = NPM_MODULE_EXTRA_FILES, + deps = RUNTIME_DEPS + [":target_node"], + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + deps = [":" + PKG_DIRNAME], +) + +filegroup( + name = "build", + srcs = [":npm_module"], + visibility = ["//visibility:public"], +) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [":npm_module_types"], + visibility = ["//visibility:public"], +) diff --git a/packages/core/rendering/core-rendering-server-mocks/README.md b/packages/core/rendering/core-rendering-server-mocks/README.md new file mode 100644 index 0000000000000..72df549319198 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/README.md @@ -0,0 +1,4 @@ +# @kbn/core-rendering-server-mocks + +This package contains mocks for Core's server-side rendering service. +- `renderingServiceMock` diff --git a/packages/core/rendering/core-rendering-server-mocks/index.ts b/packages/core/rendering/core-rendering-server-mocks/index.ts new file mode 100644 index 0000000000000..e7ce72ce797fb --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/index.ts @@ -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. + */ + +export { renderingServiceMock } from './src'; diff --git a/packages/core/rendering/core-rendering-server-mocks/jest.config.js b/packages/core/rendering/core-rendering-server-mocks/jest.config.js new file mode 100644 index 0000000000000..5dc1ae51c50b0 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/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/rendering/core-rendering-server-mocks'], +}; diff --git a/packages/core/rendering/core-rendering-server-mocks/kibana.jsonc b/packages/core/rendering/core-rendering-server-mocks/kibana.jsonc new file mode 100644 index 0000000000000..a04eae9cadc20 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/kibana.jsonc @@ -0,0 +1,7 @@ +{ + "type": "shared-common", + "id": "@kbn/core-rendering-server-mocks", + "owner": "@elastic/kibana-core", + "runtimeDeps": [], + "typeDeps": [], +} diff --git a/packages/core/rendering/core-rendering-server-mocks/package.json b/packages/core/rendering/core-rendering-server-mocks/package.json new file mode 100644 index 0000000000000..572e1d5530587 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/core-rendering-server-mocks", + "private": true, + "version": "1.0.0", + "main": "./target_node/index.js", + "author": "Kibana Core", + "license": "SSPL-1.0 OR Elastic License 2.0" +} diff --git a/packages/core/rendering/core-rendering-server-mocks/src/index.ts b/packages/core/rendering/core-rendering-server-mocks/src/index.ts new file mode 100644 index 0000000000000..d56794e3e9ac6 --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/src/index.ts @@ -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. + */ + +export { renderingServiceMock } from './rendering_service.mock'; diff --git a/src/core/server/rendering/rendering_service.mock.ts b/packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts similarity index 55% rename from src/core/server/rendering/rendering_service.mock.ts rename to packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts index 3d8213da62c6d..5cdf5c92f9237 100644 --- a/src/core/server/rendering/rendering_service.mock.ts +++ b/packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts @@ -6,7 +6,14 @@ * Side Public License, v 1. */ -import { InternalRenderingServicePreboot, InternalRenderingServiceSetup } from './types'; +import type { PublicMethodsOf } from '@kbn/utility-types'; +import type { + InternalRenderingServicePreboot, + InternalRenderingServiceSetup, + RenderingService, +} from '@kbn/core-rendering-server-internal'; + +export type RenderingServiceMock = jest.Mocked>; function createRenderingPreboot() { const mocked: jest.Mocked = { @@ -22,7 +29,21 @@ function createRenderingSetup() { return mocked; } -export const renderingMock = { +function createRenderingService() { + const mock: RenderingServiceMock = { + preboot: jest.fn(), + setup: jest.fn(), + stop: jest.fn(), + }; + + mock.preboot.mockResolvedValue(createRenderingPreboot()); + mock.setup.mockResolvedValue(createRenderingSetup()); + + return mock; +} + +export const renderingServiceMock = { + create: createRenderingService, createPrebootContract: createRenderingPreboot, createSetupContract: createRenderingSetup, }; diff --git a/packages/core/rendering/core-rendering-server-mocks/tsconfig.json b/packages/core/rendering/core-rendering-server-mocks/tsconfig.json new file mode 100644 index 0000000000000..71bb40fe57f3f --- /dev/null +++ b/packages/core/rendering/core-rendering-server-mocks/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "stripInternal": false, + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ] +} diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts b/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts index 12f3041ec53fb..f816a85404f7a 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts +++ b/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts @@ -10,7 +10,7 @@ import { registerRouteForBundleMock } from './register_bundle_routes.test.mocks' import { PackageInfo } from '@kbn/config'; import { httpServiceMock } from '@kbn/core-http-server-mocks'; -import { InternalPluginInfo, UiPlugins } from '../../plugins'; +import type { InternalPluginInfo, UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { registerBundleRoutes } from './register_bundle_routes'; import { FileHashCache } from './file_hash_cache'; diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts b/src/core/server/core_app/bundle_routes/register_bundle_routes.ts index 6f701b46dcc8b..4adb50fdc96ca 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts +++ b/src/core/server/core_app/bundle_routes/register_bundle_routes.ts @@ -12,7 +12,7 @@ import { fromRoot } from '@kbn/utils'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; import * as UiSharedDepsSrc from '@kbn/ui-shared-deps-src'; import type { IRouter } from '@kbn/core-http-server'; -import { UiPlugins } from '../../plugins'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { FileHashCache } from './file_hash_cache'; import { registerRouteForBundle } from './bundles_route'; diff --git a/src/core/server/core_app/core_app.test.ts b/src/core/server/core_app/core_app.test.ts index 913ac2aa9ef67..76663eeed2fd1 100644 --- a/src/core/server/core_app/core_app.test.ts +++ b/src/core/server/core_app/core_app.test.ts @@ -10,9 +10,9 @@ import { registerBundleRoutesMock } from './core_app.test.mocks'; import { mockCoreContext } from '@kbn/core-base-server-mocks'; import { mockRouter } from '@kbn/core-http-router-server-mocks'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { coreMock, httpServerMock } from '../mocks'; import { httpResourcesMock } from '../http_resources/http_resources_service.mock'; -import type { UiPlugins } from '../plugins'; import { PluginType } from '../plugins'; import { CoreApp } from './core_app'; import { RequestHandlerContext } from '..'; diff --git a/src/core/server/core_app/core_app.ts b/src/core/server/core_app/core_app.ts index d6f305698fc94..b8701d7646b7e 100644 --- a/src/core/server/core_app/core_app.ts +++ b/src/core/server/core_app/core_app.ts @@ -20,10 +20,10 @@ import type { KibanaRequest, IBasePath, } from '@kbn/core-http-server'; +import type { UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { HttpResources, HttpResourcesServiceToolkit } from '../http_resources'; import { InternalCorePreboot, InternalCoreSetup } from '../internal_types'; import { registerBundleRoutes } from './bundle_routes'; -import { UiPlugins } from '../plugins'; import type { InternalCoreAppRequestHandlerContext } from './internal_types'; /** @internal */ diff --git a/src/core/server/http_resources/http_resources_service.test.ts b/src/core/server/http_resources/http_resources_service.test.ts index 47b0ef049485b..ea04f30847508 100644 --- a/src/core/server/http_resources/http_resources_service.test.ts +++ b/src/core/server/http_resources/http_resources_service.test.ts @@ -13,7 +13,7 @@ import type { RouteConfig } from '@kbn/core-http-server'; import { mockCoreContext } from '@kbn/core-base-server-mocks'; import { httpServiceMock, httpServerMock } from '@kbn/core-http-server-mocks'; import { coreMock } from '../mocks'; -import { renderingMock } from '../rendering/rendering_service.mock'; +import { renderingServiceMock } from '@kbn/core-rendering-server-mocks'; import { HttpResourcesService, PrebootDeps, SetupDeps } from './http_resources_service'; import { httpResourcesMock } from './http_resources_service.mock'; import { HttpResources } from '..'; @@ -37,11 +37,11 @@ describe('HttpResources service', () => { beforeEach(() => { prebootDeps = { http: httpServiceMock.createInternalPrebootContract(), - rendering: renderingMock.createPrebootContract(), + rendering: renderingServiceMock.createPrebootContract(), }; setupDeps = { http: httpServiceMock.createInternalSetupContract(), - rendering: renderingMock.createSetupContract(), + rendering: renderingServiceMock.createSetupContract(), }; service = new HttpResourcesService(coreContext); router = httpServiceMock.createRouter(); diff --git a/src/core/server/http_resources/http_resources_service.ts b/src/core/server/http_resources/http_resources_service.ts index 5db20bf45e409..7cc88699ea7ba 100644 --- a/src/core/server/http_resources/http_resources_service.ts +++ b/src/core/server/http_resources/http_resources_service.ts @@ -18,8 +18,11 @@ import type { InternalHttpServiceSetup, InternalHttpServicePreboot, } from '@kbn/core-http-server-internal'; +import type { + InternalRenderingServicePreboot, + InternalRenderingServiceSetup, +} from '@kbn/core-rendering-server-internal'; import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; -import { InternalRenderingServicePreboot, InternalRenderingServiceSetup } from '../rendering'; import { InternalHttpResourcesSetup, HttpResources, diff --git a/src/core/server/index.ts b/src/core/server/index.ts index 020975c15fb1b..dafd53e374fe8 100644 --- a/src/core/server/index.ts +++ b/src/core/server/index.ts @@ -230,7 +230,6 @@ export type { HttpResourcesRequestHandler, } from './http_resources'; -export type { IRenderOptions } from './rendering'; export type { LoggingServiceSetup, LoggerContextConfigInput, diff --git a/src/core/server/internal_types.ts b/src/core/server/internal_types.ts index e744ae01d1be0..683d08fe4f849 100644 --- a/src/core/server/internal_types.ts +++ b/src/core/server/internal_types.ts @@ -58,7 +58,7 @@ import type { InternalUiSettingsServiceSetup, InternalUiSettingsServiceStart, } from '@kbn/core-ui-settings-server-internal'; -import { InternalRenderingServiceSetup } from './rendering'; +import type { InternalRenderingServiceSetup } from '@kbn/core-rendering-server-internal'; import { InternalHttpResourcesPreboot, InternalHttpResourcesSetup } from './http_resources'; /** @internal */ diff --git a/src/core/server/mocks.ts b/src/core/server/mocks.ts index 6c2ef712cbf56..cd0429415e7cb 100644 --- a/src/core/server/mocks.ts +++ b/src/core/server/mocks.ts @@ -31,6 +31,7 @@ import { coreUsageDataServiceMock } from '@kbn/core-usage-data-server-mocks'; import { i18nServiceMock } from '@kbn/core-i18n-server-mocks'; import { statusServiceMock } from '@kbn/core-status-server-mocks'; import { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; +import { renderingServiceMock } from '@kbn/core-rendering-server-mocks'; import type { PluginInitializerContext, CoreSetup, @@ -40,7 +41,6 @@ import type { RequestHandlerContext, } from '.'; import { httpResourcesMock } from './http_resources/http_resources_service.mock'; -import { renderingMock } from './rendering/rendering_service.mock'; import { SharedGlobalConfig } from './plugins'; export { configServiceMock, configDeprecationsMock } from '@kbn/config-mocks'; @@ -57,7 +57,7 @@ export { export { migrationMocks } from '@kbn/core-saved-objects-migration-server-mocks'; export { uiSettingsServiceMock } from '@kbn/core-ui-settings-server-mocks'; export { metricsServiceMock } from '@kbn/core-metrics-server-mocks'; -export { renderingMock } from './rendering/rendering_service.mock'; +export { renderingServiceMock } from '@kbn/core-rendering-server-mocks'; export { statusServiceMock } from '@kbn/core-status-server-mocks'; export { contextServiceMock } from '@kbn/core-http-context-server-mocks'; export { capabilitiesServiceMock } from '@kbn/core-capabilities-server-mocks'; @@ -237,7 +237,7 @@ function createInternalCoreSetupMock() { environment: environmentServiceMock.createSetupContract(), i18n: i18nServiceMock.createSetupContract(), httpResources: httpResourcesMock.createSetupContract(), - rendering: renderingMock.createSetupContract(), + rendering: renderingServiceMock.createSetupContract(), uiSettings: uiSettingsServiceMock.createSetupContract(), logging: loggingServiceMock.createInternalSetupContract(), metrics: metricsServiceMock.createInternalSetupContract(), diff --git a/src/core/server/plugins/index.ts b/src/core/server/plugins/index.ts index 1b655ccd8bd98..2111d467ef3c2 100644 --- a/src/core/server/plugins/index.ts +++ b/src/core/server/plugins/index.ts @@ -10,7 +10,6 @@ export { PluginsService } from './plugins_service'; export type { PluginsServiceSetup, PluginsServiceStart, - UiPlugins, DiscoveredPlugins, } from './plugins_service'; export { config } from './plugins_config'; diff --git a/src/core/server/plugins/plugins_service.ts b/src/core/server/plugins/plugins_service.ts index a95619f3bc453..3305ff0a06b43 100644 --- a/src/core/server/plugins/plugins_service.ts +++ b/src/core/server/plugins/plugins_service.ts @@ -17,15 +17,10 @@ import type { CoreContext, CoreService } from '@kbn/core-base-server-internal'; import type { PluginName } from '@kbn/core-base-common'; import type { InternalEnvironmentServicePreboot } from '@kbn/core-environment-server-internal'; import type { InternalNodeServicePreboot } from '@kbn/core-node-server-internal'; +import type { InternalPluginInfo, UiPlugins } from '@kbn/core-plugins-base-server-internal'; import { discover, PluginDiscoveryError, PluginDiscoveryErrorType } from './discovery'; import { PluginWrapper } from './plugin'; -import { - DiscoveredPlugin, - InternalPluginInfo, - PluginConfigDescriptor, - PluginDependencies, - PluginType, -} from './types'; +import { DiscoveredPlugin, PluginConfigDescriptor, PluginDependencies, PluginType } from './types'; import { PluginsConfig, PluginsConfigType } from './plugins_config'; import { PluginsSystem } from './plugins_system'; import { createBrowserConfig } from './create_browser_config'; @@ -48,25 +43,6 @@ export interface PluginsServiceSetup { contracts: Map; } -/** @internal */ -export interface UiPlugins { - /** - * Paths to all discovered ui plugin entrypoints on the filesystem, even if - * disabled. - */ - internal: Map; - - /** - * Information needed by client-side to load plugins and wire dependencies. - */ - public: Map; - - /** - * Configuration for plugins to be exposed to the client-side. - */ - browserConfigs: Map>; -} - /** @internal */ export interface PluginsServiceStart { /** Start contracts returned by plugins. */ diff --git a/src/core/server/plugins/types.ts b/src/core/server/plugins/types.ts index f8b20b66f5069..699631bc4411e 100644 --- a/src/core/server/plugins/types.ts +++ b/src/core/server/plugins/types.ts @@ -254,28 +254,6 @@ export interface PluginManifest { readonly enabledOnAnonymousPages?: boolean; } -/** - * @internal - */ -export interface InternalPluginInfo { - /** - * Version of the plugin - */ - readonly version: string; - /** - * Bundles that must be loaded for this plugin - */ - readonly requiredBundles: readonly string[]; - /** - * Path to the target/public directory of the plugin which should be served - */ - readonly publicTargetDir: string; - /** - * Path to the plugin assets directory. - */ - readonly publicAssetsDir: string; -} - /** * The interface that should be returned by a `PluginInitializer` for a `preboot` plugin. * diff --git a/src/core/server/server.test.mocks.ts b/src/core/server/server.test.mocks.ts index dec2b17ae8c61..3e1d5c0e3a28f 100644 --- a/src/core/server/server.test.mocks.ts +++ b/src/core/server/server.test.mocks.ts @@ -63,10 +63,12 @@ jest.doMock('@kbn/core-config-server-internal', () => ({ ensureValidConfiguration: mockEnsureValidConfiguration, })); -import { RenderingService, mockRenderingService } from './rendering/__mocks__/rendering_service'; +import { renderingServiceMock } from '@kbn/core-rendering-server-mocks'; -export { mockRenderingService }; -jest.doMock('./rendering/rendering_service', () => ({ RenderingService })); +export const mockRenderingService = renderingServiceMock.create(); +jest.doMock('@kbn/core-rendering-server-internal', () => ({ + RenderingService: jest.fn(() => mockRenderingService), +})); import { environmentServiceMock } from '@kbn/core-environment-server-mocks'; diff --git a/src/core/server/server.ts b/src/core/server/server.ts index e333e8b81a404..b7f41dd31dd04 100644 --- a/src/core/server/server.ts +++ b/src/core/server/server.ts @@ -66,10 +66,10 @@ import type { RequestHandlerContext, PrebootRequestHandlerContext, } from '@kbn/core-http-request-handler-context-server'; +import { RenderingService } from '@kbn/core-rendering-server-internal'; import { CoreApp } from './core_app'; import { HttpResourcesService } from './http_resources'; -import { RenderingService } from './rendering'; import { PluginsService, config as pluginsConfig } from './plugins'; import { InternalCorePreboot, InternalCoreSetup, InternalCoreStart } from './internal_types'; import { DiscoveredPlugins } from './plugins'; diff --git a/x-pack/plugins/security/server/authentication/unauthenticated_page.test.tsx b/x-pack/plugins/security/server/authentication/unauthenticated_page.test.tsx index 708ca11ca8f78..aca2a5dd77e6c 100644 --- a/x-pack/plugins/security/server/authentication/unauthenticated_page.test.tsx +++ b/x-pack/plugins/security/server/authentication/unauthenticated_page.test.tsx @@ -12,7 +12,7 @@ import { coreMock } from '@kbn/core/server/mocks'; import { UnauthenticatedPage } from './unauthenticated_page'; -jest.mock('@kbn/core/server/rendering/views/fonts', () => ({ +jest.mock('@kbn/core-rendering-server-internal', () => ({ Fonts: () => <>MockedFonts, })); diff --git a/x-pack/plugins/security/server/authorization/reset_session_page.test.tsx b/x-pack/plugins/security/server/authorization/reset_session_page.test.tsx index d5bce1e146eb1..8111246f0776d 100644 --- a/x-pack/plugins/security/server/authorization/reset_session_page.test.tsx +++ b/x-pack/plugins/security/server/authorization/reset_session_page.test.tsx @@ -12,7 +12,7 @@ import { coreMock } from '@kbn/core/server/mocks'; import { ResetSessionPage } from './reset_session_page'; -jest.mock('@kbn/core/server/rendering/views/fonts', () => ({ +jest.mock('@kbn/core-rendering-server-internal', () => ({ Fonts: () => <>MockedFonts, })); diff --git a/x-pack/plugins/security/server/prompt_page.test.tsx b/x-pack/plugins/security/server/prompt_page.test.tsx index 11b45f62f05d6..ef59cacd31bfc 100644 --- a/x-pack/plugins/security/server/prompt_page.test.tsx +++ b/x-pack/plugins/security/server/prompt_page.test.tsx @@ -12,7 +12,7 @@ import { coreMock } from '@kbn/core/server/mocks'; import { PromptPage } from './prompt_page'; -jest.mock('@kbn/core/server/rendering/views/fonts', () => ({ +jest.mock('@kbn/core-rendering-server-internal', () => ({ Fonts: () => <>MockedFonts, })); diff --git a/x-pack/plugins/security/server/prompt_page.tsx b/x-pack/plugins/security/server/prompt_page.tsx index e15574d5af4ef..14f59df15db39 100644 --- a/x-pack/plugins/security/server/prompt_page.tsx +++ b/x-pack/plugins/security/server/prompt_page.tsx @@ -20,8 +20,8 @@ import createCache from '@emotion/cache'; import type { ReactNode } from 'react'; import React from 'react'; +import { Fonts } from '@kbn/core-rendering-server-internal'; import type { IBasePath } from '@kbn/core/server'; -import { Fonts } from '@kbn/core/server/rendering/views/fonts'; import { i18n } from '@kbn/i18n'; import { I18nProvider } from '@kbn/i18n-react'; import UiSharedDepsNpm from '@kbn/ui-shared-deps-npm'; diff --git a/yarn.lock b/yarn.lock index 968956a15ccfa..b9db4636175d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3118,6 +3118,10 @@ version "0.0.0" uid "" +"@kbn/core-plugins-base-server-internal@link:bazel-bin/packages/core/plugins/core-plugins-base-server-internal": + version "0.0.0" + uid "" + "@kbn/core-plugins-browser-internal@link:bazel-bin/packages/core/plugins/core-plugins-browser-internal": version "0.0.0" uid "" @@ -3150,6 +3154,14 @@ version "0.0.0" uid "" +"@kbn/core-rendering-server-internal@link:bazel-bin/packages/core/rendering/core-rendering-server-internal": + version "0.0.0" + uid "" + +"@kbn/core-rendering-server-mocks@link:bazel-bin/packages/core/rendering/core-rendering-server-mocks": + version "0.0.0" + uid "" + "@kbn/core-root-browser-internal@link:bazel-bin/packages/core/root/core-root-browser-internal": version "0.0.0" uid "" @@ -7251,6 +7263,10 @@ version "0.0.0" uid "" +"@types/kbn__core-plugins-base-server-internal@link:bazel-bin/packages/core/plugins/core-plugins-base-server-internal/npm_module_types": + version "0.0.0" + uid "" + "@types/kbn__core-plugins-browser-internal@link:bazel-bin/packages/core/plugins/core-plugins-browser-internal/npm_module_types": version "0.0.0" uid "" @@ -7287,6 +7303,14 @@ version "0.0.0" uid "" +"@types/kbn__core-rendering-server-internal@link:bazel-bin/packages/core/rendering/core-rendering-server-internal/npm_module_types": + version "0.0.0" + uid "" + +"@types/kbn__core-rendering-server-mocks@link:bazel-bin/packages/core/rendering/core-rendering-server-mocks/npm_module_types": + version "0.0.0" + uid "" + "@types/kbn__core-root-browser-internal@link:bazel-bin/packages/core/root/core-root-browser-internal/npm_module_types": version "0.0.0" uid "" From f8a90275d55257c8b08a35c267fbb189ef26d81e Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Mon, 3 Oct 2022 10:17:38 +0200 Subject: [PATCH 09/51] [Fleet] Bulk action refactor and small fixes (#142299) * refactor to report errors in agent update for all actions * fixed tests * fixed types * refactor to reduce duplication * fixed test * fix for cypress test * passing error reason Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/fleet/cypress/plugins/index.ts | 1 + .../components/tags_add_remove.tsx | 14 +++++- .../server/services/agents/action_status.ts | 5 +- .../server/services/agents/actions.test.ts | 12 +++-- .../fleet/server/services/agents/actions.ts | 50 +++++++++++++++---- .../fleet/server/services/agents/crud.ts | 21 ++++---- .../services/agents/reassign_action_runner.ts | 39 ++++----------- .../server/services/agents/unenroll.test.ts | 16 +++--- .../services/agents/unenroll_action_runner.ts | 45 +++++++---------- .../agents/update_agent_tags_action_runner.ts | 35 +++++-------- .../server/services/agents/upgrade.test.ts | 4 +- .../services/agents/upgrade_action_runner.ts | 47 +++++++---------- 12 files changed, 144 insertions(+), 145 deletions(-) diff --git a/x-pack/plugins/fleet/cypress/plugins/index.ts b/x-pack/plugins/fleet/cypress/plugins/index.ts index d11dbb1e38ada..9fce88b6cd689 100644 --- a/x-pack/plugins/fleet/cypress/plugins/index.ts +++ b/x-pack/plugins/fleet/cypress/plugins/index.ts @@ -35,6 +35,7 @@ const plugin: Cypress.PluginConfig = (on, config) => { query, ignore_unavailable: ignoreUnavailable, refresh: true, + conflicts: 'proceed', }); }, }); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/tags_add_remove.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/tags_add_remove.tsx index 70b4da44dad68..8307bc3467cc2 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/tags_add_remove.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/components/tags_add_remove.tsx @@ -123,12 +123,22 @@ export const TagsAddRemove: React.FC = ({ // sending updated tags to add/remove, in case multiple actions are done quickly and the first one is not yet propagated const updatedTagsToAdd = tagsToAdd.concat( labels - .filter((tag) => tag.checked === 'on' && !selectedTags.includes(tag.label)) + .filter( + (tag) => + tag.checked === 'on' && + !selectedTags.includes(tag.label) && + !tagsToRemove.includes(tag.label) + ) .map((tag) => tag.label) ); const updatedTagsToRemove = tagsToRemove.concat( labels - .filter((tag) => tag.checked !== 'on' && selectedTags.includes(tag.label)) + .filter( + (tag) => + tag.checked !== 'on' && + selectedTags.includes(tag.label) && + !tagsToAdd.includes(tag.label) + ) .map((tag) => tag.label) ); diff --git a/x-pack/plugins/fleet/server/services/agents/action_status.ts b/x-pack/plugins/fleet/server/services/agents/action_status.ts index 8489c25e3fd8d..a057af185a066 100644 --- a/x-pack/plugins/fleet/server/services/agents/action_status.ts +++ b/x-pack/plugins/fleet/server/services/agents/action_status.ts @@ -64,7 +64,10 @@ export async function getActionStatuses( const matchingBucket = (acks?.aggregations?.ack_counts as any)?.buckets?.find( (bucket: any) => bucket.key === action.actionId ); - const nbAgentsAck = (matchingBucket?.agent_count as any)?.value ?? 0; + const nbAgentsAck = Math.min( + matchingBucket?.doc_count ?? 0, + (matchingBucket?.agent_count as any)?.value ?? 0 + ); const completionTime = (matchingBucket?.max_timestamp as any)?.value_as_string; const nbAgentsActioned = action.nbAgentsActioned || action.nbAgentsActionCreated; const complete = nbAgentsAck >= nbAgentsActioned; diff --git a/x-pack/plugins/fleet/server/services/agents/actions.test.ts b/x-pack/plugins/fleet/server/services/agents/actions.test.ts index 97d7c73035e6d..7c88b4885b843 100644 --- a/x-pack/plugins/fleet/server/services/agents/actions.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/actions.test.ts @@ -92,10 +92,14 @@ describe('Agent actions', () => { await cancelAgentAction(esClient, 'action1'); expect(mockedBulkUpdateAgents).toBeCalled(); - expect(mockedBulkUpdateAgents).toBeCalledWith(expect.anything(), [ - expect.objectContaining({ agentId: 'agent1' }), - expect.objectContaining({ agentId: 'agent2' }), - ]); + expect(mockedBulkUpdateAgents).toBeCalledWith( + expect.anything(), + [ + expect.objectContaining({ agentId: 'agent1' }), + expect.objectContaining({ agentId: 'agent2' }), + ], + {} + ); }); }); }); diff --git a/x-pack/plugins/fleet/server/services/agents/actions.ts b/x-pack/plugins/fleet/server/services/agents/actions.ts index 17c745bfd285f..8f9302bd31acd 100644 --- a/x-pack/plugins/fleet/server/services/agents/actions.ts +++ b/x-pack/plugins/fleet/server/services/agents/actions.ts @@ -8,6 +8,7 @@ import uuid from 'uuid'; import type { ElasticsearchClient } from '@kbn/core/server'; +import { appContextService } from '../app_context'; import type { Agent, AgentAction, @@ -101,6 +102,32 @@ export async function bulkCreateAgentActions( return actions; } +export async function createErrorActionResults( + esClient: ElasticsearchClient, + actionId: string, + errors: Record, + errorMessage: string +) { + const errorCount = Object.keys(errors).length; + if (errorCount > 0) { + appContextService + .getLogger() + .info( + `Writing error action results of ${errorCount} agents. Possibly failed validation: ${errorMessage}.` + ); + + // writing out error result for those agents that have errors, so the action is not going to stay in progress forever + await bulkCreateAgentActionResults( + esClient, + Object.keys(errors).map((agentId) => ({ + agentId, + actionId, + error: errors[agentId].message, + })) + ); + } +} + export async function bulkCreateAgentActionResults( esClient: ElasticsearchClient, results: Array<{ @@ -227,16 +254,6 @@ export async function cancelAgentAction(esClient: ElasticsearchClient, actionId: if (!hit._source || !hit._source.agents || !hit._source.action_id) { continue; } - await createAgentAction(esClient, { - id: cancelActionId, - type: 'CANCEL', - agents: hit._source.agents, - data: { - target_id: hit._source.action_id, - }, - created_at: now, - expiration: hit._source.expiration, - }); if (hit._source.type === 'UPGRADE') { await bulkUpdateAgents( esClient, @@ -246,9 +263,20 @@ export async function cancelAgentAction(esClient: ElasticsearchClient, actionId: upgraded_at: null, upgrade_started_at: null, }, - })) + })), + {} ); } + await createAgentAction(esClient, { + id: cancelActionId, + type: 'CANCEL', + agents: hit._source.agents, + data: { + target_id: hit._source.action_id, + }, + created_at: now, + expiration: hit._source.expiration, + }); } return { diff --git a/x-pack/plugins/fleet/server/services/agents/crud.ts b/x-pack/plugins/fleet/server/services/agents/crud.ts index 55a244664238b..d62bbf4c414bb 100644 --- a/x-pack/plugins/fleet/server/services/agents/crud.ts +++ b/x-pack/plugins/fleet/server/services/agents/crud.ts @@ -11,7 +11,7 @@ import type { SavedObjectsClientContract, ElasticsearchClient } from '@kbn/core/ import type { KueryNode } from '@kbn/es-query'; import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; -import type { AgentSOAttributes, Agent, BulkActionResult, ListWithKuery } from '../../types'; +import type { AgentSOAttributes, Agent, ListWithKuery } from '../../types'; import { appContextService, agentPolicyService } from '..'; import type { FleetServerAgent } from '../../../common/types'; import { SO_SEARCH_LIMIT } from '../../../common/constants'; @@ -395,10 +395,11 @@ export async function bulkUpdateAgents( updateData: Array<{ agentId: string; data: Partial; - }> -): Promise<{ items: BulkActionResult[] }> { + }>, + errors: { [key: string]: Error } +): Promise { if (updateData.length === 0) { - return { items: [] }; + return; } const body = updateData.flatMap(({ agentId, data }) => [ @@ -419,14 +420,12 @@ export async function bulkUpdateAgents( refresh: 'wait_for', }); - return { - items: res.items.map((item) => ({ - id: item.update!._id as string, - success: !item.update!.error, + res.items + .filter((item) => item.update!.error) + .forEach((item) => { // @ts-expect-error it not assignable to ErrorCause - error: item.update!.error as Error, - })), - }; + errors[item.update!._id as string] = item.update!.error as Error; + }); } export async function deleteAgent(esClient: ElasticsearchClient, agentId: string) { diff --git a/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts index 96405e464b358..c15857bb4ae32 100644 --- a/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/reassign_action_runner.ts @@ -16,7 +16,7 @@ import { appContextService } from '../app_context'; import { ActionRunner } from './action_runner'; import { bulkUpdateAgents } from './crud'; -import { bulkCreateAgentActionResults, createAgentAction } from './actions'; +import { createErrorActionResults, createAgentAction } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; import { BulkActionTaskType } from './bulk_actions_resolver'; @@ -72,7 +72,7 @@ export async function reassignBatch( throw new AgentReassignmentError('No agents to reassign, already assigned or hosted agents'); } - const res = await bulkUpdateAgents( + await bulkUpdateAgents( esClient, agentsToUpdate.map((agent) => ({ agentId: agent.id, @@ -80,18 +80,12 @@ export async function reassignBatch( policy_id: options.newAgentPolicyId, policy_revision: null, }, - })) + })), + errors ); - res.items - .filter((item) => !item.success) - .forEach((item) => { - errors[item.id] = item.error!; - }); - const actionId = options.actionId ?? uuid(); - const errorCount = Object.keys(errors).length; - const total = options.total ?? agentsToUpdate.length + errorCount; + const total = options.total ?? givenAgents.length; const now = new Date().toISOString(); await createAgentAction(esClient, { @@ -105,23 +99,12 @@ export async function reassignBatch( }, }); - if (errorCount > 0) { - appContextService - .getLogger() - .info( - `Skipping ${errorCount} agents, as failed validation (already assigned or assigned to hosted policy)` - ); - - // writing out error result for those agents that failed validation, so the action is not going to stay in progress forever - await bulkCreateAgentActionResults( - esClient, - Object.keys(errors).map((agentId) => ({ - agentId, - actionId, - error: errors[agentId].message, - })) - ); - } + await createErrorActionResults( + esClient, + actionId, + errors, + 'already assigned or assigned to hosted policy' + ); return { actionId }; } diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll.test.ts b/x-pack/plugins/fleet/server/services/agents/unenroll.test.ts index 79612b0bcbf06..5beb5c0a9ac00 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll.test.ts @@ -115,7 +115,7 @@ describe('unenrollAgents (plural)', () => { // calls ES update with correct values const onlyRegular = [agentInRegularDoc._id, agentInRegularDoc2._id]; - const calledWith = esClient.bulk.mock.calls[1][0]; + const calledWith = esClient.bulk.mock.calls[0][0]; const ids = (calledWith as estypes.BulkRequest)?.body ?.filter((i: any) => i.update !== undefined) .map((i: any) => i.update._id); @@ -128,7 +128,7 @@ describe('unenrollAgents (plural)', () => { } // hosted policy is updated in action results with error - const calledWithActionResults = esClient.bulk.mock.calls[0][0] as estypes.BulkRequest; + const calledWithActionResults = esClient.bulk.mock.calls[1][0] as estypes.BulkRequest; // bulk write two line per create expect(calledWithActionResults.body?.length).toBe(2); const expectedObject = expect.objectContaining({ @@ -170,7 +170,7 @@ describe('unenrollAgents (plural)', () => { }); expect(esClient.bulk.mock.calls.length).toEqual(3); - const bulkBody = (esClient.bulk.mock.calls[1][0] as estypes.BulkRequest)?.body?.[1] as any; + const bulkBody = (esClient.bulk.mock.calls[2][0] as estypes.BulkRequest)?.body?.[1] as any; expect(bulkBody.agent_id).toEqual(agentInRegularDoc._id); expect(bulkBody.action_id).toEqual('other-action'); }); @@ -227,7 +227,7 @@ describe('unenrollAgents (plural)', () => { // calls ES update with correct values const onlyRegular = [agentInRegularDoc._id, agentInRegularDoc2._id]; - const calledWith = esClient.bulk.mock.calls[2][0]; + const calledWith = esClient.bulk.mock.calls[0][0]; const ids = (calledWith as estypes.BulkRequest)?.body ?.filter((i: any) => i.update !== undefined) .map((i: any) => i.update._id); @@ -239,13 +239,13 @@ describe('unenrollAgents (plural)', () => { expect(doc).toHaveProperty('unenrolled_at'); } - const errorResults = esClient.bulk.mock.calls[1][0]; + const errorResults = esClient.bulk.mock.calls[2][0]; const errorIds = (errorResults as estypes.BulkRequest)?.body ?.filter((i: any) => i.agent_id) .map((i: any) => i.agent_id); expect(errorIds).toEqual([agentInHostedDoc._id]); - const actionResults = esClient.bulk.mock.calls[0][0]; + const actionResults = esClient.bulk.mock.calls[1][0]; const resultIds = (actionResults as estypes.BulkRequest)?.body ?.filter((i: any) => i.agent_id) .map((i: any) => i.agent_id); @@ -290,7 +290,7 @@ describe('unenrollAgents (plural)', () => { expect(unenrolledResponse.actionId).toBeDefined(); // calls ES update with correct values - const calledWith = esClient.bulk.mock.calls[1][0]; + const calledWith = esClient.bulk.mock.calls[0][0]; const ids = (calledWith as estypes.BulkRequest)?.body ?.filter((i: any) => i.update !== undefined) .map((i: any) => i.update._id); @@ -302,7 +302,7 @@ describe('unenrollAgents (plural)', () => { expect(doc).toHaveProperty('unenrolled_at'); } - const actionResults = esClient.bulk.mock.calls[0][0]; + const actionResults = esClient.bulk.mock.calls[1][0]; const resultIds = (actionResults as estypes.BulkRequest)?.body ?.filter((i: any) => i.agent_id) .map((i: any) => i.agent_id); diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts index dd5b4e023c2a3..c735254f18256 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll_action_runner.ts @@ -25,6 +25,7 @@ import { bulkUpdateAgents } from './crud'; import { bulkCreateAgentActionResults, createAgentAction, + createErrorActionResults, getUnenrollAgentActions, } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; @@ -81,13 +82,24 @@ export async function unenrollBatch( return agents; }, []); + const now = new Date().toISOString(); + + // Update the necessary agents + const updateData = options.revoke + ? { unenrolled_at: now, active: false } + : { unenrollment_started_at: now }; + + await bulkUpdateAgents( + esClient, + agentsToUpdate.map(({ id }) => ({ agentId: id, data: updateData })), + outgoingErrors + ); + const actionId = options.actionId ?? uuid(); - const errorCount = Object.keys(outgoingErrors).length; const total = options.total ?? givenAgents.length; const agentIds = agentsToUpdate.map((agent) => agent.id); - const now = new Date().toISOString(); if (options.revoke) { // Get all API keys that need to be invalidated await invalidateAPIKeysForAgents(agentsToUpdate); @@ -104,32 +116,11 @@ export async function unenrollBatch( }); } - if (errorCount > 0) { - appContextService - .getLogger() - .info( - `Skipping ${errorCount} agents, as failed validation (cannot unenroll from a hosted policy or already unenrolled)` - ); - - // writing out error result for those agents that failed validation, so the action is not going to stay in progress forever - await bulkCreateAgentActionResults( - esClient, - Object.keys(outgoingErrors).map((agentId) => ({ - agentId, - actionId, - error: outgoingErrors[agentId].message, - })) - ); - } - - // Update the necessary agents - const updateData = options.revoke - ? { unenrolled_at: now, active: false } - : { unenrollment_started_at: now }; - - await bulkUpdateAgents( + await createErrorActionResults( esClient, - agentsToUpdate.map(({ id }) => ({ agentId: id, data: updateData })) + actionId, + outgoingErrors, + 'cannot unenroll from a hosted policy or already unenrolled' ); return { diff --git a/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts index 48f7b455d36b7..11d42bc76e39a 100644 --- a/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/update_agent_tags_action_runner.ts @@ -11,14 +11,16 @@ import { difference, uniq } from 'lodash'; import type { Agent } from '../../types'; -import { appContextService } from '../app_context'; - import { ActionRunner } from './action_runner'; import { bulkUpdateAgents } from './crud'; import { BulkActionTaskType } from './bulk_actions_resolver'; import { filterHostedPolicies } from './filter_hosted_agents'; -import { bulkCreateAgentActionResults, createAgentAction } from './actions'; +import { + createErrorActionResults, + bulkCreateAgentActionResults, + createAgentAction, +} from './actions'; export class UpdateAgentTagsActionRunner extends ActionRunner { protected async processAgents(agents: Agent[]): Promise<{ actionId: string }> { @@ -90,12 +92,12 @@ export async function updateTagsBatch( data: { tags: getNewTags(agent), }, - })) + })), + errors ); const actionId = options.actionId ?? uuid(); const total = options.total ?? givenAgents.length; - const errorCount = Object.keys(errors).length; // creating an action doc so that update tags shows up in activity await createAgentAction(esClient, { @@ -113,23 +115,12 @@ export async function updateTagsBatch( })) ); - if (errorCount > 0) { - appContextService - .getLogger() - .info( - `Skipping ${errorCount} agents, as failed validation (cannot modified tags on hosted agents)` - ); - - // writing out error result for those agents that failed validation, so the action is not going to stay in progress forever - await bulkCreateAgentActionResults( - esClient, - Object.keys(errors).map((agentId) => ({ - agentId, - actionId, - error: errors[agentId].message, - })) - ); - } + await createErrorActionResults( + esClient, + actionId, + errors, + 'cannot modified tags on hosted agents' + ); return { actionId }; } diff --git a/x-pack/plugins/fleet/server/services/agents/upgrade.test.ts b/x-pack/plugins/fleet/server/services/agents/upgrade.test.ts index db880f56ef474..8b888126ce114 100644 --- a/x-pack/plugins/fleet/server/services/agents/upgrade.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/upgrade.test.ts @@ -50,7 +50,7 @@ describe('sendUpgradeAgentsActions (plural)', () => { // calls ES update with correct values const onlyRegular = [agentInRegularDoc._id, agentInRegularDoc2._id]; - const calledWith = esClient.bulk.mock.calls[1][0]; + const calledWith = esClient.bulk.mock.calls[0][0]; const ids = (calledWith as estypes.BulkRequest)?.body ?.filter((i: any) => i.update !== undefined) .map((i: any) => i.update._id); @@ -64,7 +64,7 @@ describe('sendUpgradeAgentsActions (plural)', () => { } // hosted policy is updated in action results with error - const calledWithActionResults = esClient.bulk.mock.calls[0][0] as estypes.BulkRequest; + const calledWithActionResults = esClient.bulk.mock.calls[1][0] as estypes.BulkRequest; // bulk write two line per create expect(calledWithActionResults.body?.length).toBe(2); const expectedObject = expect.objectContaining({ diff --git a/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts b/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts index a34f189871a39..c6794de6e2dcb 100644 --- a/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts +++ b/x-pack/plugins/fleet/server/services/agents/upgrade_action_runner.ts @@ -22,7 +22,7 @@ import { ActionRunner } from './action_runner'; import type { GetAgentsOptions } from './crud'; import { bulkUpdateAgents } from './crud'; -import { bulkCreateAgentActionResults, createAgentAction } from './actions'; +import { createErrorActionResults, createAgentAction } from './actions'; import { getHostedPolicies, isHostedAgent } from './hosted_agent'; import { BulkActionTaskType } from './bulk_actions_resolver'; @@ -108,9 +108,20 @@ export async function upgradeBatch( options.upgradeDurationSeconds ); + await bulkUpdateAgents( + esClient, + agentsToUpdate.map((agent) => ({ + agentId: agent.id, + data: { + upgraded_at: null, + upgrade_started_at: now, + }, + })), + errors + ); + const actionId = options.actionId ?? uuid(); - const errorCount = Object.keys(errors).length; - const total = options.total ?? agentsToUpdate.length + errorCount; + const total = options.total ?? givenAgents.length; await createAgentAction(esClient, { id: actionId, @@ -123,33 +134,11 @@ export async function upgradeBatch( ...rollingUpgradeOptions, }); - if (errorCount > 0) { - appContextService - .getLogger() - .info( - `Skipping ${errorCount} agents, as failed validation (cannot upgrade hosted agent or agent not upgradeable)` - ); - - // writing out error result for those agents that failed validation, so the action is not going to stay in progress forever - await bulkCreateAgentActionResults( - esClient, - Object.keys(errors).map((agentId) => ({ - agentId, - actionId, - error: errors[agentId].message, - })) - ); - } - - await bulkUpdateAgents( + await createErrorActionResults( esClient, - agentsToUpdate.map((agent) => ({ - agentId: agent.id, - data: { - upgraded_at: null, - upgrade_started_at: now, - }, - })) + actionId, + errors, + 'cannot upgrade hosted agent or agent not upgradeable' ); return { From 5203f1bcc86e777656fa7e7f0036638d83883f51 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Mon, 3 Oct 2022 10:25:39 +0200 Subject: [PATCH 10/51] [ML] Explain Log Rate Spikes: Fix loading state for grouping. (#141770) Fix loading state messages for grouping: - Fixes the progress bar messages to include the grouping step. - If progress stalls, it might look to the user like the analysis got stuck when there are steps like the grouping that take a longer time. This updates the progress bar to show an animated background as long as the analysis is running. When the analysis finishes or gets canceled the animated background gets disabled and shows a static background. --- .../packages/ml/aiops_components/BUILD.bazel | 4 ++ .../progress_controls/progress_controls.tsx | 12 ++++- .../use_animated_progress_bar_background.ts | 53 +++++++++++++++++++ .../ml/aiops_components/tsconfig.json | 3 +- .../server/routes/explain_log_rate_spikes.ts | 53 ++++++++++++++----- 5 files changed, 108 insertions(+), 17 deletions(-) create mode 100644 x-pack/packages/ml/aiops_components/src/progress_controls/use_animated_progress_bar_background.ts diff --git a/x-pack/packages/ml/aiops_components/BUILD.bazel b/x-pack/packages/ml/aiops_components/BUILD.bazel index 37ed6c171c4a0..08b49643adc2f 100644 --- a/x-pack/packages/ml/aiops_components/BUILD.bazel +++ b/x-pack/packages/ml/aiops_components/BUILD.bazel @@ -55,6 +55,8 @@ RUNTIME_DEPS = [ "@npm//react", "@npm//@elastic/charts", "@npm//@elastic/eui", + "@npm//@emotion/react", + "@npm//@emotion/css", "//packages/kbn-i18n-react", "//x-pack/packages/ml/aiops_utils", ] @@ -78,6 +80,8 @@ TYPES_DEPS = [ "@npm//@types/react", "@npm//@elastic/charts", "@npm//@elastic/eui", + "@npm//@emotion/react", + "@npm//@emotion/css", "//packages/kbn-i18n-react:npm_module_types", "//x-pack/packages/ml/aiops_utils:npm_module_types", ] diff --git a/x-pack/packages/ml/aiops_components/src/progress_controls/progress_controls.tsx b/x-pack/packages/ml/aiops_components/src/progress_controls/progress_controls.tsx index 579c528d16dca..af8f0ec1ad315 100644 --- a/x-pack/packages/ml/aiops_components/src/progress_controls/progress_controls.tsx +++ b/x-pack/packages/ml/aiops_components/src/progress_controls/progress_controls.tsx @@ -5,7 +5,10 @@ * 2.0. */ +import React from 'react'; + import { + useEuiTheme, EuiButton, EuiFlexGroup, EuiFlexItem, @@ -13,9 +16,11 @@ import { EuiProgress, EuiText, } from '@elastic/eui'; + import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; -import React from 'react'; + +import { useAnimatedProgressBarBackground } from './use_animated_progress_bar_background'; // TODO Consolidate with duplicate component `CorrelationsProgressControls` in // `x-pack/plugins/apm/public/components/app/correlations/progress_controls.tsx` @@ -37,6 +42,9 @@ export function ProgressControls({ isRunning, shouldRerunAnalysis, }: ProgressControlProps) { + const { euiTheme } = useEuiTheme(); + const runningProgressBarStyles = useAnimatedProgressBarBackground(euiTheme.colors.success); + return ( @@ -51,7 +59,7 @@ export function ProgressControls({ /> - + { + return useMemo(() => { + const progressBackground = { + background: `repeating-linear-gradient( + -45deg, + transparent 0 6px, + rgba(0, 0, 0, 0.1) 6px 12px + ), + ${color}`, + // 0.707 = cos(45deg) + backgroundSize: 'calc(12px / 0.707) 100%, 100% 800%', + backgroundPosition: 'inherit', + }; + + return css({ + 'progress[value]': { + animation: 'aiopsAnimatedProgress 4s infinite linear', + + '::-webkit-progress-inner-element': { + overflow: 'hidden', + backgroundPosition: 'inherit', + }, + '::-webkit-progress-bar': { + backgroundColor: 'transparent', + backgroundPosition: 'inherit', + }, + + '::-webkit-progress-value': progressBackground, + '::-moz-progress-bar': progressBackground, + + '@keyframes aiopsAnimatedProgress': { + '0%': { + backgroundPosition: '0 0', + }, + '100%': { + backgroundPosition: 'calc(10 * (12px / 0.707)) 100%', + }, + }, + }, + }); + }, [color]); +}; diff --git a/x-pack/packages/ml/aiops_components/tsconfig.json b/x-pack/packages/ml/aiops_components/tsconfig.json index 8bca748268ac2..cdb1c5d8d0007 100644 --- a/x-pack/packages/ml/aiops_components/tsconfig.json +++ b/x-pack/packages/ml/aiops_components/tsconfig.json @@ -12,7 +12,8 @@ "@types/d3-transition", "jest", "node", - "react" + "react", + "@emotion/react/types/css-prop" ] }, "include": [ diff --git a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts b/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts index 48ea2dbddb1c3..8a8a7372f80e2 100644 --- a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts +++ b/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts @@ -52,8 +52,10 @@ import { // Overall progress is a float from 0 to 1. const LOADED_FIELD_CANDIDATES = 0.2; -const PROGRESS_STEP_P_VALUES = 0.6; -const PROGRESS_STEP_HISTOGRAMS = 0.2; +const PROGRESS_STEP_P_VALUES = 0.5; +const PROGRESS_STEP_GROUPING = 0.1; +const PROGRESS_STEP_HISTOGRAMS = 0.1; +const PROGRESS_STEP_HISTOGRAMS_GROUPS = 0.1; export const defineExplainLogRateSpikesRoute = ( router: IRouter, @@ -233,7 +235,35 @@ export const defineExplainLogRateSpikesRoute = ( undefined )) as [NumericChartData]; + function pushHistogramDataLoadingState() { + push( + updateLoadingStateAction({ + ccsWarning: false, + loaded, + loadingState: i18n.translate( + 'xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData', + { + defaultMessage: 'Loading histogram data.', + } + ), + }) + ); + } + if (groupingEnabled) { + push( + updateLoadingStateAction({ + ccsWarning: false, + loaded, + loadingState: i18n.translate( + 'xpack.aiops.explainLogRateSpikes.loadingState.groupingResults', + { + defaultMessage: 'Transforming significant field/value pairs into groups.', + } + ), + }) + ); + // To optimize the `frequent_items` query, we identify duplicate change points by count attributes. // Note this is a compromise and not 100% accurate because there could be change points that // have the exact same counts but still don't co-occur. @@ -389,6 +419,10 @@ export const defineExplainLogRateSpikesRoute = ( push(addChangePointsGroupAction(changePointGroups)); } + loaded += PROGRESS_STEP_GROUPING; + + pushHistogramDataLoadingState(); + if (changePointGroups) { await asyncForEach(changePointGroups, async (cpg, index) => { const histogramQuery = { @@ -445,6 +479,8 @@ export const defineExplainLogRateSpikesRoute = ( } } + loaded += PROGRESS_STEP_HISTOGRAMS_GROUPS; + // time series filtered by fields if (changePoints) { await asyncForEach(changePoints, async (cp, index) => { @@ -496,18 +532,7 @@ export const defineExplainLogRateSpikesRoute = ( const { fieldName, fieldValue } = cp; loaded += (1 / changePoints.length) * PROGRESS_STEP_HISTOGRAMS; - push( - updateLoadingStateAction({ - ccsWarning: false, - loaded, - loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData', - { - defaultMessage: 'Loading histogram data.', - } - ), - }) - ); + pushHistogramDataLoadingState(); push( addChangePointsHistogramAction([ { From 656a48fee9cd6e0f013b830187d94ea5b964cf91 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 3 Oct 2022 09:30:06 +0100 Subject: [PATCH 11/51] [ML] Api tests for ml/modules/jobs_exist/{moduleId} (#142378) * [ML] Api tests for ml/modules/jobs_exist/{moduleId} * fixing title * fixing delete index pattern function --- .../api_integration/apis/ml/modules/index.ts | 1 + .../apis/ml/modules/jobs_exist.ts | 119 ++++++++++++++++++ x-pack/test/functional/services/ml/api.ts | 18 +++ .../functional/services/ml/test_resources.ts | 88 ++++++++----- 4 files changed, 197 insertions(+), 29 deletions(-) create mode 100644 x-pack/test/api_integration/apis/ml/modules/jobs_exist.ts diff --git a/x-pack/test/api_integration/apis/ml/modules/index.ts b/x-pack/test/api_integration/apis/ml/modules/index.ts index de8919976fd33..d28263b487701 100644 --- a/x-pack/test/api_integration/apis/ml/modules/index.ts +++ b/x-pack/test/api_integration/apis/ml/modules/index.ts @@ -38,5 +38,6 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./get_module')); loadTestFile(require.resolve('./recognize_module')); loadTestFile(require.resolve('./setup_module')); + loadTestFile(require.resolve('./jobs_exist')); }); } diff --git a/x-pack/test/api_integration/apis/ml/modules/jobs_exist.ts b/x-pack/test/api_integration/apis/ml/modules/jobs_exist.ts new file mode 100644 index 0000000000000..3e5cd0aa996d6 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/modules/jobs_exist.ts @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; + +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { USER } from '../../../../functional/services/ml/security_common'; +import { COMMON_REQUEST_HEADERS } from '../../../../functional/services/ml/common_api'; + +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const idSpace1 = 'space1'; + const sourceDataArchive = 'x-pack/test/functional/es_archives/ml/module_sample_logs'; + const moduleInfo = { + moduleId: 'sample_data_weblogs', + jobIds: ['low_request_rate', 'response_code_rates', 'url_scanning'], + dataView: { name: 'ft_module_sample_logs', timeField: '@timestamp' }, + }; + + async function runRequest(moduleId: string, expectedStatusCode: number, user: USER) { + const { body, status } = await supertest + .get(`/api/ml/modules/jobs_exist/${moduleId}`) + .auth(user, ml.securityCommon.getPasswordForUser(user)) + .set(COMMON_REQUEST_HEADERS); + + ml.api.assertResponseStatusCode(expectedStatusCode, status, body); + return body; + } + + describe('GET ml/modules/jobs_exist/{moduleId}', function () { + before(async () => { + await ml.testResources.setKibanaTimeZoneToUTC(); + await esArchiver.loadIfNeeded(sourceDataArchive); + // create data view in default space + await ml.testResources.createIndexPatternIfNeeded( + moduleInfo.dataView.name, + moduleInfo.dataView.timeField + ); + // create data view in idSpace1 + await ml.testResources.createIndexPatternIfNeeded( + moduleInfo.dataView.name, + moduleInfo.dataView.timeField, + idSpace1 + ); + }); + + afterEach(async () => { + await ml.api.cleanMlIndices(); + }); + + after(async () => { + // delete all data views in all spaces + await ml.testResources.deleteIndexPatternByTitle(moduleInfo.dataView.name); + await ml.testResources.deleteIndexPatternByTitle(moduleInfo.dataView.name, idSpace1); + }); + + it('should find jobs installed by module without prefix', async () => { + const prefix = ''; + await ml.api.setupModule(moduleInfo.moduleId, { + prefix, + indexPatternName: moduleInfo.dataView.name, + startDatafeed: false, + estimateModelMemory: false, + }); + const { jobsExist, jobs } = await runRequest(moduleInfo.moduleId, 200, USER.ML_POWERUSER); + + const expectedJobIds = moduleInfo.jobIds.map((j) => ({ id: `${prefix}${j}` })); + expect(jobsExist).to.eql(true, 'Expected jobsExist to be true'); + expect(jobs).to.eql(expectedJobIds, `Expected jobs to be ${expectedJobIds}`); + }); + + it('should find jobs installed by module with prefix', async () => { + const prefix = 'pf1_'; + await ml.api.setupModule(moduleInfo.moduleId, { + prefix, + indexPatternName: moduleInfo.dataView.name, + startDatafeed: false, + estimateModelMemory: false, + }); + const { jobsExist, jobs } = await runRequest(moduleInfo.moduleId, 200, USER.ML_POWERUSER); + + const expectedJobIds = moduleInfo.jobIds.map((j) => ({ id: `${prefix}${j}` })); + expect(jobsExist).to.eql(true, 'Expected jobsExist to be true'); + expect(jobs).to.eql(expectedJobIds, `Expected jobs to be ${expectedJobIds}`); + }); + + it('should not find jobs installed into a different space', async () => { + const prefix = 'pf1_'; + await ml.api.setupModule( + moduleInfo.moduleId, + { + prefix, + indexPatternName: moduleInfo.dataView.name, + startDatafeed: false, + estimateModelMemory: false, + }, + idSpace1 + ); + const { jobsExist, jobs } = await runRequest(moduleInfo.moduleId, 200, USER.ML_POWERUSER); + + expect(jobsExist).to.eql(false, 'Expected jobsExist to be false'); + expect(jobs).to.eql(undefined, `Expected jobs to be undefined`); + }); + + it("should not find jobs for module which hasn't been installed", async () => { + const { jobsExist, jobs } = await runRequest('apache_ecs', 200, USER.ML_POWERUSER); + + expect(jobsExist).to.eql(false, 'Expected jobsExist to be false'); + expect(jobs).to.eql(undefined, `Expected jobs to be undefined`); + }); + }); +}; diff --git a/x-pack/test/functional/services/ml/api.ts b/x-pack/test/functional/services/ml/api.ts index 62d46e644f173..d6802d2cb0f7d 100644 --- a/x-pack/test/functional/services/ml/api.ts +++ b/x-pack/test/functional/services/ml/api.ts @@ -8,6 +8,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import expect from '@kbn/expect'; import { ProvidedType } from '@kbn/test'; +import type { TypeOf } from '@kbn/config-schema'; import fs from 'fs'; import { Calendar } from '@kbn/ml-plugin/server/models/calendar'; import { Annotation } from '@kbn/ml-plugin/common/types/annotations'; @@ -17,6 +18,7 @@ import { DataFrameTaskStateType } from '@kbn/ml-plugin/common/types/data_frame_a import { DATA_FRAME_TASK_STATE } from '@kbn/ml-plugin/common/constants/data_frame_analytics'; import { Datafeed, Job } from '@kbn/ml-plugin/common/types/anomaly_detection_jobs'; import { JobType } from '@kbn/ml-plugin/common/types/saved_objects'; +import { setupModuleBodySchema } from '@kbn/ml-plugin/server/routes/schemas/modules'; import { ML_ANNOTATIONS_INDEX_ALIAS_READ, ML_ANNOTATIONS_INDEX_ALIAS_WRITE, @@ -1445,5 +1447,21 @@ export function MachineLearningAPIProvider({ getService }: FtrProviderContext) { log.debug('> Ingest pipeline deleted'); }, + + async setupModule( + moduleId: string, + body: TypeOf, + space?: string + ) { + log.debug(`Setting up module with ID: "${moduleId}"`); + const { body: module, status } = await kbnSupertest + .post(`${space ? `/s/${space}` : ''}/api/ml/modules/setup/${moduleId}`) + .set(COMMON_REQUEST_HEADERS) + .send(body); + this.assertResponseStatusCode(200, status, module); + + log.debug('Module set up'); + return module; + }, }; } diff --git a/x-pack/test/functional/services/ml/test_resources.ts b/x-pack/test/functional/services/ml/test_resources.ts index d1a7557caf2b1..56d01a4f1a867 100644 --- a/x-pack/test/functional/services/ml/test_resources.ts +++ b/x-pack/test/functional/services/ml/test_resources.ts @@ -54,15 +54,25 @@ export function MachineLearningTestResourcesProvider( await kibanaServer.uiSettings.unset('hideAnnouncements'); }, - async savedObjectExistsById(id: string, objectType: SavedObjectType): Promise { - const response = await supertest.get(`/api/saved_objects/${objectType}/${id}`); + async savedObjectExistsById( + id: string, + objectType: SavedObjectType, + space?: string + ): Promise { + const response = await supertest.get( + `${space ? `/s/${space}` : ''}/api/saved_objects/${objectType}/${id}` + ); return response.status === 200; }, - async savedObjectExistsByTitle(title: string, objectType: SavedObjectType): Promise { - const id = await this.getSavedObjectIdByTitle(title, objectType); + async savedObjectExistsByTitle( + title: string, + objectType: SavedObjectType, + space?: string + ): Promise { + const id = await this.getSavedObjectIdByTitle(title, objectType, space); if (id) { - return await this.savedObjectExistsById(id, objectType); + return await this.savedObjectExistsById(id, objectType, space); } else { return false; } @@ -70,11 +80,14 @@ export function MachineLearningTestResourcesProvider( async getSavedObjectIdByTitle( title: string, - objectType: SavedObjectType + objectType: SavedObjectType, + space?: string ): Promise { log.debug(`Searching for '${objectType}' with title '${title}'...`); const { body: findResponse, status } = await supertest - .get(`/api/saved_objects/_find?type=${objectType}&per_page=10000`) + .get( + `${space ? `/s/${space}` : ''}/api/saved_objects/_find?type=${objectType}&per_page=10000` + ) .set(COMMON_REQUEST_HEADERS); mlApi.assertResponseStatusCode(200, status, findResponse); @@ -104,8 +117,8 @@ export function MachineLearningTestResourcesProvider( return savedObjectIds; }, - async getIndexPatternId(title: string): Promise { - return this.getSavedObjectIdByTitle(title, SavedObjectType.INDEX_PATTERN); + async getIndexPatternId(title: string, space?: string): Promise { + return this.getSavedObjectIdByTitle(title, SavedObjectType.INDEX_PATTERN, space); }, async getSavedSearchId(title: string): Promise { @@ -120,7 +133,11 @@ export function MachineLearningTestResourcesProvider( return this.getSavedObjectIdByTitle(title, SavedObjectType.DASHBOARD); }, - async createIndexPattern(title: string, timeFieldName?: string): Promise { + async createIndexPattern( + title: string, + timeFieldName?: string, + space?: string + ): Promise { log.debug( `Creating index pattern with title '${title}'${ timeFieldName !== undefined ? ` and time field '${timeFieldName}'` : '' @@ -128,12 +145,12 @@ export function MachineLearningTestResourcesProvider( ); const { body: createResponse, status } = await supertest - .post(`/api/saved_objects/${SavedObjectType.INDEX_PATTERN}`) + .post(`${space ? `/s/${space}` : ''}/api/saved_objects/${SavedObjectType.INDEX_PATTERN}`) .set(COMMON_REQUEST_HEADERS) .send({ attributes: { title, timeFieldName } }); mlApi.assertResponseStatusCode(200, status, createResponse); - await this.assertIndexPatternExistByTitle(title); + await this.assertIndexPatternExistByTitle(title, space); log.debug(` > Created with id '${createResponse.id}'`); return createResponse.id; @@ -152,13 +169,17 @@ export function MachineLearningTestResourcesProvider( return createResponse; }, - async createIndexPatternIfNeeded(title: string, timeFieldName?: string): Promise { - const indexPatternId = await this.getIndexPatternId(title); + async createIndexPatternIfNeeded( + title: string, + timeFieldName?: string, + space?: string + ): Promise { + const indexPatternId = await this.getIndexPatternId(title, space); if (indexPatternId !== undefined) { log.debug(`Index pattern with title '${title}' already exists. Nothing to create.`); return indexPatternId; } else { - return await this.createIndexPattern(title, timeFieldName); + return await this.createIndexPattern(title, timeFieldName, space); } }, @@ -301,7 +322,12 @@ export function MachineLearningTestResourcesProvider( ); }, - async deleteSavedObjectById(id: string, objectType: SavedObjectType, force: boolean = false) { + async deleteSavedObjectById( + id: string, + objectType: SavedObjectType, + force: boolean = false, + space?: string + ) { log.debug(`Deleting ${objectType} with id '${id}'...`); if ((await this.savedObjectExistsById(id, objectType)) === false) { @@ -309,31 +335,31 @@ export function MachineLearningTestResourcesProvider( return; } else { const { body, status } = await supertest - .delete(`/api/saved_objects/${objectType}/${id}`) + .delete(`${space ? `/s/${space}` : ''}/api/saved_objects/${objectType}/${id}`) .set(COMMON_REQUEST_HEADERS) .query({ force }); mlApi.assertResponseStatusCode(200, status, body); - await this.assertSavedObjectNotExistsById(id, objectType); + await this.assertSavedObjectNotExistsById(id, objectType, space); log.debug(` > Deleted ${objectType} with id '${id}'`); } }, - async deleteIndexPatternByTitle(title: string) { + async deleteIndexPatternByTitle(title: string, space?: string) { log.debug(`Deleting index pattern with title '${title}'...`); - const indexPatternId = await this.getIndexPatternId(title); + const indexPatternId = await this.getIndexPatternId(title, space); if (indexPatternId === undefined) { log.debug(`Index pattern with title '${title}' does not exists. Nothing to delete.`); return; } else { - await this.deleteIndexPatternById(indexPatternId); + await this.deleteIndexPatternById(indexPatternId, space); } }, - async deleteIndexPatternById(id: string) { - await this.deleteSavedObjectById(id, SavedObjectType.INDEX_PATTERN); + async deleteIndexPatternById(id: string, space?: string) { + await this.deleteSavedObjectById(id, SavedObjectType.INDEX_PATTERN, false, space); }, async deleteSavedSearchByTitle(title: string) { @@ -396,12 +422,16 @@ export function MachineLearningTestResourcesProvider( } }, - async assertSavedObjectExistsByTitle(title: string, objectType: SavedObjectType) { + async assertSavedObjectExistsByTitle( + title: string, + objectType: SavedObjectType, + space?: string + ) { await retry.waitForWithTimeout( `${objectType} with title '${title}' to exist`, 5 * 1000, async () => { - if ((await this.savedObjectExistsByTitle(title, objectType)) === true) { + if ((await this.savedObjectExistsByTitle(title, objectType, space)) === true) { return true; } else { throw new Error(`${objectType} with title '${title}' should exist.`); @@ -438,12 +468,12 @@ export function MachineLearningTestResourcesProvider( ); }, - async assertSavedObjectNotExistsById(id: string, objectType: SavedObjectType) { + async assertSavedObjectNotExistsById(id: string, objectType: SavedObjectType, space?: string) { await retry.waitForWithTimeout( `${objectType} with id '${id}' not to exist`, 5 * 1000, async () => { - if ((await this.savedObjectExistsById(id, objectType)) === false) { + if ((await this.savedObjectExistsById(id, objectType, space)) === false) { return true; } else { throw new Error(`${objectType} with id '${id}' should not exist.`); @@ -452,8 +482,8 @@ export function MachineLearningTestResourcesProvider( ); }, - async assertIndexPatternExistByTitle(title: string) { - await this.assertSavedObjectExistsByTitle(title, SavedObjectType.INDEX_PATTERN); + async assertIndexPatternExistByTitle(title: string, space?: string) { + await this.assertSavedObjectExistsByTitle(title, SavedObjectType.INDEX_PATTERN, space); }, async assertIndexPatternExistById(id: string) { From 3b07dcdd4bf6ffd067209b7baf2d2f5776891b66 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 3 Oct 2022 12:54:40 +0200 Subject: [PATCH 12/51] [ML] Add a tooltip for the Avg inference time column (#142355) * add a tooltip for avg inference time * update message --- .../nodes_overview/allocated_models.tsx | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx index d1808c2c82135..198c01806e06b 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx @@ -5,8 +5,17 @@ * 2.0. */ import React, { FC } from 'react'; -import { EuiBadge, EuiIcon, EuiInMemoryTable, EuiToolTip } from '@elastic/eui'; +import { + EuiBadge, + EuiFlexGroup, + EuiFlexItem, + EuiIcon, + EuiInMemoryTable, + EuiToolTip, + useEuiTheme, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; import { FIELD_FORMAT_IDS } from '@kbn/field-formats-plugin/common'; import type { @@ -27,6 +36,7 @@ export const AllocatedModels: FC = ({ const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); const dateFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DATE); const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); + const euiTheme = useEuiTheme(); const columns: Array> = [ { @@ -97,11 +107,36 @@ export const AllocatedModels: FC = ({ 'data-test-subj': 'mlAllocatedModelsTableThroughput', }, { - name: i18n.translate( - 'xpack.ml.trainedModels.nodesList.modelsList.modelAvgInferenceTimeHeader', - { - defaultMessage: 'Avg inference time', - } + name: ( + + } + content={ + + } + > + + + + + + + + + + + ), width: '100px', truncateText: false, From fe2210b96da19379e115349f3ac7800ed173e081 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Mon, 3 Oct 2022 14:21:24 +0300 Subject: [PATCH 13/51] [Unified search] Fixes the problem with the button popover buttons on DSL filters (#142402) * [Unified search] Fixes the problem with the button popover buttons on DSL filters * Add comment * Apply comments --- .../public/filter_bar/filter_editor/filter_editor.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx index cdf4af1746e5c..1b336acd024ae 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx @@ -169,7 +169,13 @@ class FilterEditorUI extends Component { - + {/* Adding isolation here fixes this bug https://github.com/elastic/kibana/issues/142211 */} + Date: Mon, 3 Oct 2022 13:30:08 +0200 Subject: [PATCH 14/51] Fix time filter in alerts table (#142377) --- .../__snapshots__/build_es_query.test.ts.snap | 33 +++++++++++++++++++ .../build_es_query/build_es_query.test.ts | 7 ++++ .../utils/build_es_query/build_es_query.ts | 6 ++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/observability/public/utils/build_es_query/__snapshots__/build_es_query.test.ts.snap b/x-pack/plugins/observability/public/utils/build_es_query/__snapshots__/build_es_query.test.ts.snap index fcadce3f18b19..8e6559830cd90 100644 --- a/x-pack/plugins/observability/public/utils/build_es_query/__snapshots__/build_es_query.test.ts.snap +++ b/x-pack/plugins/observability/public/utils/build_es_query/__snapshots__/build_es_query.test.ts.snap @@ -166,3 +166,36 @@ Object { }, } `; + +exports[`buildEsQuery should generate correct es query for {"timeRange":{"from":"now-15min","to":"now"},"kuery":"kibana.alert.status: \\"recovered\\""} 1`] = ` +Object { + "bool": Object { + "filter": Array [ + Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "match_phrase": Object { + "kibana.alert.status": "recovered", + }, + }, + ], + }, + }, + Object { + "range": Object { + "@timestamp": Object { + "format": "strict_date_optional_time", + "gte": "now-15min", + "lte": "now", + }, + }, + }, + ], + "must": Array [], + "must_not": Array [], + "should": Array [], + }, +} +`; diff --git a/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.test.ts b/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.test.ts index 4bbacaa7bb1ad..39029a03bb267 100644 --- a/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.test.ts +++ b/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.test.ts @@ -34,6 +34,13 @@ describe('buildEsQuery', () => { timeRange: defaultTimeRange, kuery: 'kibana.alert.status: "recovered" and kibana.alert.duration.us >= 120', }, + { + timeRange: { + from: 'now-15min', + to: 'now', + }, + kuery: 'kibana.alert.status: "recovered"', + }, ]; test.each(testData)('should generate correct es query for %j', ({ kuery, timeRange }) => { diff --git a/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.ts b/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.ts index 28e2942c1f606..12711c54f9784 100644 --- a/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.ts +++ b/x-pack/plugins/observability/public/utils/build_es_query/build_es_query.ts @@ -7,15 +7,15 @@ import { buildEsQuery as kbnBuildEsQuery, TimeRange } from '@kbn/es-query'; import { TIMESTAMP } from '@kbn/rule-data-utils'; -import { getTime } from '@kbn/data-plugin/common'; +import { getRelativeTime } from '@kbn/data-plugin/common'; export function buildEsQuery(timeRange: TimeRange, kuery?: string) { const timeFilter = timeRange && - getTime(undefined, timeRange, { + getRelativeTime(undefined, timeRange, { fieldName: TIMESTAMP, }); - const filtersToUse = [...(timeFilter ? [timeFilter] : [])]; + const filtersToUse = timeFilter ? [timeFilter] : []; const queryToUse = kuery ? { query: kuery, language: 'kuery' } : []; return kbnBuildEsQuery(undefined, queryToUse, filtersToUse); From 08e2425e4f67b18a7e8f3869afa614a3719c2423 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 3 Oct 2022 13:15:20 +0100 Subject: [PATCH 15/51] skip flaky suite (#142397) --- x-pack/test/functional/apps/ml/short_tests/pages.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/ml/short_tests/pages.ts b/x-pack/test/functional/apps/ml/short_tests/pages.ts index e17454d0fa222..87fb9d03ca0c9 100644 --- a/x-pack/test/functional/apps/ml/short_tests/pages.ts +++ b/x-pack/test/functional/apps/ml/short_tests/pages.ts @@ -10,7 +10,8 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const ml = getService('ml'); - describe('page navigation', function () { + // FLAKY: https://github.com/elastic/kibana/issues/142397 + describe.skip('page navigation', function () { this.tags(['skipFirefox', 'ml']); before(async () => { await ml.api.cleanMlIndices(); From 4db7564209fd894f4cb94441b6fc76d10fdd47c4 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Mon, 3 Oct 2022 15:26:47 +0300 Subject: [PATCH 16/51] [Lens] Migrate away from EuiPageTemplate/EuiPageContent (#142367) * [Lens] Migrate away from EuiPageTemplate/EuiPageContent Closes: #139905 * fix FF issue Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../geo_field_workspace_panel.tsx | 6 +- .../workspace_panel/workspace_panel.tsx | 5 +- .../workspace_panel_wrapper.tsx | 154 +++++++++--------- 3 files changed, 82 insertions(+), 83 deletions(-) diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/geo_field_workspace_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/geo_field_workspace_panel.tsx index f7a0d8304296c..01370d7919c29 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/geo_field_workspace_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/geo_field_workspace_panel.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { EuiPageContentBody_Deprecated as EuiPageContentBody, EuiText } from '@elastic/eui'; +import { EuiText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import { UiActionsStart, VISUALIZE_GEO_FIELD_TRIGGER } from '@kbn/ui-actions-plugin/public'; @@ -45,7 +45,7 @@ export function GeoFieldWorkspacePanel(props: Props) { } return ( - +

@@ -72,6 +72,6 @@ export function GeoFieldWorkspacePanel(props: Props) {

- +
); } diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx index 0a6d0391c15a1..38f62b6e928b6 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel.tsx @@ -18,7 +18,6 @@ import { EuiText, EuiButtonEmpty, EuiLink, - EuiPageContentBody_Deprecated as EuiPageContentBody, EuiButton, EuiSpacer, EuiTextColor, @@ -618,9 +617,7 @@ export const InnerWorkspacePanel = React.memo(function InnerWorkspacePanel({ value={dropProps.value} order={dropProps.order} > - - {renderWorkspaceContents()} - +
{renderWorkspaceContents()}
); }; diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.tsx index cdc293dc78bc5..865dbb4e859e4 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_panel_wrapper.tsx @@ -9,7 +9,8 @@ import './workspace_panel_wrapper.scss'; import React, { useCallback } from 'react'; import { - EuiPageContent_Deprecated as EuiPageContent, + EuiPageSection, + EuiPageTemplate, EuiFlexGroup, EuiFlexItem, EuiButton, @@ -117,92 +118,93 @@ export function WorkspacePanelWrapper({ warningMessages.push(...requestWarnings); } return ( - <> + {!(isFullscreen && (autoApplyEnabled || warningMessages?.length)) && ( - - {!isFullscreen && ( - - - - - - - {activeVisualization && activeVisualization.renderToolbar && ( + + + {!isFullscreen && ( + + - + + {activeVisualization && activeVisualization.renderToolbar && ( + + + + )} + + + )} + + + + {warningMessages?.length ? ( + + {warningMessages} + + ) : null} + + {!autoApplyEnabled && ( + + dispatchLens(applyChanges())} + size="m" + data-test-subj="lnsApplyChanges__toolbar" + minWidth="auto" + > + + + )} - )} - - - - {warningMessages?.length ? ( - - {warningMessages} - - ) : null} - - {!autoApplyEnabled && ( - - dispatchLens(applyChanges())} - size="m" - data-test-subj="lnsApplyChanges__toolbar" - minWidth="auto" - > - - - - )} - - - + + )} - - {children} - - + + ); } From bea422856900b8167f128642169ce81a1c50968a Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 3 Oct 2022 13:28:43 +0100 Subject: [PATCH 17/51] [ML] Api tests for ml/results/anomaly_search (#142454) * [ML] Api tests for ml/results/anomaly_search * changes based on review --- .../apis/ml/results/get_anomaly_search.ts | 106 ++++++++++++++++++ .../api_integration/apis/ml/results/index.ts | 1 + 2 files changed, 107 insertions(+) create mode 100644 x-pack/test/api_integration/apis/ml/results/get_anomaly_search.ts diff --git a/x-pack/test/api_integration/apis/ml/results/get_anomaly_search.ts b/x-pack/test/api_integration/apis/ml/results/get_anomaly_search.ts new file mode 100644 index 0000000000000..ce4b5b600e579 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/results/get_anomaly_search.ts @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { USER } from '../../../../functional/services/ml/security_common'; +import { COMMON_REQUEST_HEADERS } from '../../../../functional/services/ml/common_api'; + +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const ml = getService('ml'); + const spacesService = getService('spaces'); + const supertest = getService('supertestWithoutAuth'); + + const adJobId = 'fq_single'; + const idSpace1 = 'space1'; + const idSpace2 = 'space2'; + + const jobQuery = { + size: 1, + body: { + query: { + bool: { + filter: [{ term: { job_id: adJobId } }], + }, + }, + }, + }; + + async function runRequest( + requestBody: { + jobIds: string[]; + query: any; + }, + space: string, + expectedStatusCode: number, + user: USER + ) { + const { body, status } = await supertest + .post(`/s/${space}/api/ml/results/anomaly_search`) + .auth(user, ml.securityCommon.getPasswordForUser(user)) + .set(COMMON_REQUEST_HEADERS) + .send(requestBody); + ml.api.assertResponseStatusCode(expectedStatusCode, status, body); + + return body; + } + + describe('POST results/anomaly_search', () => { + before(async () => { + await ml.testResources.setKibanaTimeZoneToUTC(); + await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/ml/farequote'); + + // create spaces + await spacesService.create({ id: idSpace1, name: 'space_one', disabledFeatures: [] }); + await spacesService.create({ id: idSpace2, name: 'space_two', disabledFeatures: [] }); + + await ml.api.createAndRunAnomalyDetectionLookbackJob( + ml.commonConfig.getADFqSingleMetricJobConfig(adJobId), + ml.commonConfig.getADFqDatafeedConfig(adJobId), + idSpace1 + ); + await ml.api.assertJobSpaces(adJobId, 'anomaly-detector', [idSpace1]); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + await ml.testResources.cleanMLSavedObjects(); + await spacesService.delete(idSpace1); + await spacesService.delete(idSpace2); + }); + + it('should see results in current space', async () => { + const body = await runRequest( + { + jobIds: [adJobId], + query: jobQuery, + }, + idSpace1, + 200, + USER.ML_POWERUSER + ); + expect(body.hits.hits[0]._source.job_id).to.eql( + adJobId, + `Expected job_id to equal ${adJobId}` + ); + }); + + it('should not see results in different space', async () => { + const body = await runRequest( + { + jobIds: [adJobId], + query: jobQuery, + }, + idSpace2, + 404, + USER.ML_POWERUSER + ); + expect(body.message).to.eql(`${adJobId} missing`); + }); + }); +}; diff --git a/x-pack/test/api_integration/apis/ml/results/index.ts b/x-pack/test/api_integration/apis/ml/results/index.ts index 1580055df6d0e..e9accf88eadab 100644 --- a/x-pack/test/api_integration/apis/ml/results/index.ts +++ b/x-pack/test/api_integration/apis/ml/results/index.ts @@ -16,5 +16,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./get_category_examples')); loadTestFile(require.resolve('./max_anomaly_score')); loadTestFile(require.resolve('./get_partition_fields_values')); + loadTestFile(require.resolve('./get_anomaly_search')); }); } From c1d0b9387fdd673ebcc9e6e139ce50d53d578a2f Mon Sep 17 00:00:00 2001 From: Thom Heymann <190132+thomheymann@users.noreply.github.com> Date: Mon, 3 Oct 2022 13:30:12 +0100 Subject: [PATCH 18/51] Add user profile ID to audit log events (#141092) * Add user profile ID to audit log events * Fix merge conflict * Fix integration tests * Fix integration tests * Fix type * Refactor * updated functional tests * updated functional tests * Added tests for enrichment logic Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- docs/user/security/audit-logging.asciidoc | 3 + .../common/model/authenticated_user.mock.ts | 1 + .../common/model/authenticated_user.ts | 5 ++ .../server/audit/audit_events.test.ts | 4 + .../security/server/audit/audit_events.ts | 22 +++-- .../server/audit/audit_service.test.ts | 6 +- .../security/server/audit/audit_service.ts | 1 + .../authentication_service.test.ts | 27 ++++++ .../authentication/authenticator.test.ts | 87 ++++++++++++++++++- .../server/authentication/authenticator.ts | 76 ++++++++++++---- .../apis/security/basic_login.js | 4 +- .../tests/kerberos/kerberos_login.ts | 38 ++++---- .../login_selector/basic_functionality.ts | 2 +- .../oidc/authorization_code_flow/oidc_auth.ts | 4 +- .../tests/oidc/implicit_flow/oidc_auth.ts | 2 +- .../tests/pki/pki_auth.ts | 79 +++++++++-------- .../tests/saml/saml_login.ts | 2 +- .../tests/user_profiles/get_current.ts | 6 ++ 18 files changed, 282 insertions(+), 87 deletions(-) diff --git a/docs/user/security/audit-logging.asciidoc b/docs/user/security/audit-logging.asciidoc index ce1e63c20d1c6..5f6fe746814e5 100644 --- a/docs/user/security/audit-logging.asciidoc +++ b/docs/user/security/audit-logging.asciidoc @@ -325,6 +325,9 @@ Possible values: | *Field* | *Description* +| `user.id` +| Unique identifier of the user across sessions (See {ref}/user-profile.html[user profiles]). + | `user.name` | Login name of the user. diff --git a/x-pack/plugins/security/common/model/authenticated_user.mock.ts b/x-pack/plugins/security/common/model/authenticated_user.mock.ts index 73641d2fa5983..84b300d5c982b 100644 --- a/x-pack/plugins/security/common/model/authenticated_user.mock.ts +++ b/x-pack/plugins/security/common/model/authenticated_user.mock.ts @@ -24,6 +24,7 @@ export function mockAuthenticatedUser(user: MockAuthenticatedUserProps = {}) { authentication_provider: { type: 'basic', name: 'basic1' }, authentication_type: 'realm', elastic_cloud_user: false, + profile_uid: 'uid', metadata: { _reserved: false }, ...user, }; diff --git a/x-pack/plugins/security/common/model/authenticated_user.ts b/x-pack/plugins/security/common/model/authenticated_user.ts index 7f7e965994e4b..fd78b250a5ccc 100644 --- a/x-pack/plugins/security/common/model/authenticated_user.ts +++ b/x-pack/plugins/security/common/model/authenticated_user.ts @@ -57,6 +57,11 @@ export interface AuthenticatedUser extends User { * Indicates whether user is authenticated via Elastic Cloud built-in SAML realm. */ elastic_cloud_user: boolean; + + /** + * User profile ID of this user. + */ + profile_uid?: string; } export function isUserAnonymous(user: Pick) { diff --git a/x-pack/plugins/security/server/audit/audit_events.test.ts b/x-pack/plugins/security/server/audit/audit_events.test.ts index 73523b4a3e009..1f9ab461e0b00 100644 --- a/x-pack/plugins/security/server/audit/audit_events.test.ts +++ b/x-pack/plugins/security/server/audit/audit_events.test.ts @@ -240,6 +240,7 @@ describe('#userLoginEvent', () => { authenticationProvider: 'basic1', authenticationType: 'basic', sessionId: '123', + userProfileId: 'uid', }) ).toMatchInlineSnapshot(` Object { @@ -261,6 +262,7 @@ describe('#userLoginEvent', () => { }, "message": "User [user] has logged in using basic provider [name=basic1]", "user": Object { + "id": "uid", "name": "user", "roles": Array [ "user-role", @@ -311,6 +313,7 @@ describe('#userLogoutEvent', () => { userLogoutEvent({ username: 'elastic', provider: { name: 'basic1', type: 'basic' }, + userProfileId: 'uid', }) ).toMatchInlineSnapshot(` Object { @@ -327,6 +330,7 @@ describe('#userLogoutEvent', () => { }, "message": "User [elastic] is logging out using basic provider [name=basic1]", "user": Object { + "id": "uid", "name": "elastic", }, } diff --git a/x-pack/plugins/security/server/audit/audit_events.ts b/x-pack/plugins/security/server/audit/audit_events.ts index dd767df83b692..deb4b356c9f95 100644 --- a/x-pack/plugins/security/server/audit/audit_events.ts +++ b/x-pack/plugins/security/server/audit/audit_events.ts @@ -98,6 +98,7 @@ export interface UserLoginParams { authenticationProvider?: string; authenticationType?: string; sessionId?: string; + userProfileId?: string; } export function userLoginEvent({ @@ -105,6 +106,7 @@ export function userLoginEvent({ authenticationProvider, authenticationType, sessionId, + userProfileId, }: UserLoginParams): AuditEvent { return { message: authenticationResult.user @@ -116,6 +118,7 @@ export function userLoginEvent({ outcome: authenticationResult.user ? 'success' : 'failure', }, user: authenticationResult.user && { + id: userProfileId, name: authenticationResult.user.username, roles: authenticationResult.user.roles as string[], }, @@ -137,9 +140,14 @@ export function userLoginEvent({ export interface UserLogoutParams { username?: string; provider: AuthenticationProvider; + userProfileId?: string; } -export function userLogoutEvent({ username, provider }: UserLogoutParams): AuditEvent { +export function userLogoutEvent({ + username, + provider, + userProfileId, +}: UserLogoutParams): AuditEvent { return { message: `User [${username}] is logging out using ${provider.type} provider [name=${provider.name}]`, event: { @@ -147,11 +155,13 @@ export function userLogoutEvent({ username, provider }: UserLogoutParams): Audit category: ['authentication'], outcome: 'unknown', }, - user: username - ? { - name: username, - } - : undefined, + user: + userProfileId || username + ? { + id: userProfileId, + name: username, + } + : undefined, kibana: { authentication_provider: provider.name, authentication_type: provider.type, diff --git a/x-pack/plugins/security/server/audit/audit_service.test.ts b/x-pack/plugins/security/server/audit/audit_service.test.ts index d750fa2fc36b9..dfd42c2260c5e 100644 --- a/x-pack/plugins/security/server/audit/audit_service.test.ts +++ b/x-pack/plugins/security/server/audit/audit_service.test.ts @@ -38,7 +38,9 @@ const createAuditConfig = (settings: Partial) => { const config = createAuditConfig({ enabled: true }); const { logging } = coreMock.createSetup(); const http = httpServiceMock.createSetupContract(); -const getCurrentUser = jest.fn().mockReturnValue({ username: 'jdoe', roles: ['admin'] }); +const getCurrentUser = jest + .fn() + .mockReturnValue({ username: 'jdoe', roles: ['admin'], profile_uid: 'uid' }); const getSpaceId = jest.fn().mockReturnValue('default'); const getSID = jest.fn().mockResolvedValue('SESSION_ID'); const recordAuditLoggingUsage = jest.fn(); @@ -192,7 +194,7 @@ describe('#asScoped', () => { event: { action: 'ACTION' }, kibana: { space_id: 'default', session_id: 'SESSION_ID' }, trace: { id: 'REQUEST_ID' }, - user: { name: 'jdoe', roles: ['admin'] }, + user: { id: 'uid', name: 'jdoe', roles: ['admin'] }, }); audit.stop(); }); diff --git a/x-pack/plugins/security/server/audit/audit_service.ts b/x-pack/plugins/security/server/audit/audit_service.ts index 89b288d07e9fe..ff8a09df40198 100644 --- a/x-pack/plugins/security/server/audit/audit_service.ts +++ b/x-pack/plugins/security/server/audit/audit_service.ts @@ -166,6 +166,7 @@ export class AuditService { ...event, user: (user && { + id: user.profile_uid, name: user.username, roles: user.roles as string[], }) || diff --git a/x-pack/plugins/security/server/authentication/authentication_service.test.ts b/x-pack/plugins/security/server/authentication/authentication_service.test.ts index 0f2657a419a0a..55357be756e7e 100644 --- a/x-pack/plugins/security/server/authentication/authentication_service.test.ts +++ b/x-pack/plugins/security/server/authentication/authentication_service.test.ts @@ -273,6 +273,33 @@ describe('AuthenticationService', () => { expect(authenticate).toHaveBeenCalledWith(mockRequest); }); + it('sets authenticated state correctly with user profile id', async () => { + const mockRequest = httpServerMock.createKibanaRequest(); + const mockResponse = httpServerMock.createLifecycleResponseFactory(); + const mockUser = mockAuthenticatedUser(); + const mockAuthHeaders = { authorization: 'Basic xxx' }; + const mockAuthResponseHeaders = { 'WWW-Authenticate': 'Negotiate' }; + + authenticate.mockResolvedValue( + AuthenticationResult.succeeded( + { ...mockUser, profile_uid: 'USER_PROFILE_ID' }, + { + authHeaders: mockAuthHeaders, + authResponseHeaders: mockAuthResponseHeaders, + } + ) + ); + + await authHandler(mockRequest, mockResponse, mockAuthToolkit); + + expect(mockAuthToolkit.authenticated).toHaveBeenCalledTimes(1); + expect(mockAuthToolkit.authenticated).toHaveBeenCalledWith({ + state: { ...mockUser, profile_uid: 'USER_PROFILE_ID' }, + requestHeaders: mockAuthHeaders, + responseHeaders: mockAuthResponseHeaders, + }); + }); + it('redirects user if redirection is requested by the authenticator preserving authentication response headers if any', async () => { const mockResponse = httpServerMock.createLifecycleResponseFactory(); authenticate.mockResolvedValue( diff --git a/x-pack/plugins/security/server/authentication/authenticator.test.ts b/x-pack/plugins/security/server/authentication/authenticator.test.ts index 1c62b5ae44dd9..1c160bb4dfa48 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.test.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.test.ts @@ -39,7 +39,7 @@ import type { UserProfileGrant } from '../user_profile'; import { userProfileServiceMock } from '../user_profile/user_profile_service.mock'; import { AuthenticationResult } from './authentication_result'; import type { AuthenticatorOptions } from './authenticator'; -import { Authenticator } from './authenticator'; +import { Authenticator, enrichWithUserProfileId } from './authenticator'; import { DeauthenticationResult } from './deauthentication_result'; import type { BasicAuthenticationProvider, SAMLAuthenticationProvider } from './providers'; @@ -379,6 +379,29 @@ describe('Authenticator', () => { expectAuditEvents({ action: 'user_login', outcome: 'success' }); }); + it('returns user enriched with user profile id.', async () => { + const request = httpServerMock.createKibanaRequest(); + const user = mockAuthenticatedUser({ profile_uid: undefined }); + mockOptions.session.create.mockResolvedValue( + sessionMock.createValue({ + userProfileId: 'PROFILE_ID', + }) + ); + + mockBasicAuthenticationProvider.login.mockResolvedValue( + AuthenticationResult.succeeded(user, { + state: {}, // to ensure a new session is created + }) + ); + + const result = await authenticator.login(request, { provider: { type: 'basic' }, value: {} }); + expect(result.user).toEqual( + expect.objectContaining({ + profile_uid: 'PROFILE_ID', + }) + ); + }); + describe('user_login audit events', () => { // Every other test case includes audit event assertions, but the user_login event is a bit special. // We have these separate, detailed test cases to ensure that the session ID is included for user_login success events. @@ -2560,3 +2583,65 @@ describe('Authenticator', () => { }); }); }); + +describe('enrichWithUserProfileId', () => { + it('should enrich succeeded authentication results with user profile id', () => { + const authenticationResult = AuthenticationResult.succeeded( + mockAuthenticatedUser({ profile_uid: undefined }) + ); + const sessionValue = sessionMock.createValue({ userProfileId: 'uid' }); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toEqual( + expect.objectContaining({ + user: expect.objectContaining({ + profile_uid: 'uid', + }), + }) + ); + }); + + it('should enrich redirected authentication results with user profile id', () => { + const authenticationResult = AuthenticationResult.redirectTo('/redirect/to', { + user: mockAuthenticatedUser({ profile_uid: undefined }), + }); + const sessionValue = sessionMock.createValue({ userProfileId: 'uid' }); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toEqual( + expect.objectContaining({ + user: expect.objectContaining({ + profile_uid: 'uid', + }), + }) + ); + }); + + it('should not change unhandled authentication results', () => { + const authenticationResult = AuthenticationResult.notHandled(); + const sessionValue = sessionMock.createValue(); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toBe(authenticationResult); + }); + + it('should not change failed authentication results', () => { + const authenticationResult = AuthenticationResult.failed(new Error('Authentication error')); + const sessionValue = sessionMock.createValue(); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toBe(authenticationResult); + }); + + it('should not change redirected authentication results without user', () => { + const authenticationResult = AuthenticationResult.redirectTo('/redirect/to'); + const sessionValue = sessionMock.createValue(); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toBe(authenticationResult); + }); + + it('should not change succeeded authentication result if session has no user profile id', () => { + const authenticationResult = AuthenticationResult.succeeded(mockAuthenticatedUser()); + const sessionValue = sessionMock.createValue({ userProfileId: undefined }); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toBe(authenticationResult); + }); + + it('should not change succeeded authentication result if user profile ids already match', () => { + const authenticationResult = AuthenticationResult.succeeded( + mockAuthenticatedUser({ profile_uid: 'uid' }) + ); + const sessionValue = sessionMock.createValue({ userProfileId: 'uid' }); + expect(enrichWithUserProfileId(authenticationResult, sessionValue)).toBe(authenticationResult); + }); +}); diff --git a/x-pack/plugins/security/server/authentication/authenticator.ts b/x-pack/plugins/security/server/authentication/authenticator.ts index 735224fd83720..0e925530d10a6 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.ts @@ -335,11 +335,14 @@ export class Authenticator { existingSessionValue, }); - return this.handlePreAccessRedirects( - request, - authenticationResult, - sessionUpdateResult, - attempt.redirectURL + return enrichWithUserProfileId( + this.handlePreAccessRedirects( + request, + authenticationResult, + sessionUpdateResult, + attempt.redirectURL + ), + sessionUpdateResult ? sessionUpdateResult.value : null ); } } @@ -351,7 +354,7 @@ export class Authenticator { * Performs request authentication using configured chain of authentication providers. * @param request Request instance. */ - async authenticate(request: KibanaRequest) { + async authenticate(request: KibanaRequest): Promise { assertRequest(request); const existingSessionValue = await this.getSessionValue(request); @@ -399,10 +402,12 @@ export class Authenticator { authenticationResult, existingSessionValue, }); - - return canRedirectRequest(request) - ? this.handlePreAccessRedirects(request, authenticationResult, sessionUpdateResult) - : authenticationResult; + return enrichWithUserProfileId( + canRedirectRequest(request) + ? this.handlePreAccessRedirects(request, authenticationResult, sessionUpdateResult) + : authenticationResult, + sessionUpdateResult ? sessionUpdateResult.value : null + ); } } @@ -427,11 +432,15 @@ export class Authenticator { const provider = this.providers.get(existingSessionValue.provider.name)!; const authenticationResult = await provider.authenticate(request, existingSessionValue.state); if (!authenticationResult.notHandled()) { - await this.updateSessionValue(request, { + const sessionUpdateResult = await this.updateSessionValue(request, { provider: existingSessionValue.provider, authenticationResult, existingSessionValue, }); + + if (sessionUpdateResult) { + return enrichWithUserProfileId(authenticationResult, sessionUpdateResult.value); + } } return authenticationResult; @@ -631,6 +640,7 @@ export class Authenticator { const auditLogger = this.options.audit.asScoped(request); auditLogger.log( userLoginEvent({ + userProfileId: existingSessionValue?.userProfileId, sessionId: existingSessionValue?.sid, authenticationResult, authenticationProvider: provider.name, @@ -737,7 +747,7 @@ export class Authenticator { } } - let newSessionValue; + let newSessionValue: Readonly | null; if (!existingSessionValue) { newSessionValue = await this.session.create(request, { username: authenticationResult.user?.username, @@ -756,6 +766,7 @@ export class Authenticator { const auditLogger = this.options.audit.asScoped(request); auditLogger.log( userLoginEvent({ + userProfileId, // We must explicitly specify the `userProfileId` here since we just created the session and it can't be inferred from the request context. sessionId: newSessionValue?.sid, // We must explicitly specify the `sessionId` here since we just created the session and it can't be inferred from the request context. authenticationResult, authenticationProvider: provider.name, @@ -796,12 +807,7 @@ export class Authenticator { }: InvalidateSessionValueParams) { if (isSessionAuthenticated(sessionValue) && !skipAuditEvent) { const auditLogger = this.options.audit.asScoped(request); - auditLogger.log( - userLogoutEvent({ - username: sessionValue.username, - provider: sessionValue.provider, - }) - ); + auditLogger.log(userLogoutEvent(sessionValue)); } await this.session.invalidate(request, { match: 'current' }); @@ -946,3 +952,37 @@ export class Authenticator { : `${this.options.basePath.serverBasePath}/security/logged_out?${searchParams.toString()}`; } } + +export function enrichWithUserProfileId( + authenticationResult: AuthenticationResult, + sessionValue: SessionValue | null +) { + if ( + !authenticationResult.user || + !sessionValue?.userProfileId || + authenticationResult.user.profile_uid === sessionValue.userProfileId + ) { + return authenticationResult; + } + + const enrichedUser: AuthenticatedUser = { + ...authenticationResult.user, + profile_uid: sessionValue.userProfileId, + }; + + if (authenticationResult.redirected()) { + return AuthenticationResult.redirectTo(authenticationResult.redirectURL!, { + user: enrichedUser, + userProfileGrant: authenticationResult.userProfileGrant, + authResponseHeaders: authenticationResult.authResponseHeaders, + state: authenticationResult.state, + }); + } + + return AuthenticationResult.succeeded(enrichedUser, { + userProfileGrant: authenticationResult.userProfileGrant, + authHeaders: authenticationResult.authHeaders, + authResponseHeaders: authenticationResult.authResponseHeaders, + state: authenticationResult.state, + }); +} diff --git a/x-pack/test/api_integration/apis/security/basic_login.js b/x-pack/test/api_integration/apis/security/basic_login.js index c81034b6fb824..6402945af74a6 100644 --- a/x-pack/test/api_integration/apis/security/basic_login.js +++ b/x-pack/test/api_integration/apis/security/basic_login.js @@ -135,7 +135,7 @@ export default function ({ getService }) { ) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', @@ -182,7 +182,7 @@ export default function ({ getService }) { .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', diff --git a/x-pack/test/security_api_integration/tests/kerberos/kerberos_login.ts b/x-pack/test/security_api_integration/tests/kerberos/kerberos_login.ts index f92f9d5a58b5b..10420d637afaf 100644 --- a/x-pack/test/security_api_integration/tests/kerberos/kerberos_login.ts +++ b/x-pack/test/security_api_integration/tests/kerberos/kerberos_login.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import jestExpect from 'expect'; import { parse as parseCookie, Cookie } from 'tough-cookie'; import { setTimeout as setTimeoutAsync } from 'timers/promises'; import { adminTestUser } from '@kbn/test'; @@ -142,26 +143,29 @@ export default function ({ getService }: FtrProviderContext) { ? ['kibana_admin', 'superuser_anonymous'] : ['kibana_admin']; - await supertest + const spnegoResponse = await supertest .get('/internal/security/me') .set('kbn-xsrf', 'xxx') .set('Cookie', sessionCookie.cookieString()) - .expect(200, { - username: 'tester@TEST.ELASTIC.CO', - roles: expectedUserRoles, - full_name: null, - email: null, - metadata: { - kerberos_user_principal_name: 'tester@TEST.ELASTIC.CO', - kerberos_realm: 'TEST.ELASTIC.CO', - }, - enabled: true, - authentication_realm: { name: 'kerb1', type: 'kerberos' }, - lookup_realm: { name: 'kerb1', type: 'kerberos' }, - authentication_provider: { type: 'kerberos', name: 'kerberos' }, - authentication_type: 'token', - elastic_cloud_user: false, - }); + .expect(200); + + jestExpect(spnegoResponse.body).toEqual({ + username: 'tester@TEST.ELASTIC.CO', + roles: expectedUserRoles, + full_name: null, + email: null, + metadata: { + kerberos_user_principal_name: 'tester@TEST.ELASTIC.CO', + kerberos_realm: 'TEST.ELASTIC.CO', + }, + enabled: true, + authentication_realm: { name: 'kerb1', type: 'kerberos' }, + lookup_realm: { name: 'kerb1', type: 'kerberos' }, + authentication_provider: { type: 'kerberos', name: 'kerberos' }, + authentication_type: 'token', + elastic_cloud_user: false, + profile_uid: jestExpect.any(String), + }); }); it('should re-initiate SPNEGO handshake if token is rejected with 401', async () => { diff --git a/x-pack/test/security_api_integration/tests/login_selector/basic_functionality.ts b/x-pack/test/security_api_integration/tests/login_selector/basic_functionality.ts index df7d309261a38..b9f5aa96080e9 100644 --- a/x-pack/test/security_api_integration/tests/login_selector/basic_functionality.ts +++ b/x-pack/test/security_api_integration/tests/login_selector/basic_functionality.ts @@ -53,7 +53,7 @@ export default function ({ getService }: FtrProviderContext) { .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', diff --git a/x-pack/test/security_api_integration/tests/oidc/authorization_code_flow/oidc_auth.ts b/x-pack/test/security_api_integration/tests/oidc/authorization_code_flow/oidc_auth.ts index 9ea2e9b635522..4222f4f6a64f7 100644 --- a/x-pack/test/security_api_integration/tests/oidc/authorization_code_flow/oidc_auth.ts +++ b/x-pack/test/security_api_integration/tests/oidc/authorization_code_flow/oidc_auth.ts @@ -217,7 +217,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', @@ -271,7 +271,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', diff --git a/x-pack/test/security_api_integration/tests/oidc/implicit_flow/oidc_auth.ts b/x-pack/test/security_api_integration/tests/oidc/implicit_flow/oidc_auth.ts index 9a0483d5cebaa..8e7fe36fd689b 100644 --- a/x-pack/test/security_api_integration/tests/oidc/implicit_flow/oidc_auth.ts +++ b/x-pack/test/security_api_integration/tests/oidc/implicit_flow/oidc_auth.ts @@ -141,7 +141,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', diff --git a/x-pack/test/security_api_integration/tests/pki/pki_auth.ts b/x-pack/test/security_api_integration/tests/pki/pki_auth.ts index 6b8178ac938df..c286adcc7879b 100644 --- a/x-pack/test/security_api_integration/tests/pki/pki_auth.ts +++ b/x-pack/test/security_api_integration/tests/pki/pki_auth.ts @@ -6,6 +6,7 @@ */ import expect from '@kbn/expect'; +import jestExpect from 'expect'; import { parse as parseCookie, Cookie } from 'tough-cookie'; import { setTimeout as setTimeoutAsync } from 'timers/promises'; import { readFileSync } from 'fs'; @@ -123,7 +124,7 @@ export default function ({ getService }: FtrProviderContext) { }); it('should properly set cookie and authenticate user', async () => { - const response = await supertest + let response = await supertest .get('/security/account') .ca(CA_CERT) .pfx(FIRST_CLIENT_CERT) @@ -136,29 +137,32 @@ export default function ({ getService }: FtrProviderContext) { checkCookieIsSet(sessionCookie); // Cookie should be accepted. - await supertest + response = await supertest .get('/internal/security/me') .set('kbn-xsrf', 'xxx') .ca(CA_CERT) .pfx(FIRST_CLIENT_CERT) .set('Cookie', sessionCookie.cookieString()) - .expect(200, { - username: 'first_client', - roles: ['kibana_admin'], - full_name: null, - email: null, - enabled: true, - metadata: { - pki_delegated_by_realm: 'reserved', - pki_delegated_by_user: 'kibana_system', - pki_dn: 'CN=first_client', - }, - authentication_realm: { name: 'pki1', type: 'pki' }, - lookup_realm: { name: 'pki1', type: 'pki' }, - authentication_provider: { name: 'pki', type: 'pki' }, - authentication_type: 'token', - elastic_cloud_user: false, - }); + .expect(200); + + jestExpect(response.body).toEqual({ + username: 'first_client', + roles: ['kibana_admin'], + full_name: null, + email: null, + enabled: true, + metadata: { + pki_delegated_by_realm: 'reserved', + pki_delegated_by_user: 'kibana_system', + pki_dn: 'CN=first_client', + }, + authentication_realm: { name: 'pki1', type: 'pki' }, + lookup_realm: { name: 'pki1', type: 'pki' }, + authentication_provider: { name: 'pki', type: 'pki' }, + authentication_type: 'token', + elastic_cloud_user: false, + profile_uid: jestExpect.any(String), + }); }); it('should update session if new certificate is provided', async () => { @@ -180,23 +184,26 @@ export default function ({ getService }: FtrProviderContext) { .pfx(SECOND_CLIENT_CERT) .set('kbn-xsrf', 'xxx') .set('Cookie', sessionCookie.cookieString()) - .expect(200, { - username: 'second_client', - roles: [], - full_name: null, - email: null, - enabled: true, - metadata: { - pki_delegated_by_realm: 'reserved', - pki_delegated_by_user: 'kibana_system', - pki_dn: 'CN=second_client', - }, - authentication_realm: { name: 'pki1', type: 'pki' }, - lookup_realm: { name: 'pki1', type: 'pki' }, - authentication_provider: { name: 'pki', type: 'pki' }, - authentication_type: 'realm', - elastic_cloud_user: false, - }); + .expect(200); + + jestExpect(response.body).toEqual({ + username: 'second_client', + roles: [], + full_name: null, + email: null, + enabled: true, + metadata: { + pki_delegated_by_realm: 'reserved', + pki_delegated_by_user: 'kibana_system', + pki_dn: 'CN=second_client', + }, + authentication_realm: { name: 'pki1', type: 'pki' }, + lookup_realm: { name: 'pki1', type: 'pki' }, + authentication_provider: { name: 'pki', type: 'pki' }, + authentication_type: 'realm', + elastic_cloud_user: false, + profile_uid: jestExpect.any(String), + }); checkCookieIsSet(parseCookie(response.headers['set-cookie'][0])!); }); diff --git a/x-pack/test/security_api_integration/tests/saml/saml_login.ts b/x-pack/test/security_api_integration/tests/saml/saml_login.ts index 474525eab4979..43d38a818c8ff 100644 --- a/x-pack/test/security_api_integration/tests/saml/saml_login.ts +++ b/x-pack/test/security_api_integration/tests/saml/saml_login.ts @@ -55,7 +55,7 @@ export default function ({ getService }: FtrProviderContext) { .set('Cookie', sessionCookie.cookieString()) .expect(200); - expect(apiResponse.body).to.only.have.keys([ + expect(apiResponse.body).to.have.keys([ 'username', 'full_name', 'email', diff --git a/x-pack/test/security_api_integration/tests/user_profiles/get_current.ts b/x-pack/test/security_api_integration/tests/user_profiles/get_current.ts index d7f23545aecd0..a56c5ac9004b8 100644 --- a/x-pack/test/security_api_integration/tests/user_profiles/get_current.ts +++ b/x-pack/test/security_api_integration/tests/user_profiles/get_current.ts @@ -6,6 +6,7 @@ */ import { parse as parseCookie } from 'tough-cookie'; +import expect from 'expect'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -64,6 +65,10 @@ export default function ({ getService }: FtrProviderContext) { .get('/internal/security/user_profile?dataPath=some') .set('Cookie', sessionCookie.cookieString()) .expect(200); + const { body: userWithProfileId } = await supertestWithoutAuth + .get('/internal/security/me') + .set('Cookie', sessionCookie.cookieString()) + .expect(200); // Profile UID is supposed to be stable. expectSnapshot(profileWithoutData).toMatchInline(` @@ -134,6 +139,7 @@ export default function ({ getService }: FtrProviderContext) { }, } `); + expect(userWithProfileId.profile_uid).toBe('u_K1WXIRQbRoHiuJylXp842IEhAO_OdqT7SDHrJSzUIjU_0'); }); }); } From 31a688049dc0fd724a1dd1b98c63e08cacce8b2b Mon Sep 17 00:00:00 2001 From: Shahzad Date: Mon, 3 Oct 2022 14:49:37 +0200 Subject: [PATCH 19/51] [Synthetics] Remove unused sync telemetry (#141349) --- .../telemetry/monitor_upgrade_sender.ts | 22 ------ .../synthetics_service/synthetics_service.ts | 71 ------------------- 2 files changed, 93 deletions(-) diff --git a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts index 5d0d29a4c8ac5..1cb4659359f5e 100644 --- a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts +++ b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts @@ -22,11 +22,8 @@ import { MONITOR_UPDATE_CHANNEL, MONITOR_CURRENT_CHANNEL, MONITOR_ERROR_EVENTS_CHANNEL, - MONITOR_SYNC_STATE_CHANNEL, - MONITOR_SYNC_EVENTS_CHANNEL, } from '../../legacy_uptime/lib/telemetry/constants'; import { MonitorErrorEvent } from '../../legacy_uptime/lib/telemetry/types'; -import { MonitorSyncEvent } from '../../legacy_uptime/lib/telemetry/types'; export interface UpgradeError { key?: string; @@ -50,23 +47,6 @@ export function sendTelemetryEvents( } } -export function sendSyncTelemetryEvents( - logger: Logger, - eventsTelemetry: TelemetryEventsSender | undefined, - updateEvent: MonitorSyncEvent -) { - if (eventsTelemetry === undefined) { - return; - } - - try { - eventsTelemetry.queueTelemetryEvents(MONITOR_SYNC_STATE_CHANNEL, [updateEvent]); - eventsTelemetry.queueTelemetryEvents(MONITOR_SYNC_EVENTS_CHANNEL, [updateEvent]); - } catch (exc) { - logger.error(`queuing telemetry events failed ${exc}`); - } -} - export function sendErrorTelemetryEvents( logger: Logger, eventsTelemetry: TelemetryEventsSender | undefined, @@ -180,8 +160,6 @@ export function formatTelemetryDeleteEvent( }); } -export function formatTelemetrySyncEvent() {} - function getScriptType( attributes: Partial, isInlineScript: boolean diff --git a/x-pack/plugins/synthetics/server/synthetics_service/synthetics_service.ts b/x-pack/plugins/synthetics/server/synthetics_service/synthetics_service.ts index d0211800dc6c0..c0f977758f6da 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/synthetics_service.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/synthetics_service.ts @@ -16,8 +16,6 @@ import { TaskInstance, } from '@kbn/task-manager-plugin/server'; import { sendErrorTelemetryEvents } from '../routes/telemetry/monitor_upgrade_sender'; -import { MonitorSyncEvent } from '../legacy_uptime/lib/telemetry/types'; -import { sendSyncTelemetryEvents } from '../routes/telemetry/monitor_upgrade_sender'; import { UptimeServerSetup } from '../legacy_uptime/lib/adapters'; import { installSyntheticsIndexTemplates } from '../routes/synthetics_service/install_index_templates'; import { SyntheticsServiceApiKey } from '../../common/runtime_types/synthetics_service_api_key'; @@ -317,11 +315,6 @@ export class SyntheticsService { return null; } - if (!configs && monitorConfigs.length > 0) { - const telemetry = this.getSyncTelemetry(monitorConfigs); - sendSyncTelemetryEvents(this.logger, this.server.telemetry, telemetry); - } - this.apiKey = await this.getApiKey(); if (!this.apiKey) { @@ -490,70 +483,6 @@ export class SyntheticsService { formatMonitorConfig(Object.keys(config) as ConfigKey[], config as Partial) ); } - - getSyncTelemetry(monitors: SyntheticsMonitorWithId[]): MonitorSyncEvent { - let totalRuns = 0; - let browserTestRuns = 0; - let httpTestRuns = 0; - let icmpTestRuns = 0; - let tcpTestRuns = 0; - - const locationRuns: Record = {}; - const locationMonitors: Record = {}; - - const testRunsInDay = (schedule: string) => { - return (24 * 60) / Number(schedule); - }; - - const monitorsByType: Record = { - browser: 0, - http: 0, - tcp: 0, - icmp: 0, - }; - - monitors.forEach((monitor) => { - if (monitor.schedule.number) { - totalRuns += testRunsInDay(monitor.schedule.number); - } - switch (monitor.type) { - case 'browser': - browserTestRuns += testRunsInDay(monitor.schedule.number); - break; - case 'http': - httpTestRuns += testRunsInDay(monitor.schedule.number); - break; - case 'icmp': - icmpTestRuns += testRunsInDay(monitor.schedule.number); - break; - case 'tcp': - tcpTestRuns += testRunsInDay(monitor.schedule.number); - break; - default: - break; - } - - monitorsByType[monitor.type] = (monitorsByType[monitor.type] ?? 0) + 1; - - monitor.locations.forEach(({ id }) => { - locationRuns[id + 'Tests'] = - (locationRuns[id + 'Tests'] ?? 0) + testRunsInDay(monitor.schedule.number); - locationMonitors[id + 'Monitors'] = (locationMonitors[id + 'Monitors'] ?? 0) + 1; - }); - }); - - return { - total: monitors.length, - totalTests: totalRuns, - browserTests24h: browserTestRuns, - httpTests24h: httpTestRuns, - icmpTests24h: icmpTestRuns, - tcpTests24h: tcpTestRuns, - ...locationRuns, - ...locationMonitors, - ...monitorsByType, - }; - } } class IndexTemplateInstallationError extends Error { From f4184540be6c606f74ff5ccf973b0e0da69e2c74 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Mon, 3 Oct 2022 15:00:40 +0200 Subject: [PATCH 20/51] [Observability] Fix flaky test (#142210) --- .../series_editor/columns/series_actions.tsx | 1 + .../apps/observability/exploratory_view.ts | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx index 129fdf1cf25e3..aab83cc511d9c 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx @@ -89,6 +89,7 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P aria-label={EDIT_SERIES_LABEL} size="s" onClick={onEditClick} + data-test-subj={`editSeries${seriesId}`} />
diff --git a/x-pack/test/observability_functional/apps/observability/exploratory_view.ts b/x-pack/test/observability_functional/apps/observability/exploratory_view.ts index 8f27f20ce30e6..b3adaa556dac3 100644 --- a/x-pack/test/observability_functional/apps/observability/exploratory_view.ts +++ b/x-pack/test/observability_functional/apps/observability/exploratory_view.ts @@ -19,8 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const rangeFrom = '2021-01-17T16%3A46%3A15.338Z'; const rangeTo = '2021-01-19T17%3A01%3A32.309Z'; - // Failing: See https://github.com/elastic/kibana/issues/106934 - describe.skip('ExploratoryView', () => { + describe('ExploratoryView', () => { before(async () => { await esArchiver.loadIfNeeded( Path.join('x-pack/test/apm_api_integration/common/fixtures/es_archiver', '8.0.0') @@ -33,11 +32,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await esArchiver.loadIfNeeded( Path.join('x-pack/test/apm_api_integration/common/fixtures/es_archiver', 'rum_test_data') ); - - await PageObjects.common.navigateToApp('ux', { - search: `?rangeFrom=${rangeFrom}&rangeTo=${rangeTo}`, - }); - await PageObjects.header.waitUntilLoadingHasFinished(); }); after(async () => { @@ -48,16 +42,28 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await esArchiver.unload( Path.join('x-pack/test/apm_api_integration/common/fixtures/es_archiver', 'rum_8.0.0') ); + await esArchiver.unload( + Path.join('x-pack/test/apm_api_integration/common/fixtures/es_archiver', 'rum_test_data') + ); + }); + + it('should go to ux app', async function () { + await PageObjects.common.navigateToApp('ux', { + search: `?rangeFrom=${rangeFrom}&rangeTo=${rangeTo}`, + }); + + await PageObjects.header.waitUntilLoadingHasFinished(); }); it('should able to open exploratory view from ux app', async () => { await testSubjects.exists('uxAnalyzeBtn'); await testSubjects.click('uxAnalyzeBtn'); - expect(await find.existsByCssSelector('.euiBasicTable')).to.eql(true); + + await PageObjects.header.waitUntilLoadingHasFinished(); }); it('renders lens visualization', async () => { - expect(await testSubjects.exists('lnsVisualizationContainer')).to.eql(true); + expect(await testSubjects.exists('xyVisChart')).to.eql(true); expect( await find.existsByCssSelector('div[data-title="Prefilled from exploratory view app"]') @@ -67,12 +73,16 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('can do a breakdown per series', async () => { + await testSubjects.click('editSeries0'); + await testSubjects.click('seriesBreakdown'); expect(await find.existsByCssSelector('[id="user_agent.name"]')).to.eql(true); await find.clickByCssSelector('[id="user_agent.name"]'); + await testSubjects.click('seriesChangesApplyButton'); + await PageObjects.header.waitUntilLoadingHasFinished(); expect(await find.existsByCssSelector('[title="Chrome Mobile iOS"]')).to.eql(true); From a8d54b3e3e9193fb7d2c12a872eaee7adbac651d Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Mon, 3 Oct 2022 16:19:06 +0300 Subject: [PATCH 21/51] [TSVB] [Annotations] Update label for Time field (#142452) * [TSVB] [Annotations] Update label for Time field Closes: #142226 * Update src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx Co-authored-by: Marco Liberati * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' Co-authored-by: Marco Liberati Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../components/aggs/field_select/field_select.tsx | 11 ++++++++--- .../public/application/components/annotation_row.tsx | 6 +++++- x-pack/plugins/translations/translations/fr-FR.json | 1 - x-pack/plugins/translations/translations/ja-JP.json | 1 - x-pack/plugins/translations/translations/zh-CN.json | 1 - 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx b/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx index 27f4d96381fda..df4d683d11ea9 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx +++ b/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx @@ -47,10 +47,15 @@ interface FieldSelectProps { fullWidth?: boolean; } -const getPreselectedFields = ( +const getPlaceholderValue = ( placeholder?: string, options?: Array> -) => placeholder && findInGroupedOptions(options, placeholder)?.label; +) => { + if (!placeholder) { + return; + } + return findInGroupedOptions(options, placeholder)?.label || placeholder; +}; export function FieldSelect({ label, @@ -138,7 +143,7 @@ export function FieldSelect({ onNewItemAdd={onNewItemAdd.bind(undefined, props.index)} onDeleteItem={onDeleteItem.bind(undefined, props.index)} onChange={onFieldSelectItemChange.bind(undefined, props.index)} - placeholder={getPreselectedFields(placeholder, groupedOptions)} + placeholder={getPlaceholderValue(placeholder, groupedOptions)} disableAdd={!allowMultiSelect || selectedIds?.length >= MAX_MULTI_FIELDS_ITEMS} disableDelete={!allowMultiSelect || selectedIds?.length <= 1} /> diff --git a/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx b/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx index 49ae7ea348f5a..9d44ba5f95745 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx +++ b/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx @@ -154,7 +154,7 @@ export const AnnotationRow = ({ label={ } restrict={RESTRICT_FIELDS} @@ -165,6 +165,10 @@ export const AnnotationRow = ({ }) } indexPattern={model.index_pattern} + placeholder={ + fetchedIndex?.indexPattern?.timeFieldName ?? + fetchedIndex?.defaultIndex?.timeFieldName + } fields={fields} />
diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 151159fa0980b..da2072ab3d605 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -5487,7 +5487,6 @@ "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "Ignorer les filtres de panneau ?", "visTypeTimeseries.annotationsEditor.queryStringLabel": "Chaîne de requête", "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "Modèle de ligne (requis)", - "visTypeTimeseries.annotationsEditor.timeFieldLabel": "Champ temporel (requis)", "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "Script de compartiment", "visTypeTimeseries.calculateLabel.countLabel": "Décompte", "visTypeTimeseries.calculateLabel.filterRatioLabel": "Rapport de filtre", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 5465a9a7be7f5..0238b9e9add28 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -5481,7 +5481,6 @@ "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "パネルフィルターを無視しますか?", "visTypeTimeseries.annotationsEditor.queryStringLabel": "クエリ文字列", "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "行テンプレート(必須)", - "visTypeTimeseries.annotationsEditor.timeFieldLabel": "時間フィールド(必須)", "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "バケットスクリプト", "visTypeTimeseries.calculateLabel.countLabel": "カウント", "visTypeTimeseries.calculateLabel.filterRatioLabel": "フィルターレート", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e2de967852a88..d555235d7ad76 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -5488,7 +5488,6 @@ "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "忽略面板筛选?", "visTypeTimeseries.annotationsEditor.queryStringLabel": "查询字符串", "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "行模板(必需)", - "visTypeTimeseries.annotationsEditor.timeFieldLabel": "时间字段(必需)", "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "存储桶脚本", "visTypeTimeseries.calculateLabel.countLabel": "计数", "visTypeTimeseries.calculateLabel.filterRatioLabel": "筛选比", From 6abf71a2efeef041d503fd5ff3cafa537a3583cc Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Mon, 3 Oct 2022 10:20:40 -0400 Subject: [PATCH 22/51] [Security Solution][Endpoint] Move artifact list page and host isolation exception skipped tests to jest integration (#142275) * Moved ArtifactListPage failing tests to integration_tests * Fix failing test in artifact list page * un-skip tests * move host isolation exceptions list test to jest integration tests * Un-skip tests from host isolation exceptions form test * move tests from host isolation exceptions form to integration_tests --- .../artifact_delete_modal.test.ts | 16 +++---- .../artifact_list_page.test.tsx | 44 +++++++++++-------- .../{ => integration_tests}/form.test.tsx | 28 +++++------- .../host_isolation_exceptions_list.test.tsx | 30 ++++++------- 4 files changed, 58 insertions(+), 60 deletions(-) rename x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/{ => integration_tests}/artifact_delete_modal.test.ts (88%) rename x-pack/plugins/security_solution/public/management/components/artifact_list_page/{ => integration_tests}/artifact_list_page.test.tsx (87%) rename x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/{ => integration_tests}/form.test.tsx (90%) rename x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/{ => integration_tests}/host_isolation_exceptions_list.test.tsx (74%) diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_delete_modal.test.ts b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/integration_tests/artifact_delete_modal.test.ts similarity index 88% rename from x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_delete_modal.test.ts rename to x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/integration_tests/artifact_delete_modal.test.ts index 57ea165f0b85f..94e2f5c78d912 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/artifact_delete_modal.test.ts +++ b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/integration_tests/artifact_delete_modal.test.ts @@ -5,13 +5,13 @@ * 2.0. */ -import type { AppContextTestRender } from '../../../../common/mock/endpoint'; -import type { trustedAppsAllHttpMocks } from '../../../mocks'; -import type { ArtifactListPageRenderingSetup } from '../mocks'; -import { getArtifactListPageRenderingSetup } from '../mocks'; +import type { AppContextTestRender } from '../../../../../common/mock/endpoint'; +import type { trustedAppsAllHttpMocks } from '../../../../mocks'; +import type { ArtifactListPageRenderingSetup } from '../../mocks'; +import { getArtifactListPageRenderingSetup } from '../../mocks'; import { act, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { getDeferred } from '../../../mocks/utils'; +import { getDeferred } from '../../../../mocks/utils'; describe('When displaying the Delete artifact modal in the Artifact List Page', () => { let renderResult: ReturnType; @@ -77,14 +77,12 @@ describe('When displaying the Delete artifact modal in the Artifact List Page', 10000 ); - // FLAKY: https://github.com/elastic/kibana/issues/139527 - it.skip('should show Cancel and Delete buttons enabled', async () => { + it('should show Cancel and Delete buttons enabled', async () => { expect(cancelButton).toBeEnabled(); expect(submitButton).toBeEnabled(); }); - // FLAKY: https://github.com/elastic/kibana/issues/139528 - it.skip('should close modal if Cancel/Close buttons are clicked', async () => { + it('should close modal if Cancel/Close buttons are clicked', async () => { userEvent.click(cancelButton); expect(renderResult.queryByTestId('testPage-deleteModal')).toBeNull(); diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.test.tsx b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/integration_tests/artifact_list_page.test.tsx similarity index 87% rename from x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.test.tsx rename to x-pack/plugins/security_solution/public/management/components/artifact_list_page/integration_tests/artifact_list_page.test.tsx index 6780335312251..0a8eb19513a81 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/integration_tests/artifact_list_page.test.tsx @@ -5,19 +5,18 @@ * 2.0. */ -import type { AppContextTestRender } from '../../../common/mock/endpoint'; -import type { trustedAppsAllHttpMocks } from '../../mocks'; -import type { ArtifactListPageProps } from './artifact_list_page'; +import type { AppContextTestRender } from '../../../../common/mock/endpoint'; +import type { trustedAppsAllHttpMocks } from '../../../mocks'; +import type { ArtifactListPageProps } from '../artifact_list_page'; import { act, fireEvent, waitFor, waitForElementToBeRemoved } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import type { ArtifactListPageRenderingSetup } from './mocks'; -import { getArtifactListPageRenderingSetup } from './mocks'; -import { getDeferred } from '../../mocks/utils'; +import type { ArtifactListPageRenderingSetup } from '../mocks'; +import { getArtifactListPageRenderingSetup } from '../mocks'; +import { getDeferred } from '../../../mocks/utils'; -jest.mock('../../../common/components/user_privileges'); +jest.mock('../../../../common/components/user_privileges'); -// FLAKY: https://github.com/elastic/kibana/issues/140620 -describe.skip('When using the ArtifactListPage component', () => { +describe('When using the ArtifactListPage component', () => { let render: ( props?: Partial ) => ReturnType; @@ -64,6 +63,7 @@ describe.skip('When using the ArtifactListPage component', () => { await act(async () => { await waitFor(() => { expect(renderResult.getByTestId('testPage-list')).toBeTruthy(); + expect(mockedApi.responseProvider.trustedAppsList).toHaveBeenCalled(); }); }); @@ -121,11 +121,12 @@ describe.skip('When using the ArtifactListPage component', () => { }); await act(async () => { await waitFor(() => { - expect(getByTestId('tablePagination-20-rows')); + expect(getByTestId('tablePagination-20-rows')).toBeEnabled(); }); }); - act(() => { - userEvent.click(getByTestId('tablePagination-20-rows')); + + userEvent.click(getByTestId('tablePagination-20-rows'), undefined, { + skipPointerEventsCheck: true, }); await waitFor(() => { @@ -139,11 +140,17 @@ describe.skip('When using the ArtifactListPage component', () => { act(() => { switch (action) { case 'delete': - userEvent.click(renderResult.getByTestId('testPage-card-cardDeleteAction')); + userEvent.click( + renderResult.getByTestId('testPage-card-cardDeleteAction'), + undefined, + { skipPointerEventsCheck: true } + ); break; case 'edit': - userEvent.click(renderResult.getByTestId('testPage-card-cardEditAction')); + userEvent.click(renderResult.getByTestId('testPage-card-cardEditAction'), undefined, { + skipPointerEventsCheck: true, + }); break; } }); @@ -156,8 +163,7 @@ describe.skip('When using the ArtifactListPage component', () => { expect(getByTestId('testPage-flyout')).toBeTruthy(); }); - // FLAKY: https://github.com/elastic/kibana/issues/129837 - it.skip('should display the Delete modal when delete action is clicked', async () => { + it('should display the Delete modal when delete action is clicked', async () => { const { getByTestId } = await renderWithListData(); await clickCardAction('delete'); @@ -228,8 +234,7 @@ describe.skip('When using the ArtifactListPage component', () => { }); }); - // FLAKY: https://github.com/elastic/kibana/issues/129837 - it.skip('should persist policy filter to the URL params', async () => { + it('should persist policy filter to the URL params', async () => { const policyId = mockedApi.responseProvider.endpointPackagePolicyList().items[0].id; const firstPolicyTestId = `policiesSelector-popover-items-${policyId}`; @@ -247,9 +252,10 @@ describe.skip('When using the ArtifactListPage component', () => { await waitFor(() => { expect(renderResult.getByTestId(firstPolicyTestId)).toBeTruthy(); }); - userEvent.click(renderResult.getByTestId(firstPolicyTestId)); }); + userEvent.click(renderResult.getByTestId(firstPolicyTestId)); + await waitFor(() => { expect(history.location.search).toMatch(new RegExp(`includedPolicies=${policyId}`)); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/form.test.tsx b/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/integration_tests/form.test.tsx similarity index 90% rename from x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/form.test.tsx rename to x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/integration_tests/form.test.tsx index 4c7ac15a504a7..ec661c9185f4d 100644 --- a/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/form.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/components/integration_tests/form.test.tsx @@ -11,26 +11,25 @@ import type { } from '@kbn/securitysolution-io-ts-list-types'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import type { AppContextTestRender } from '../../../../../common/mock/endpoint'; -import { createAppRootMockRenderer } from '../../../../../common/mock/endpoint'; -import { HostIsolationExceptionsList } from '../host_isolation_exceptions_list'; +import type { AppContextTestRender } from '../../../../../../common/mock/endpoint'; +import { createAppRootMockRenderer } from '../../../../../../common/mock/endpoint'; +import { HostIsolationExceptionsList } from '../../host_isolation_exceptions_list'; import { act, waitFor } from '@testing-library/react'; -import { HOST_ISOLATION_EXCEPTIONS_PATH } from '../../../../../../common/constants'; +import { HOST_ISOLATION_EXCEPTIONS_PATH } from '../../../../../../../common/constants'; import { exceptionsListAllHttpMocks, fleetGetEndpointPackagePolicyListHttpMock, -} from '../../../../mocks'; +} from '../../../../../mocks'; import { clickOnEffectedPolicy, isEffectedPolicySelected, -} from '../../../../components/effected_policy_select/test_utils'; -import { BY_POLICY_ARTIFACT_TAG_PREFIX } from '../../../../../../common/endpoint/service/artifacts'; +} from '../../../../../components/effected_policy_select/test_utils'; +import { BY_POLICY_ARTIFACT_TAG_PREFIX } from '../../../../../../../common/endpoint/service/artifacts'; import type { HttpFetchOptionsWithPath } from '@kbn/core/public'; -jest.mock('../../../../../common/components/user_privileges'); +jest.mock('../../../../../../common/components/user_privileges'); -// FLAKY: https://github.com/elastic/kibana/issues/140907 -describe.skip('When on the host isolation exceptions entry form', () => { +describe('When on the host isolation exceptions entry form', () => { let render: () => Promise>; let renderResult: ReturnType; let history: AppContextTestRender['history']; @@ -86,8 +85,7 @@ describe.skip('When on the host isolation exceptions entry form', () => { await render(); }); - // FLAKY: https://github.com/elastic/kibana/issues/140140 - it.skip('should render the form with empty inputs', () => { + it('should render the form with empty inputs', () => { expect(renderResult.getByTestId('hostIsolationExceptions-form-name-input')).toHaveValue(''); expect(renderResult.getByTestId('hostIsolationExceptions-form-ip-input')).toHaveValue(''); expect( @@ -146,16 +144,14 @@ describe.skip('When on the host isolation exceptions entry form', () => { ).toBe(true); }); - // FLAKY: https://github.com/elastic/kibana/issues/139776 - it.skip('should show policy as selected when user clicks on it', async () => { + it('should show policy as selected when user clicks on it', async () => { userEvent.click(renderResult.getByTestId('perPolicy')); await clickOnEffectedPolicy(renderResult); await expect(isEffectedPolicySelected(renderResult)).resolves.toBe(true); }); - // FLAKY: https://github.com/elastic/kibana/issues/139899 - it.skip('should retain the previous policy selection when switching from per-policy to global', async () => { + it('should retain the previous policy selection when switching from per-policy to global', async () => { // move to per-policy and select the first userEvent.click(renderResult.getByTestId('perPolicy')); await clickOnEffectedPolicy(renderResult); diff --git a/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/host_isolation_exceptions_list.test.tsx b/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/integration_tests/host_isolation_exceptions_list.test.tsx similarity index 74% rename from x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/host_isolation_exceptions_list.test.tsx rename to x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/integration_tests/host_isolation_exceptions_list.test.tsx index 2f0fc55979090..435178f2a0252 100644 --- a/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/host_isolation_exceptions_list.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/view/integration_tests/host_isolation_exceptions_list.test.tsx @@ -8,22 +8,21 @@ import { act, fireEvent, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { HOST_ISOLATION_EXCEPTIONS_PATH } from '../../../../../common/constants'; -import type { AppContextTestRender } from '../../../../common/mock/endpoint'; -import { createAppRootMockRenderer } from '../../../../common/mock/endpoint'; -import { HostIsolationExceptionsList } from './host_isolation_exceptions_list'; -import { exceptionsListAllHttpMocks } from '../../../mocks/exceptions_list_http_mocks'; -import { SEARCHABLE_FIELDS } from '../constants'; -import { parseQueryFilterToKQL } from '../../../common/utils'; -import { useUserPrivileges as _useUserPrivileges } from '../../../../common/components/user_privileges'; -import { getUserPrivilegesMockDefaultValue } from '../../../../common/components/user_privileges/__mocks__'; -import { getFirstCard } from '../../../components/artifact_list_page/mocks'; - -jest.mock('../../../../common/components/user_privileges'); +import { HOST_ISOLATION_EXCEPTIONS_PATH } from '../../../../../../common/constants'; +import type { AppContextTestRender } from '../../../../../common/mock/endpoint'; +import { createAppRootMockRenderer } from '../../../../../common/mock/endpoint'; +import { HostIsolationExceptionsList } from '../host_isolation_exceptions_list'; +import { exceptionsListAllHttpMocks } from '../../../../mocks/exceptions_list_http_mocks'; +import { SEARCHABLE_FIELDS } from '../../constants'; +import { parseQueryFilterToKQL } from '../../../../common/utils'; +import { useUserPrivileges as _useUserPrivileges } from '../../../../../common/components/user_privileges'; +import { getUserPrivilegesMockDefaultValue } from '../../../../../common/components/user_privileges/__mocks__'; +import { getFirstCard } from '../../../../components/artifact_list_page/mocks'; + +jest.mock('../../../../../common/components/user_privileges'); const useUserPrivilegesMock = _useUserPrivileges as jest.Mock; -// FLAKY: https://github.com/elastic/kibana/issues/140888 -describe.skip('When on the host isolation exceptions page', () => { +describe('When on the host isolation exceptions page', () => { let render: () => ReturnType; let renderResult: ReturnType; let history: AppContextTestRender['history']; @@ -78,8 +77,7 @@ describe.skip('When on the host isolation exceptions page', () => { ); }); - // FLAKY: https://github.com/elastic/kibana/issues/135587 - it.skip('should hide the Create and Edit actions when host isolation authz is not allowed', async () => { + it('should hide the Create and Edit actions when host isolation authz is not allowed', async () => { // Use case: license downgrade scenario, where user still has entries defined, but no longer // able to create or edit them (only Delete them) const existingPrivileges = useUserPrivilegesMock(); From 40b397d0e195453df84d92e8c70b629fb9774729 Mon Sep 17 00:00:00 2001 From: Sandra G Date: Mon, 3 Oct 2022 10:24:25 -0400 Subject: [PATCH 23/51] add rx and tx to lens table (#142137) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../metrics/hosts/components/hosts_table.tsx | 270 ++++++++++++++++-- 1 file changed, 245 insertions(+), 25 deletions(-) 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 57b3ab0e683ac..74f2468eb4c45 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 @@ -93,16 +93,24 @@ const getLensHostsTable = ( }, customLabel: true, }, - '0a9bd0fa-9966-489b-8c95-70997a7aad4cX0': { - label: 'Part of Memory Total (avg)', + '3eca2307-228e-4842-a023-57e15c8c364d': { + label: 'Disk latency (avg.)', dataType: 'number', - operationType: 'average', - sourceField: 'system.memory.total', + operationType: 'formula', isBucketed: false, scale: 'ratio', params: { - emptyAsNull: false, + formula: 'average(system.diskio.io.time) / 1000', + isFormulaBroken: false, + format: { + id: 'number', + params: { + decimals: 0, + suffix: 'ms', + }, + }, }, + references: ['3eca2307-228e-4842-a023-57e15c8c364dX1'], customLabel: true, }, '0a9bd0fa-9966-489b-8c95-70997a7aad4c': { @@ -124,18 +132,6 @@ const getLensHostsTable = ( references: ['0a9bd0fa-9966-489b-8c95-70997a7aad4cX0'], customLabel: true, }, - 'fe5a4d7d-6f48-45ab-974c-96bc864ac36fX0': { - label: 'Part of Memory Usage (avg)', - dataType: 'number', - operationType: 'average', - sourceField: 'system.memory.used.pct', - isBucketed: false, - scale: 'ratio', - params: { - emptyAsNull: false, - }, - customLabel: true, - }, 'fe5a4d7d-6f48-45ab-974c-96bc864ac36f': { label: 'Memory usage (avg.)', dataType: 'number', @@ -155,6 +151,30 @@ const getLensHostsTable = ( references: ['fe5a4d7d-6f48-45ab-974c-96bc864ac36fX0'], customLabel: true, }, + '0a9bd0fa-9966-489b-8c95-70997a7aad4cX0': { + label: 'Part of Memory Total (avg)', + dataType: 'number', + operationType: 'average', + sourceField: 'system.memory.total', + isBucketed: false, + scale: 'ratio', + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + 'fe5a4d7d-6f48-45ab-974c-96bc864ac36fX0': { + label: 'Part of Memory Usage (avg)', + dataType: 'number', + operationType: 'average', + sourceField: 'system.memory.used.pct', + isBucketed: false, + scale: 'ratio', + params: { + emptyAsNull: false, + }, + customLabel: true, + }, '3eca2307-228e-4842-a023-57e15c8c364dX0': { label: 'Part of Disk Latency (avg ms)', dataType: 'number', @@ -188,24 +208,208 @@ const getLensHostsTable = ( references: ['3eca2307-228e-4842-a023-57e15c8c364dX0'], customLabel: true, }, - '3eca2307-228e-4842-a023-57e15c8c364d': { - label: 'Disk latency (avg.)', + '02e9d54c-bbe0-42dc-839c-55080a29838dX0': { + label: 'Part of RX (avg)', + dataType: 'number', + operationType: 'average', + sourceField: 'host.network.ingress.bytes', + isBucketed: false, + scale: 'ratio', + filter: { + query: 'host.network.ingress.bytes: *', + language: 'kuery', + }, + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + '02e9d54c-bbe0-42dc-839c-55080a29838dX1': { + label: 'Part of RX (avg)', + dataType: 'number', + operationType: 'max', + sourceField: 'metricset.period', + isBucketed: false, + scale: 'ratio', + filter: { + query: 'host.network.ingress.bytes: *', + language: 'kuery', + }, + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + '02e9d54c-bbe0-42dc-839c-55080a29838dX2': { + label: 'Part of RX (avg)', + dataType: 'number', + operationType: 'math', + isBucketed: false, + scale: 'ratio', + params: { + tinymathAst: { + type: 'function', + name: 'divide', + args: [ + { + type: 'function', + name: 'multiply', + args: ['02e9d54c-bbe0-42dc-839c-55080a29838dX0', 8], + location: { + min: 1, + max: 40, + }, + text: 'average(host.network.ingress.bytes) * 8', + }, + { + type: 'function', + name: 'divide', + args: ['02e9d54c-bbe0-42dc-839c-55080a29838dX1', 1000], + location: { + min: 45, + max: 73, + }, + text: 'max(metricset.period) / 1000', + }, + ], + location: { + min: 0, + max: 75, + }, + text: '(average(host.network.ingress.bytes) * 8) / (max(metricset.period) / 1000)\n', + }, + }, + references: [ + '02e9d54c-bbe0-42dc-839c-55080a29838dX0', + '02e9d54c-bbe0-42dc-839c-55080a29838dX1', + ], + customLabel: true, + }, + '02e9d54c-bbe0-42dc-839c-55080a29838d': { + label: 'RX (avg.)', dataType: 'number', operationType: 'formula', isBucketed: false, scale: 'ratio', params: { - formula: 'average(system.diskio.io.time) / 1000', + formula: + '(average(host.network.ingress.bytes) * 8) / (max(metricset.period) / 1000)\n', isFormulaBroken: false, format: { - id: 'number', + id: 'bits', params: { decimals: 0, - suffix: 'ms', + suffix: '/s', }, }, }, - references: ['3eca2307-228e-4842-a023-57e15c8c364dX1'], + references: ['02e9d54c-bbe0-42dc-839c-55080a29838dX2'], + filter: { + query: 'host.network.ingress.bytes: *', + language: 'kuery', + }, + customLabel: true, + }, + '7802ef93-622c-44df-94fa-03eec01bb7b6X0': { + label: 'Part of TX', + dataType: 'number', + operationType: 'average', + sourceField: 'host.network.egress.bytes', + isBucketed: false, + scale: 'ratio', + filter: { + query: 'host.network.egress.bytes: *', + language: 'kuery', + }, + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + '7802ef93-622c-44df-94fa-03eec01bb7b6X1': { + label: 'Part of TX', + dataType: 'number', + operationType: 'max', + sourceField: 'metricset.period', + isBucketed: false, + scale: 'ratio', + filter: { + query: 'host.network.egress.bytes: *', + language: 'kuery', + }, + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + '7802ef93-622c-44df-94fa-03eec01bb7b6X2': { + label: 'Part of TX', + dataType: 'number', + operationType: 'math', + isBucketed: false, + scale: 'ratio', + params: { + tinymathAst: { + type: 'function', + name: 'divide', + args: [ + { + type: 'function', + name: 'multiply', + args: ['7802ef93-622c-44df-94fa-03eec01bb7b6X0', 8], + location: { + min: 1, + max: 39, + }, + text: 'average(host.network.egress.bytes) * 8', + }, + { + type: 'function', + name: 'divide', + args: ['7802ef93-622c-44df-94fa-03eec01bb7b6X1', 1000], + location: { + min: 44, + max: 72, + }, + text: 'max(metricset.period) / 1000', + }, + ], + location: { + min: 0, + max: 74, + }, + text: '(average(host.network.egress.bytes) * 8) / (max(metricset.period) / 1000)\n', + }, + }, + references: [ + '7802ef93-622c-44df-94fa-03eec01bb7b6X0', + '7802ef93-622c-44df-94fa-03eec01bb7b6X1', + ], + customLabel: true, + }, + '7802ef93-622c-44df-94fa-03eec01bb7b6': { + label: 'TX (avg.)', + dataType: 'number', + operationType: 'formula', + isBucketed: false, + scale: 'ratio', + params: { + formula: + '(average(host.network.egress.bytes) * 8) / (max(metricset.period) / 1000)\n', + isFormulaBroken: false, + format: { + id: 'bits', + params: { + decimals: 0, + suffix: '/s', + }, + }, + }, + references: ['7802ef93-622c-44df-94fa-03eec01bb7b6X2'], + filter: { + query: 'host.network.egress.bytes: *', + language: 'kuery', + }, customLabel: true, }, }, @@ -214,12 +418,20 @@ const getLensHostsTable = ( '155fc728-d010-498e-8126-0bc46cad2be2', '467de550-9186-4e18-8cfa-bce07087801a', '3eca2307-228e-4842-a023-57e15c8c364d', + '02e9d54c-bbe0-42dc-839c-55080a29838d', + '7802ef93-622c-44df-94fa-03eec01bb7b6', '0a9bd0fa-9966-489b-8c95-70997a7aad4c', 'fe5a4d7d-6f48-45ab-974c-96bc864ac36f', '0a9bd0fa-9966-489b-8c95-70997a7aad4cX0', 'fe5a4d7d-6f48-45ab-974c-96bc864ac36fX0', '3eca2307-228e-4842-a023-57e15c8c364dX0', '3eca2307-228e-4842-a023-57e15c8c364dX1', + '02e9d54c-bbe0-42dc-839c-55080a29838dX0', + '02e9d54c-bbe0-42dc-839c-55080a29838dX1', + '02e9d54c-bbe0-42dc-839c-55080a29838dX2', + '7802ef93-622c-44df-94fa-03eec01bb7b6X0', + '7802ef93-622c-44df-94fa-03eec01bb7b6X1', + '7802ef93-622c-44df-94fa-03eec01bb7b6X2', ], incompleteColumns: {}, indexPatternId: '305688db-9e02-4046-acc1-5d0d8dd73ef6', @@ -234,6 +446,7 @@ const getLensHostsTable = ( { columnId: '8d17458d-31af-41d1-a23c-5180fd960bee', width: 296.16666666666663, + isTransposed: false, }, { columnId: '155fc728-d010-498e-8126-0bc46cad2be2', @@ -245,6 +458,10 @@ const getLensHostsTable = ( isTransposed: false, width: 121.11666666666667, }, + { + columnId: '3eca2307-228e-4842-a023-57e15c8c364d', + isTransposed: false, + }, { columnId: '0a9bd0fa-9966-489b-8c95-70997a7aad4c', isTransposed: false, @@ -254,8 +471,12 @@ const getLensHostsTable = ( isTransposed: false, }, { - columnId: '3eca2307-228e-4842-a023-57e15c8c364d', isTransposed: false, + columnId: '02e9d54c-bbe0-42dc-839c-55080a29838d', + }, + { + isTransposed: false, + columnId: '7802ef93-622c-44df-94fa-03eec01bb7b6', }, ], paging: { @@ -288,7 +509,6 @@ export const HostsTable: React.FunctionComponent = ({ services: { lens }, } = useKibana(); const LensComponent = lens?.EmbeddableComponent; - return ( Date: Mon, 3 Oct 2022 15:30:04 +0100 Subject: [PATCH 24/51] Added user avatar tooltip (#142162) * Added user avatar tooltip * Updated js docs --- .../public/panel_with_code_block.tsx | 1 - .../user_profile_examples/public/plugin.tsx | 23 +++-- .../public/tooltip_demo.tsx | 62 +++++++++++++ packages/kbn-user-profile-components/index.ts | 3 + .../src/user_avatar_tip.test.tsx | 73 +++++++++++++++ .../src/user_avatar_tip.tsx | 29 ++++++ .../src/user_profiles_selectable.tsx | 2 +- .../src/user_tooltip.test.tsx | 91 +++++++++++++++++++ .../src/user_tooltip.tsx | 60 ++++++++++++ 9 files changed, 334 insertions(+), 10 deletions(-) create mode 100644 examples/user_profile_examples/public/tooltip_demo.tsx create mode 100644 packages/kbn-user-profile-components/src/user_avatar_tip.test.tsx create mode 100644 packages/kbn-user-profile-components/src/user_avatar_tip.tsx create mode 100644 packages/kbn-user-profile-components/src/user_tooltip.test.tsx create mode 100644 packages/kbn-user-profile-components/src/user_tooltip.tsx diff --git a/examples/user_profile_examples/public/panel_with_code_block.tsx b/examples/user_profile_examples/public/panel_with_code_block.tsx index 3b86b343eda7d..17854fb3ad36d 100644 --- a/examples/user_profile_examples/public/panel_with_code_block.tsx +++ b/examples/user_profile_examples/public/panel_with_code_block.tsx @@ -31,6 +31,5 @@ export const PanelWithCodeBlock: React.FunctionComponent - ); diff --git a/examples/user_profile_examples/public/plugin.tsx b/examples/user_profile_examples/public/plugin.tsx index e821ebebcd7d9..1b6dd5db267c6 100755 --- a/examples/user_profile_examples/public/plugin.tsx +++ b/examples/user_profile_examples/public/plugin.tsx @@ -14,6 +14,7 @@ import { KibanaPageTemplate } from '@kbn/shared-ux-page-kibana-template'; import { AvatarDemo } from './avatar_demo'; import { PopoverDemo } from './popover_demo'; import { SelectableDemo } from './selectable_demo'; +import { ToolTipDemo } from './tooltip_demo'; interface SetupDeps { developerExamples: DeveloperExamplesSetup; @@ -38,14 +39,20 @@ export class UserProfilesPlugin implements Plugin - - - + + + + + + + + + + + + + + , element ); diff --git a/examples/user_profile_examples/public/tooltip_demo.tsx b/examples/user_profile_examples/public/tooltip_demo.tsx new file mode 100644 index 0000000000000..beed3401c0451 --- /dev/null +++ b/examples/user_profile_examples/public/tooltip_demo.tsx @@ -0,0 +1,62 @@ +/* + * 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, { FunctionComponent } from 'react'; +import { UserAvatarTip, UserToolTip } from '@kbn/user-profile-components'; +import type { UserProfile, UserProfileAvatarData } from '@kbn/user-profile-components'; +import { EuiCommentList, EuiComment } from '@elastic/eui'; +import { PanelWithCodeBlock } from './panel_with_code_block'; + +export const ToolTipDemo: FunctionComponent = () => { + const userProfile: UserProfile<{ avatar: UserProfileAvatarData }> = { + uid: 'u_9xDEQqUqoYCnFnPPLq5mIRHKL8gBTo_NiKgOnd5gGk0_0', + enabled: true, + user: { + username: 'wet_dingo', + email: 'wet_dingo@elastic.co', + full_name: 'Wet Dingo', + }, + data: { + avatar: { + color: '#09e8ca', + initials: 'WD', + imageUrl: 'https://source.unsplash.com/64x64/?dingo', + }, + }, + }; + + return ( + + + + } + username={ + + {userProfile.user.full_name} + + } + event="pushed incident X0Z235 on Jan 3, 2020" + /> + + + ); +}; + +const code = `import { UserToolTip, UserAvatarTip } from '@kbn/user-profile-components'; + + + + + +`; diff --git a/packages/kbn-user-profile-components/index.ts b/packages/kbn-user-profile-components/index.ts index 8489a9eb3b35a..5f8d1db6fcf62 100644 --- a/packages/kbn-user-profile-components/index.ts +++ b/packages/kbn-user-profile-components/index.ts @@ -7,9 +7,12 @@ */ export type { UserAvatarProps, UserProfileWithAvatar } from './src/user_avatar'; +export type { UserToolTipProps } from './src/user_tooltip'; export type { UserProfilesSelectableProps } from './src/user_profiles_selectable'; export type { UserProfilesPopoverProps } from './src/user_profiles_popover'; export { UserAvatar } from './src/user_avatar'; +export { UserAvatarTip } from './src/user_avatar_tip'; +export { UserToolTip } from './src/user_tooltip'; export { UserProfilesSelectable } from './src/user_profiles_selectable'; export { UserProfilesPopover } from './src/user_profiles_popover'; export { getUserDisplayName } from './src/user_profile'; diff --git a/packages/kbn-user-profile-components/src/user_avatar_tip.test.tsx b/packages/kbn-user-profile-components/src/user_avatar_tip.test.tsx new file mode 100644 index 0000000000000..108015c3bae60 --- /dev/null +++ b/packages/kbn-user-profile-components/src/user_avatar_tip.test.tsx @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { shallow } from 'enzyme'; +import React from 'react'; + +import { UserAvatarTip } from './user_avatar_tip'; + +describe('UserAvatarTip', () => { + it('should render `UserToolTip` correctly with `UserAvatar`', () => { + const wrapper = shallow( + + ); + expect(wrapper).toMatchInlineSnapshot(` + + + + `); + }); + + it('should not render `UserToolTip` when user is not set', () => { + const wrapper = shallow(); + expect(wrapper).toMatchInlineSnapshot(``); + }); +}); diff --git a/packages/kbn-user-profile-components/src/user_avatar_tip.tsx b/packages/kbn-user-profile-components/src/user_avatar_tip.tsx new file mode 100644 index 0000000000000..6bb3d342aa38f --- /dev/null +++ b/packages/kbn-user-profile-components/src/user_avatar_tip.tsx @@ -0,0 +1,29 @@ +/* + * 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 { FunctionComponent } from 'react'; +import React from 'react'; + +import type { UserAvatarProps } from './user_avatar'; +import { UserAvatar } from './user_avatar'; +import { UserToolTip } from './user_tooltip'; + +/** + * Renders a user avatar with tooltip + */ +export const UserAvatarTip: FunctionComponent = ({ user, avatar, ...rest }) => { + if (!user) { + return ; + } + + return ( + + + + ); +}; diff --git a/packages/kbn-user-profile-components/src/user_profiles_selectable.tsx b/packages/kbn-user-profile-components/src/user_profiles_selectable.tsx index 76b9b9ea6d556..904e5ac2896c1 100644 --- a/packages/kbn-user-profile-components/src/user_profiles_selectable.tsx +++ b/packages/kbn-user-profile-components/src/user_profiles_selectable.tsx @@ -301,7 +301,7 @@ export const UserProfilesSelectable =
- {option.user.email ? ( + {option.user.email && option.user.email !== option.label ? ( {searchValue ? ( diff --git a/packages/kbn-user-profile-components/src/user_tooltip.test.tsx b/packages/kbn-user-profile-components/src/user_tooltip.test.tsx new file mode 100644 index 0000000000000..ed18651b223cf --- /dev/null +++ b/packages/kbn-user-profile-components/src/user_tooltip.test.tsx @@ -0,0 +1,91 @@ +/* + * 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 { shallow } from 'enzyme'; +import React from 'react'; + +import { UserToolTip } from './user_tooltip'; + +describe('UserToolTip', () => { + it('should render `EuiToolTip` correctly with `UserAvatar`', () => { + const wrapper = shallow( + + + + ); + expect(wrapper).toMatchInlineSnapshot(` + + + + + + + + + Delighted Nightingale + + + + delighted_nightingale@elastic.co + + + +
+ } + delay="regular" + display="inlineBlock" + position="top" + > + + + `); + }); +}); diff --git a/packages/kbn-user-profile-components/src/user_tooltip.tsx b/packages/kbn-user-profile-components/src/user_tooltip.tsx new file mode 100644 index 0000000000000..c2678996aebb3 --- /dev/null +++ b/packages/kbn-user-profile-components/src/user_tooltip.tsx @@ -0,0 +1,60 @@ +/* + * 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 { EuiToolTipProps } from '@elastic/eui'; +import { EuiToolTip, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import type { FunctionComponent } from 'react'; +import React from 'react'; + +import type { UserProfileUserInfo, UserProfileAvatarData } from './user_profile'; +import { UserAvatar } from './user_avatar'; +import { getUserDisplayName } from './user_profile'; + +/** + * Props of {@link UserToolTip} component + */ +export interface UserToolTipProps extends Omit { + /** + * User to be rendered + */ + user: UserProfileUserInfo; + + /** + * Avatar data of user to be rendered + */ + avatar?: UserProfileAvatarData; +} + +/** + * Renders a tooltip with user information + */ +export const UserToolTip: FunctionComponent = ({ user, avatar, ...rest }) => { + const displayName = getUserDisplayName(user); + return ( + + + + + + + + {displayName} + + {user.email && user.email !== displayName ? ( + {user.email} + ) : undefined} + + + + } + {...rest} + /> + ); +}; From 4b37ede0cd7cf4a043dd0f6ceb8f02eff01e83e0 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 3 Oct 2022 10:41:14 -0400 Subject: [PATCH 25/51] [Fleet] Check enrollment api token only for created agent policy (#142469) --- .../services/agent_policy_create.test.ts | 29 +++++++++++++++++-- .../server/services/agent_policy_create.ts | 4 +-- .../services/api_keys/enrollment_api_key.ts | 18 ++++++++++++ x-pack/plugins/fleet/server/services/setup.ts | 25 ++++++---------- 4 files changed, 56 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/agent_policy_create.test.ts b/x-pack/plugins/fleet/server/services/agent_policy_create.test.ts index 1231e99f2865f..45d42ba373a7d 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy_create.test.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy_create.test.ts @@ -13,6 +13,7 @@ import { agentPolicyService, packagePolicyService } from '.'; import { createAgentPolicyWithPackages } from './agent_policy_create'; import { bulkInstallPackages } from './epm/packages'; import { incrementPackageName } from './package_policies'; +import { ensureDefaultEnrollmentAPIKeyForAgentPolicy } from './api_keys'; const mockedAgentPolicyService = agentPolicyService as jest.Mocked; const mockedPackagePolicyService = packagePolicyService as jest.Mocked; @@ -20,6 +21,11 @@ const mockIncrementPackageName = incrementPackageName as jest.MockedFunction< typeof incrementPackageName >; +const mockEnsureDefaultEnrollmentAPIKeyForAgentPolicy = + ensureDefaultEnrollmentAPIKeyForAgentPolicy as jest.MockedFunction< + typeof ensureDefaultEnrollmentAPIKeyForAgentPolicy + >; + jest.mock('./epm/packages', () => { return { bulkInstallPackages: jest.fn(), @@ -28,9 +34,9 @@ jest.mock('./epm/packages', () => { const mockedBulkInstallPackages = bulkInstallPackages as jest.Mocked; -jest.mock('./setup', () => { +jest.mock('./api_keys', () => { return { - ensureDefaultEnrollmentAPIKeysExists: jest.fn(), + ensureDefaultEnrollmentAPIKeyForAgentPolicy: jest.fn(), }; }); @@ -222,6 +228,25 @@ describe('createAgentPolicyWithPackages', () => { expect(response.id).toEqual('policy-1'); }); + it('should create an enrollment token', async () => { + const response = await createAgentPolicyWithPackages({ + esClient: esClientMock, + soClient: soClientMock, + newPolicy: { id: 'policy-1', name: 'Agent policy 1', namespace: 'default' }, + withSysMonitoring: false, + spaceId: 'default', + monitoringEnabled: [], + }); + + expect(response.id).toEqual('policy-1'); + + expect(mockEnsureDefaultEnrollmentAPIKeyForAgentPolicy).toBeCalledWith( + expect.anything(), + expect.anything(), + 'policy-1' + ); + }); + it('should create policy with fleet_server and id', async () => { const response = await createAgentPolicyWithPackages({ esClient: esClientMock, diff --git a/x-pack/plugins/fleet/server/services/agent_policy_create.ts b/x-pack/plugins/fleet/server/services/agent_policy_create.ts index 888dd3eb34df2..5f3d6d14822c9 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy_create.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy_create.ts @@ -20,7 +20,7 @@ import type { AgentPolicy, NewAgentPolicy } from '../types'; import { agentPolicyService, packagePolicyService } from '.'; import { incrementPackageName } from './package_policies'; import { bulkInstallPackages } from './epm/packages'; -import { ensureDefaultEnrollmentAPIKeysExists } from './setup'; +import { ensureDefaultEnrollmentAPIKeyForAgentPolicy } from './api_keys'; const FLEET_SERVER_POLICY_ID = 'fleet-server-policy'; @@ -143,7 +143,7 @@ export async function createAgentPolicyWithPackages({ }); } - await ensureDefaultEnrollmentAPIKeysExists(soClient, esClient); + await ensureDefaultEnrollmentAPIKeyForAgentPolicy(soClient, esClient, agentPolicy.id); await agentPolicyService.deployPolicy(soClient, agentPolicy.id); return agentPolicy; diff --git a/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts b/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts index 8823e769540b1..4ef3a009c5d94 100644 --- a/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts +++ b/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts @@ -270,6 +270,24 @@ export async function generateEnrollmentAPIKey( }; } +export async function ensureDefaultEnrollmentAPIKeyForAgentPolicy( + soClient: SavedObjectsClientContract, + esClient: ElasticsearchClient, + agentPolicyId: string +) { + const hasKey = await hasEnrollementAPIKeysForPolicy(esClient, agentPolicyId); + + if (hasKey) { + return; + } + + return generateEnrollmentAPIKey(soClient, esClient, { + name: `Default`, + agentPolicyId, + forceRecreate: true, // Always generate a new enrollment key when Fleet is being set up + }); +} + function getQueryForExistingKeyNameOnPolicy(agentPolicyId: string, providedKeyName: string) { const query = { bool: { diff --git a/x-pack/plugins/fleet/server/services/setup.ts b/x-pack/plugins/fleet/server/services/setup.ts index f536125e054a2..eb4a9313e169f 100644 --- a/x-pack/plugins/fleet/server/services/setup.ts +++ b/x-pack/plugins/fleet/server/services/setup.ts @@ -32,7 +32,7 @@ import { import { outputService } from './output'; import { downloadSourceService } from './download_source'; -import { generateEnrollmentAPIKey, hasEnrollementAPIKeysForPolicy } from './api_keys'; +import { ensureDefaultEnrollmentAPIKeyForAgentPolicy } from './api_keys'; import { getRegistryUrl, settingsService } from '.'; import { awaitIfPending } from './setup_utils'; import { ensureFleetFinalPipelineIsInstalled } from './epm/elasticsearch/ingest_pipeline/install'; @@ -205,7 +205,7 @@ export async function ensureFleetGlobalEsAssets( } } -export async function ensureDefaultEnrollmentAPIKeysExists( +async function ensureDefaultEnrollmentAPIKeysExists( soClient: SavedObjectsClientContract, esClient: ElasticsearchClient, options?: { forceRecreate?: boolean } @@ -223,20 +223,13 @@ export async function ensureDefaultEnrollmentAPIKeysExists( perPage: SO_SEARCH_LIMIT, }); - await Promise.all( - agentPolicies.map(async (agentPolicy) => { - const hasKey = await hasEnrollementAPIKeysForPolicy(esClient, agentPolicy.id); - - if (hasKey) { - return; - } - - return generateEnrollmentAPIKey(soClient, esClient, { - name: `Default`, - agentPolicyId: agentPolicy.id, - forceRecreate: true, // Always generate a new enrollment key when Fleet is being set up - }); - }) + await pMap( + agentPolicies, + (agentPolicy) => + ensureDefaultEnrollmentAPIKeyForAgentPolicy(soClient, esClient, agentPolicy.id), + { + concurrency: 20, + } ); } From 8f8343b7c27065a3af7b4d856827ed715d5c1980 Mon Sep 17 00:00:00 2001 From: Yngrid Coello Date: Mon, 3 Oct 2022 17:01:58 +0200 Subject: [PATCH 26/51] [APM] Migrate api tests to use apm api client (#142229) * Removed usage of legacySuperTestAsNoAccessUser * Removed usage of legacySupertestAsApmReadUser and legacySupertestAsApmAnnotationsWriteUser * Removed legacyprefixed services from config * Addressing PR comments * Addressing PR comments * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../test/apm_api_integration/common/config.ts | 12 - .../common/utils/expect_to_reject.ts | 15 ++ .../tests/services/annotations.spec.ts | 239 ++++++++++-------- .../settings/agent_keys/agent_keys.spec.ts | 22 +- .../anomaly_detection/no_access_user.spec.ts | 36 ++- 5 files changed, 175 insertions(+), 149 deletions(-) create mode 100644 x-pack/test/apm_api_integration/common/utils/expect_to_reject.ts diff --git a/x-pack/test/apm_api_integration/common/config.ts b/x-pack/test/apm_api_integration/common/config.ts index 431b445d3a1a0..8400cccd64d4f 100644 --- a/x-pack/test/apm_api_integration/common/config.ts +++ b/x-pack/test/apm_api_integration/common/config.ts @@ -126,22 +126,10 @@ export function createTestConfig(config: ApmFtrConfig) { }, ml: MachineLearningAPIProvider, // legacy clients - legacySupertestAsNoAccessUser: getLegacySupertestClient( - kibanaServer, - ApmUsername.noAccessUser - ), - legacySupertestAsApmReadUser: getLegacySupertestClient( - kibanaServer, - ApmUsername.viewerUser - ), legacySupertestAsApmWriteUser: getLegacySupertestClient( kibanaServer, ApmUsername.editorUser ), - legacySupertestAsApmAnnotationsWriteUser: getLegacySupertestClient( - kibanaServer, - ApmUsername.apmAnnotationsWriteUser - ), legacySupertestAsApmReadUserWithoutMlAccess: getLegacySupertestClient( kibanaServer, ApmUsername.apmReadUserWithoutMlAccess diff --git a/x-pack/test/apm_api_integration/common/utils/expect_to_reject.ts b/x-pack/test/apm_api_integration/common/utils/expect_to_reject.ts new file mode 100644 index 0000000000000..e40422f2723cd --- /dev/null +++ b/x-pack/test/apm_api_integration/common/utils/expect_to_reject.ts @@ -0,0 +1,15 @@ +/* + * 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 async function expectToReject(fn: () => Promise): Promise { + try { + await fn(); + } catch (e) { + return e; + } + throw new Error(`Expected fn to throw`); +} diff --git a/x-pack/test/apm_api_integration/tests/services/annotations.spec.ts b/x-pack/test/apm_api_integration/tests/services/annotations.spec.ts index deb1b675ee764..aea26243f779e 100644 --- a/x-pack/test/apm_api_integration/tests/services/annotations.spec.ts +++ b/x-pack/test/apm_api_integration/tests/services/annotations.spec.ts @@ -5,20 +5,33 @@ * 2.0. */ +import { + ENVIRONMENT_ALL, + ENVIRONMENT_NOT_DEFINED, +} from '@kbn/apm-plugin/common/environment_filter_values'; +import { + APIClientRequestParamsOf, + APIReturnType, +} from '@kbn/apm-plugin/public/services/rest/create_call_apm_api'; +import { RecursivePartial } from '@kbn/apm-plugin/typings/common'; import expect from '@kbn/expect'; -import { merge, cloneDeep, isPlainObject } from 'lodash'; import { JsonObject } from '@kbn/utility-types'; +import { cloneDeep, isPlainObject, merge } from 'lodash'; +import { ApmApiError } from '../../common/apm_api_supertest'; import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { expectToReject } from '../../common/utils/expect_to_reject'; const DEFAULT_INDEX_NAME = 'observability-annotations'; export default function annotationApiTests({ getService }: FtrProviderContext) { const registry = getService('registry'); - const supertestRead = getService('legacySupertestAsApmReadUser'); - const supertestWrite = getService('legacySupertestAsApmAnnotationsWriteUser'); + const apmApiClient = getService('apmApiClient'); const es = getService('es'); - function expectContainsObj(source: JsonObject, expected: JsonObject) { + function expectContainsObj( + source: APIReturnType<'POST /api/apm/services/{serviceName}/annotation'>, + expected: JsonObject + ) { expect(source).to.eql( merge(cloneDeep(source), expected, (a: any, b: any) => { if (isPlainObject(a) && isPlainObject(b)) { @@ -29,26 +42,46 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { ); } - function request({ method, url, data }: { method: string; url: string; data?: JsonObject }) { - switch (method.toLowerCase()) { - case 'get': - return supertestRead.get(url).set('kbn-xsrf', 'foo'); - - case 'post': - return supertestWrite.post(url).send(data).set('kbn-xsrf', 'foo'); + function createAnnotation( + body: APIClientRequestParamsOf<'POST /api/apm/services/{serviceName}/annotation'>['params']['body'] + ) { + return apmApiClient.annotationWriterUser({ + endpoint: 'POST /api/apm/services/{serviceName}/annotation', + params: { + path: { + serviceName: 'opbeans-java', + }, + body, + }, + }); + } - default: - throw new Error(`Unsupported method ${method}`); - } + function getAnnotation( + query: RecursivePartial< + APIClientRequestParamsOf<'GET /api/apm/services/{serviceName}/annotation/search'>['params']['query'] + > + ) { + return apmApiClient.readUser({ + endpoint: 'GET /api/apm/services/{serviceName}/annotation/search', + params: { + path: { + serviceName: 'opbeans-java', + }, + query: { + environment: ENVIRONMENT_ALL.value, + start: new Date().toISOString(), + end: new Date().toISOString(), + ...query, + }, + }, + }); } registry.when('Annotations with a basic license', { config: 'basic', archives: [] }, () => { describe('when creating an annotation', () => { it('fails with a 403 forbidden', async () => { - const response = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - data: { + const err = await expectToReject(() => + createAnnotation({ '@timestamp': new Date().toISOString(), message: 'New deployment', tags: ['foo'], @@ -56,11 +89,11 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { version: '1.1', environment: 'production', }, - }, - }); + }) + ); - expect(response.status).to.be(403); - expect(response.body.message).to.be( + expect(err.res.status).to.be(403); + expect(err.res.body.message).eql( 'Annotations require at least a gold license or a trial license.' ); }); @@ -79,52 +112,48 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { }); it('fails with a 400 bad request if data is missing', async () => { - const response = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - }); + const err = await expectToReject(() => + // @ts-expect-error + createAnnotation() + ); - expect(response.status).to.be(400); + expect(err.res.status).to.be(400); }); - it('fails with a 400 bad request if data is invalid', async () => { - const invalidTimestampResponse = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - data: { + it('fails with a 400 bad request if timestamp is invalid', async () => { + const invalidTimestampErr = await expectToReject(() => + // @ts-expect-error + createAnnotation({ '@timestamp': 'foo', message: 'foo', - }, - }); + }) + ); - expect(invalidTimestampResponse.status).to.be(400); + expect(invalidTimestampErr.res.status).to.be(400); + }); - const missingServiceVersionResponse = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - data: { + it('fails with a 400 bad request if data is invalid', async () => { + const err = await expectToReject(() => + // @ts-expect-error + createAnnotation({ '@timestamp': new Date().toISOString(), message: 'New deployment', - }, - }); + }) + ); - expect(missingServiceVersionResponse.status).to.be(400); + expect(err.res.status).to.be(400); }); it('completes with a 200 and the created annotation if data is complete and valid', async () => { const timestamp = new Date().toISOString(); - const response = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - data: { - '@timestamp': timestamp, - message: 'New deployment', - tags: ['foo'], - service: { - version: '1.1', - environment: 'production', - }, + const response = await createAnnotation({ + '@timestamp': timestamp, + message: 'New deployment', + tags: ['foo'], + service: { + version: '1.1', + environment: 'production', }, }); @@ -150,14 +179,10 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { it('prefills `message` and `tags`', async () => { const timestamp = new Date().toISOString(); - const response = await request({ - url: '/api/apm/services/opbeans-java/annotation', - method: 'POST', - data: { - '@timestamp': timestamp, - service: { - version: '1.1', - }, + const response = await createAnnotation({ + '@timestamp': timestamp, + service: { + version: '1.1', }, }); @@ -263,9 +288,10 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { end: new Date(2020, 4, 2, 20).toISOString(), }; - const response = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${range.start}&end=${range.end}&environment=ENVIRONMENT_ALL`, - method: 'GET', + const response = await getAnnotation({ + start: range.start, + end: range.end, + environment: ENVIRONMENT_ALL.value, }); expect(response.status).to.be(200); @@ -283,22 +309,19 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { expect( ( - await request({ - url: `/api/apm/services/${serviceName}/annotation`, - method: 'POST', - data: { - service: { - version: '1.3', - }, - '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), + await createAnnotation({ + service: { + version: '1.3', }, + '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), }) ).status ).to.be(200); - const response = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${range.start}&end=${range.end}&environment=ENVIRONMENT_ALL`, - method: 'GET', + const response = await getAnnotation({ + start: range.start, + end: range.end, + environment: ENVIRONMENT_ALL.value, }); expect(response.body.annotations.length).to.be(1); @@ -311,22 +334,19 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { expect( ( - await request({ - url: `/api/apm/services/${serviceName}/annotation`, - method: 'POST', - data: { - service: { - version: '1.3', - }, - '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), + await createAnnotation({ + service: { + version: '1.3', }, + '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), }) ).status ).to.be(200); - const responseFromEarlierRange = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${earlierRange.start}&end=${earlierRange.end}&environment=ENVIRONMENT_ALL`, - method: 'GET', + const responseFromEarlierRange = await getAnnotation({ + start: earlierRange.start, + end: earlierRange.end, + environment: ENVIRONMENT_ALL.value, }); expect(responseFromEarlierRange.body.annotations.length).to.be(2); @@ -337,31 +357,23 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { it('returns stored annotations for the given environment', async () => { expect( ( - await request({ - url: `/api/apm/services/${serviceName}/annotation`, - method: 'POST', - data: { - service: { - version: '1.3', - }, - '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), + await createAnnotation({ + service: { + version: '1.3', }, + '@timestamp': new Date(2020, 4, 2, 21, 30).toISOString(), }) ).status ).to.be(200); expect( ( - await request({ - url: `/api/apm/services/${serviceName}/annotation`, - method: 'POST', - data: { - service: { - version: '1.4', - environment: 'production', - }, - '@timestamp': new Date(2020, 4, 2, 21, 31).toISOString(), + await createAnnotation({ + service: { + version: '1.4', + environment: 'production', }, + '@timestamp': new Date(2020, 4, 2, 21, 31).toISOString(), }) ).status ).to.be(200); @@ -371,24 +383,27 @@ export default function annotationApiTests({ getService }: FtrProviderContext) { end: new Date(2020, 4, 2, 23).toISOString(), }; - const allEnvironmentsResponse = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${range.start}&end=${range.end}&environment=ENVIRONMENT_ALL`, - method: 'GET', + const allEnvironmentsResponse = await getAnnotation({ + start: range.start, + end: range.end, + environment: ENVIRONMENT_ALL.value, }); expect(allEnvironmentsResponse.body.annotations.length).to.be(2); - const productionEnvironmentResponse = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${range.start}&end=${range.end}&environment=production`, - method: 'GET', + const productionEnvironmentResponse = await getAnnotation({ + start: range.start, + end: range.end, + environment: 'production', }); expect(productionEnvironmentResponse.body.annotations.length).to.be(1); expect(productionEnvironmentResponse.body.annotations[0].text).to.be('1.4'); - const missingEnvironmentsResponse = await request({ - url: `/api/apm/services/${serviceName}/annotation/search?start=${range.start}&end=${range.end}&environment=ENVIRONMENT_NOT_DEFINED`, - method: 'GET', + const missingEnvironmentsResponse = await getAnnotation({ + start: range.start, + end: range.end, + environment: ENVIRONMENT_NOT_DEFINED.value, }); expect(missingEnvironmentsResponse.body.annotations.length).to.be(1); diff --git a/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts b/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts index 19459d2a4ec16..ef3c328fe0203 100644 --- a/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts +++ b/x-pack/test/apm_api_integration/tests/settings/agent_keys/agent_keys.spec.ts @@ -10,6 +10,7 @@ import { PrivilegeType } from '@kbn/apm-plugin/common/privilege_type'; import { ApmUsername } from '@kbn/apm-plugin/server/test_helpers/create_apm_users/authentication'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; import { ApmApiError, ApmApiSupertest } from '../../../common/apm_api_supertest'; +import { expectToReject } from '../../../common/utils/expect_to_reject'; export default function ApiTest({ getService }: FtrProviderContext) { const registry = getService('registry'); @@ -50,20 +51,24 @@ export default function ApiTest({ getService }: FtrProviderContext) { () => { describe('When the user does not have the required cluster privileges', () => { it('should return an error when creating an agent key', async () => { - const error = await expectToReject(() => createAgentKey(apmApiClient.writeUser)); + const error = await expectToReject(() => + createAgentKey(apmApiClient.writeUser) + ); expect(error.res.status).to.be(500); expect(error.res.body.message).contain('is missing the following requested privilege'); }); it('should return an error when invalidating an agent key', async () => { - const error = await expectToReject(() => + const error = await expectToReject(() => invalidateAgentKey(apmApiClient.writeUser, agentKeyName) ); expect(error.res.status).to.be(500); }); it('should return an error when getting a list of agent keys', async () => { - const error = await expectToReject(() => getAgentKeys(apmApiClient.writeUser)); + const error = await expectToReject(() => + getAgentKeys(apmApiClient.writeUser) + ); expect(error.res.status).to.be(500); }); }); @@ -71,7 +76,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { describe('When the user does not have the required application privileges', () => { allApplicationPrivileges.map((privilege) => { it(`should return an error when creating an agent key with ${privilege} privilege`, async () => { - const error = await expectToReject(() => + const error = await expectToReject(() => createAgentKey(apmApiClient.manageOwnAgentKeysUser, [privilege]) ); expect(error.res.status).to.be(500); @@ -159,13 +164,4 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); } ); - - async function expectToReject(fn: () => Promise): Promise { - try { - await fn(); - } catch (e) { - return e; - } - throw new Error(`Expected fn to throw`); - } } diff --git a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/no_access_user.spec.ts b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/no_access_user.spec.ts index eefd5226ee7d0..06be441facd25 100644 --- a/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/no_access_user.spec.ts +++ b/x-pack/test/apm_api_integration/tests/settings/anomaly_detection/no_access_user.spec.ts @@ -6,38 +6,50 @@ */ import expect from '@kbn/expect'; +import { ApmApiError } from '../../../common/apm_api_supertest'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; +import { expectToReject } from '../../../common/utils/expect_to_reject'; export default function apiTest({ getService }: FtrProviderContext) { const registry = getService('registry'); - const noAccessUser = getService('legacySupertestAsNoAccessUser'); + const apmApiClient = getService('apmApiClient'); function getJobs() { - return noAccessUser.get(`/internal/apm/settings/anomaly-detection/jobs`).set('kbn-xsrf', 'foo'); + return apmApiClient.noAccessUser({ + endpoint: 'GET /internal/apm/settings/anomaly-detection/jobs', + }); } function createJobs(environments: string[]) { - return noAccessUser - .post(`/internal/apm/settings/anomaly-detection/jobs`) - .send({ environments }) - .set('kbn-xsrf', 'foo'); + return apmApiClient.noAccessUser({ + endpoint: 'POST /internal/apm/settings/anomaly-detection/jobs', + params: { + body: { + environments, + }, + }, + }); } registry.when('ML jobs', { config: 'trial', archives: [] }, () => { describe('when user does not have read access to ML', () => { describe('when calling the endpoint for listing jobs', () => { it('returns an error because the user does not have access', async () => { - const { body } = await getJobs(); - expect(body.statusCode).to.be(403); - expect(body.error).to.be('Forbidden'); + const err = await expectToReject(() => getJobs()); + + expect(err.res.status).to.be(403); + expect(err.res.body.message).eql('Forbidden'); }); }); describe('when calling create endpoint', () => { it('returns an error because the user does not have access', async () => { - const { body } = await createJobs(['production', 'staging']); - expect(body.statusCode).to.be(403); - expect(body.error).to.be('Forbidden'); + const err = await expectToReject(() => + createJobs(['production', 'staging']) + ); + + expect(err.res.status).to.be(403); + expect(err.res.body.message).eql('Forbidden'); }); }); }); From 51e01c77435cacfc277988557683aa19508b2f09 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Mon, 3 Oct 2022 17:40:50 +0200 Subject: [PATCH 27/51] Mimic native link behaviour for SPA links (#142304) **Fixes:** [#99077](https://github.com/elastic/kibana/issues/99077) ## Summary It allows to open a rule in a new tab by clicking on a rule link in the Manage Rules table with a pressed modifier key. Basically it checks for the meta key, shift and ctrl which allows to open a link in a new tab in a cross platform way. https://user-images.githubusercontent.com/3775283/193340495-68c9a8f1-7e44-4cf2-84c6-5f214c188cac.mov ### Checklist - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [x] 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)) - [x] 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)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../public/common/components/links/index.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/x-pack/plugins/security_solution/public/common/components/links/index.tsx b/x-pack/plugins/security_solution/public/common/components/links/index.tsx index 7e7c33a2bebdf..ea11bb96ebf97 100644 --- a/x-pack/plugins/security_solution/public/common/components/links/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/links/index.tsx @@ -48,6 +48,9 @@ export const DEFAULT_NUMBER_OF_LINK = 5; /** The default max-height of the Reputation Links popover used to show "+n More" items (e.g. `+9 More`) */ export const DEFAULT_MORE_MAX_HEIGHT = '200px'; +const isModified = (event: MouseEvent) => + event.metaKey || event.altKey || event.ctrlKey || event.shiftKey; + // Internal Links const UserDetailsLinkComponent: React.FC<{ children?: React.ReactNode; @@ -543,6 +546,10 @@ export const useGetSecuritySolutionLinkProps = (): GetSecuritySolutionProps => { return { href: url, onClick: (ev: MouseEvent) => { + if (isModified(ev)) { + return; + } + ev.preventDefault(); navigateTo({ url }); if (onClickProps) { From 68a07218ecae95e2486bb0161037a33e92051fce Mon Sep 17 00:00:00 2001 From: Saarika <55930906+saarikabhasi@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:48:08 -0400 Subject: [PATCH 28/51] [Enterprise Search] remove "beta" from UI (#142266) * remove "beta" from UI * fix- Linter is failing Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../components/engine_creation/select_engine_type.tsx | 4 ---- .../components/header_actions/create_engine_menu_item.tsx | 5 +---- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/select_engine_type.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/select_engine_type.tsx index 3f6b96f346068..1482d0fa88bdf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/select_engine_type.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/select_engine_type.tsx @@ -155,10 +155,6 @@ export const SelectEngineType: React.FC = () => { `, } )} - betaBadgeProps={{ - label: 'Beta', - tooltipContent: 'This module is not GA. Please help us by reporting any bugs.', - }} selectable={{ isSelected: engineType === 'elasticsearch', onClick: () => setEngineType('elasticsearch'), diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/create_engine_menu_item.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/create_engine_menu_item.tsx index a5667327a8208..be216d2548eb4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/create_engine_menu_item.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/components/header_actions/create_engine_menu_item.tsx @@ -7,7 +7,7 @@ import React from 'react'; -import { EuiBetaBadge, EuiContextMenuItem, EuiText, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { EuiContextMenuItem, EuiText, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -55,9 +55,6 @@ export const CreateEngineMenuItem: React.FC = ({ - - - ); }; From 2e5b9efa7164b028e04fef8506679a468337b871 Mon Sep 17 00:00:00 2001 From: nastasha-solomon <79124755+nastasha-solomon@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:50:15 -0400 Subject: [PATCH 29/51] [Security Solution][DOCS] Cases and rules support for SN connectors --- .../management/connectors/action-types/servicenow-itom.asciidoc | 2 +- docs/management/connectors/action-types/servicenow-sir.asciidoc | 2 +- docs/management/connectors/action-types/servicenow.asciidoc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/management/connectors/action-types/servicenow-itom.asciidoc b/docs/management/connectors/action-types/servicenow-itom.asciidoc index 07ede3ef0d3cb..609ac85c931b6 100644 --- a/docs/management/connectors/action-types/servicenow-itom.asciidoc +++ b/docs/management/connectors/action-types/servicenow-itom.asciidoc @@ -6,7 +6,7 @@ The {sn-itom} connector uses the https://docs.servicenow.com/bundle/rome-it-operations-management/page/product/event-management/task/send-events-via-web-service.html[event API] -to create {sn} events. +to create {sn} events. You can use the connector for rule actions. [float] [[servicenow-itom-connector-prerequisites]] diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 06639a077bf89..44c034cd35f61 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -6,7 +6,7 @@ The {sn-sir} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] -to create {sn} security incidents. +to create {sn} security incidents. You can use the connector for rule actions and cases. [float] [[servicenow-sir-connector-prerequisites]] diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index 613935a7ac4d0..658532d1226f9 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -6,7 +6,7 @@ The {sn-itsm} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] -to create {sn} incidents. +to create {sn} incidents. You can use the connector for rule actions and cases. [float] [[servicenow-itsm-connector-prerequisites]] From 0fa678bd782e0e892c4259e1c22e388447677ae3 Mon Sep 17 00:00:00 2001 From: Marius Dragomir Date: Mon, 3 Oct 2022 11:51:01 -0400 Subject: [PATCH 30/51] change time interval to 1 year (#140725) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../stack_functional_integration/apps/filebeat/filebeat.ts | 2 +- .../stack_functional_integration/apps/heartbeat/_heartbeat.ts | 3 ++- .../apps/metricbeat/_metricbeat.ts | 2 +- .../apps/packetbeat/_packetbeat.ts | 2 +- .../apps/winlogbeat/_winlogbeat.ts | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/x-pack/test/stack_functional_integration/apps/filebeat/filebeat.ts b/x-pack/test/stack_functional_integration/apps/filebeat/filebeat.ts index 4bcdc75d7fa50..c8ddb8aabec30 100644 --- a/x-pack/test/stack_functional_integration/apps/filebeat/filebeat.ts +++ b/x-pack/test/stack_functional_integration/apps/filebeat/filebeat.ts @@ -16,7 +16,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('filebeat- should have hit count GT 0', async function () { await PageObjects.common.navigateToApp('discover', { insertTimestamp: false }); await PageObjects.discover.selectIndexPattern('filebeat-*'); - await PageObjects.timePicker.setCommonlyUsedTime('Last_30 days'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_1 year'); await retry.try(async () => { const hitCount = parseInt(await PageObjects.discover.getHitCount(), 10); expect(hitCount).to.be.greaterThan(0); diff --git a/x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.ts b/x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.ts index 801e651d8b92e..9f402c019d0a7 100644 --- a/x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.ts +++ b/x-pack/test/stack_functional_integration/apps/heartbeat/_heartbeat.ts @@ -10,11 +10,12 @@ import { FtrProviderContext } from '../../../functional/ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); - const PageObjects = getPageObjects(['common', 'uptime']); + const PageObjects = getPageObjects(['common', 'uptime', 'timePicker']); describe('check heartbeat overview page', function () { it('Uptime app should show 1 UP monitor', async function () { await PageObjects.common.navigateToApp('uptime', { insertTimestamp: false }); + await PageObjects.timePicker.setCommonlyUsedTime('Last_1 year'); await retry.try(async function () { const upCount = parseInt((await PageObjects.uptime.getSnapshotCount()).up, 10); diff --git a/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.ts b/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.ts index 79dc213e5485a..f6a8aa7875302 100644 --- a/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.ts +++ b/x-pack/test/stack_functional_integration/apps/metricbeat/_metricbeat.ts @@ -26,7 +26,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { } await PageObjects.discover.selectIndexPattern('metricbeat-*'); - await PageObjects.timePicker.setCommonlyUsedTime('Today'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_1 year'); await retry.try(async function () { const hitCount = parseInt(await PageObjects.discover.getHitCount(), 10); expect(hitCount).to.be.greaterThan(0); diff --git a/x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.ts b/x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.ts index d0d7e326441a0..e4bf8288a2093 100644 --- a/x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.ts +++ b/x-pack/test/stack_functional_integration/apps/packetbeat/_packetbeat.ts @@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await appsMenu.clickLink('Discover'); } await PageObjects.discover.selectIndexPattern('packetbeat-*'); - await PageObjects.timePicker.setCommonlyUsedTime('Today'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_1 year'); await retry.try(async function () { const hitCount = parseInt(await PageObjects.discover.getHitCount(), 10); expect(hitCount).to.be.greaterThan(0); diff --git a/x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.ts b/x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.ts index 9ef8b85c0ec09..4f8107f937a77 100644 --- a/x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.ts +++ b/x-pack/test/stack_functional_integration/apps/winlogbeat/_winlogbeat.ts @@ -25,7 +25,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await appsMenu.clickLink('Discover'); } await PageObjects.discover.selectIndexPattern('winlogbeat-*'); - await PageObjects.timePicker.setCommonlyUsedTime('Today'); + await PageObjects.timePicker.setCommonlyUsedTime('Last_1 year'); await retry.try(async function () { const hitCount = parseInt(await PageObjects.discover.getHitCount(), 10); expect(hitCount).to.be.greaterThan(0); From 5d82869ca0464954fb901655b3d6db46e7822089 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 3 Oct 2022 11:51:49 -0400 Subject: [PATCH 31/51] [Synthetics] Add monitor stats to Synthetics overview (#140568) * Add monitor stats component to Synthetics overview. * Fix types. * Modify `disabled` count to account for all locations on a given monitor. * Refresh status counts whenever a monitor is upserted. * Add unit test for `getCounts`. * Fix typo in type name and query name. * Write query to fetch all stats per id:location. * Make frontend adhere to expected shape. * Add rudimentary error handling to stats component. * Translate error toast title. * Fix query pagination issue. * Fix broken unit test. * Clean up API response. Rename util to common. * Update redux store mock. * Update unit tests to handle new response shape and file rename. * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' * adjust status logic * account for project monitors * adjust disabled count * Fix types and page selection bug. * Fix broken unit tests. * Fix type. * Add expect error comments for type disparities in a test file. * Revert unwanted changes. Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Dominique Clarke --- .../common/constants/synthetics/rest_api.ts | 1 + .../runtime_types/monitor_management/index.ts | 1 + .../synthetics_overview_status.ts | 16 + .../overview/overview/overview_grid.tsx | 15 +- .../overview/overview/overview_status.tsx | 96 ++++++ .../monitors_page/overview/overview_page.tsx | 2 + .../apps/synthetics/state/overview/actions.ts | 8 +- .../apps/synthetics/state/overview/api.ts | 5 + .../apps/synthetics/state/overview/effects.ts | 22 +- .../apps/synthetics/state/overview/index.ts | 17 +- .../synthetics/state/overview/selectors.ts | 3 + .../apps/synthetics/state/root_effect.ts | 7 +- .../__mocks__/synthetics_store.mock.ts | 2 + .../lib/adapters/framework/adapter_types.ts | 6 +- .../telemetry/kibana_telemetry_adapter.ts | 6 +- .../legacy_uptime/lib/alerts/status_check.ts | 4 +- .../server/legacy_uptime/lib/lib.ts | 2 +- .../legacy_uptime/lib/requests/get_certs.ts | 4 +- .../lib/requests/get_index_pattern.ts | 4 +- .../lib/requests/get_monitor_details.ts | 4 +- .../lib/requests/get_monitor_status.ts | 4 +- .../lib/requests/get_snapshot_counts.ts | 2 +- .../lib/requests/search/query_context.ts | 6 +- .../lib/requests/test_helpers.ts | 6 +- .../server/legacy_uptime/routes/types.ts | 8 +- .../synthetics/server/routes/common.ts | 96 ++++++ .../plugins/synthetics/server/routes/index.ts | 2 + .../routes/monitor_cruds/get_monitor.ts | 87 +----- .../routes/status/current_status.test.ts | 279 ++++++++++++++++++ .../server/routes/status/current_status.ts | 199 +++++++++++++ 30 files changed, 796 insertions(+), 118 deletions(-) create mode 100644 x-pack/plugins/synthetics/common/runtime_types/monitor_management/synthetics_overview_status.ts create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_status.tsx create mode 100644 x-pack/plugins/synthetics/server/routes/common.ts create mode 100644 x-pack/plugins/synthetics/server/routes/status/current_status.test.ts create mode 100644 x-pack/plugins/synthetics/server/routes/status/current_status.ts diff --git a/x-pack/plugins/synthetics/common/constants/synthetics/rest_api.ts b/x-pack/plugins/synthetics/common/constants/synthetics/rest_api.ts index 7b9a1fe380a69..adea7f323e432 100644 --- a/x-pack/plugins/synthetics/common/constants/synthetics/rest_api.ts +++ b/x-pack/plugins/synthetics/common/constants/synthetics/rest_api.ts @@ -8,4 +8,5 @@ export enum SYNTHETICS_API_URLS { SYNTHETICS_OVERVIEW = '/internal/synthetics/overview', PINGS = '/internal/synthetics/pings', + OVERVIEW_STATUS = `/internal/synthetics/overview/status`, } diff --git a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/index.ts b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/index.ts index 73355d3144eac..a658a1b8a34ef 100644 --- a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/index.ts +++ b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/index.ts @@ -12,3 +12,4 @@ export * from './monitor_meta_data'; export * from './monitor_types'; export * from './monitor_types_project'; export * from './locations'; +export * from './synthetics_overview_status'; diff --git a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/synthetics_overview_status.ts b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/synthetics_overview_status.ts new file mode 100644 index 0000000000000..afd6579788a99 --- /dev/null +++ b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/synthetics_overview_status.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 * as t from 'io-ts'; + +export const OverviewStatusType = t.type({ + up: t.number, + down: t.number, + disabledCount: t.number, +}); + +export type OverviewStatus = t.TypeOf; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx index 898e68ba84001..359f292079fdb 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx @@ -7,10 +7,17 @@ import React, { useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { i18n } from '@kbn/i18n'; -import { EuiFlexItem, EuiFlexGrid, EuiSpacer, EuiTablePagination } from '@elastic/eui'; +import { + EuiFlexItem, + EuiFlexGrid, + EuiSpacer, + EuiTablePagination, + EuiFlexGroup, +} from '@elastic/eui'; import { selectOverviewState, setOverviewPerPageAction } from '../../../../state/overview'; import { OverviewPaginationInfo } from './overview_pagination_info'; import { OverviewGridItem } from './overview_grid_item'; +import { OverviewStatus } from './overview_status'; export const OverviewGrid = () => { const { @@ -32,6 +39,12 @@ export const OverviewGrid = () => { return loaded ? ( <> + + + + + + diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_status.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_status.tsx new file mode 100644 index 0000000000000..fd7583fe02fab --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_status.tsx @@ -0,0 +1,96 @@ +/* + * 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 { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiSpacer, EuiStat, EuiTitle } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { clearOverviewStatusErrorAction, selectOverviewStatus } from '../../../../state'; +import { kibanaService } from '../../../../../../utils/kibana_service'; + +function title(t?: number) { + return t ?? '-'; +} + +export function OverviewStatus() { + const { status, statusError } = useSelector(selectOverviewStatus); + const dispatch = useDispatch(); + + useEffect(() => { + if (statusError) { + dispatch(clearOverviewStatusErrorAction()); + kibanaService.toasts.addError(statusError.body as Error, { + title: errorToastTitle, + toastLifeTimeMs: 5000, + }); + } + }, [dispatch, statusError]); + + return ( + + +

{headingText}

+
+ + + + + + + + + + + + +
+ ); +} + +const headingText = i18n.translate('xpack.synthetics.overview.status.headingText', { + defaultMessage: 'Current status', +}); + +const upDescription = i18n.translate('xpack.synthetics.overview.status.up.description', { + defaultMessage: 'Up', +}); + +const downDescription = i18n.translate('xpack.synthetics.overview.status.down.description', { + defaultMessage: 'Down', +}); + +const disabledDescription = i18n.translate( + 'xpack.synthetics.overview.status.disabled.description', + { + defaultMessage: 'Disabled', + } +); + +const errorToastTitle = i18n.translate('xpack.synthetics.overview.status.error.title', { + defaultMessage: 'Unable to get monitor status metrics', +}); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview_page.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview_page.tsx index 4eb864e7a2a3c..893850e76cb84 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview_page.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview_page.tsx @@ -14,6 +14,7 @@ import { useEnablement } from '../../../hooks'; import { useSyntheticsRefreshContext } from '../../../contexts/synthetics_refresh_context'; import { fetchMonitorOverviewAction, + fetchOverviewStatusAction, selectOverviewState, selectServiceLocationsState, } from '../../../state'; @@ -52,6 +53,7 @@ export const OverviewPage: React.FC = () => { useEffect(() => { dispatch(fetchMonitorOverviewAction.get(pageState)); + dispatch(fetchOverviewStatusAction.get()); }, [dispatch, pageState]); const { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/actions.ts index 0215e3b6553a0..c89179a41806e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/actions.ts @@ -8,7 +8,7 @@ import { createAction } from '@reduxjs/toolkit'; import { createAsyncAction } from '../utils/actions'; import { MonitorOverviewPageState } from './models'; -import { MonitorOverviewResult } from '../../../../../common/runtime_types'; +import { MonitorOverviewResult, OverviewStatus } from '../../../../../common/runtime_types'; export const fetchMonitorOverviewAction = createAsyncAction< MonitorOverviewPageState, @@ -21,3 +21,9 @@ export const quietFetchOverviewAction = createAsyncAction< MonitorOverviewPageState, MonitorOverviewResult >('quietFetchOverviewAction'); + +export const fetchOverviewStatusAction = createAsyncAction( + 'fetchOverviewStatusAction' +); + +export const clearOverviewStatusErrorAction = createAction('clearOverviewStatusErrorAction'); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts index f9d3511a4f5af..ecd91b16bb940 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/api.ts @@ -9,6 +9,8 @@ import { SYNTHETICS_API_URLS } from '../../../../../common/constants'; import { MonitorOverviewResult, MonitorOverviewResultCodec, + OverviewStatus, + OverviewStatusType, } from '../../../../../common/runtime_types'; import { apiService } from '../../../../utils/api_service'; @@ -23,3 +25,6 @@ export const fetchMonitorOverview = async ( MonitorOverviewResultCodec ); }; + +export const fetchOverviewStatus = async (): Promise => + apiService.get(SYNTHETICS_API_URLS.OVERVIEW_STATUS, {}, OverviewStatusType); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/effects.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/effects.ts index 3eaae0fe2b2cf..56b056a93110c 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/effects.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/effects.ts @@ -5,10 +5,15 @@ * 2.0. */ -import { takeLeading } from 'redux-saga/effects'; +import { takeLatest, takeLeading } from 'redux-saga/effects'; +import { fetchUpsertSuccessAction } from '../monitor_list'; import { fetchEffectFactory } from '../utils/fetch_effect'; -import { fetchMonitorOverviewAction, quietFetchOverviewAction } from './actions'; -import { fetchMonitorOverview } from './api'; +import { + fetchMonitorOverviewAction, + fetchOverviewStatusAction, + quietFetchOverviewAction, +} from './actions'; +import { fetchMonitorOverview, fetchOverviewStatus } from './api'; export function* fetchMonitorOverviewEffect() { yield takeLeading( @@ -31,3 +36,14 @@ export function* quietFetchOverviewEffect() { ) ); } + +export function* fetchOverviewStatusEffect() { + yield takeLatest( + [fetchOverviewStatusAction.get, fetchUpsertSuccessAction], + fetchEffectFactory( + fetchOverviewStatus, + fetchOverviewStatusAction.success, + fetchOverviewStatusAction.fail + ) + ); +} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts index a464a988c50d6..49159b29ef461 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts @@ -7,13 +7,15 @@ import { createReducer } from '@reduxjs/toolkit'; -import { MonitorOverviewResult } from '../../../../../common/runtime_types'; +import { MonitorOverviewResult, OverviewStatus } from '../../../../../common/runtime_types'; import { IHttpSerializedFetchError, serializeHttpFetchError } from '../utils/http_error'; import { MonitorOverviewPageState } from './models'; import { + clearOverviewStatusErrorAction, fetchMonitorOverviewAction, + fetchOverviewStatusAction, quietFetchOverviewAction, setOverviewPerPageAction, } from './actions'; @@ -24,6 +26,8 @@ export interface MonitorOverviewState { loading: boolean; loaded: boolean; error: IHttpSerializedFetchError | null; + status: OverviewStatus | null; + statusError: IHttpSerializedFetchError | null; } const initialState: MonitorOverviewState = { @@ -38,6 +42,8 @@ const initialState: MonitorOverviewState = { loading: false, loaded: false, error: null, + status: null, + statusError: null, }; export const monitorOverviewReducer = createReducer(initialState, (builder) => { @@ -68,6 +74,15 @@ export const monitorOverviewReducer = createReducer(initialState, (builder) => { perPage: action.payload, }; state.loaded = false; + }) + .addCase(fetchOverviewStatusAction.success, (state, action) => { + state.status = action.payload; + }) + .addCase(fetchOverviewStatusAction.fail, (state, action) => { + state.statusError = serializeHttpFetchError(action.payload); + }) + .addCase(clearOverviewStatusErrorAction, (state) => { + state.statusError = null; }); }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/selectors.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/selectors.ts index aec2633788fea..dc7f42deb3489 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/selectors.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/selectors.ts @@ -11,3 +11,6 @@ import { SyntheticsAppState } from '../root_reducer'; export const selectOverviewState = (state: SyntheticsAppState) => state.overview; export const selectOverviewDataState = createSelector(selectOverviewState, (state) => state.data); +export const selectOverviewStatus = ({ + overview: { status, statusError }, +}: SyntheticsAppState) => ({ status, statusError }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/root_effect.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/root_effect.ts index 1345f6c2b4c39..50b94bd670838 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/root_effect.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/root_effect.ts @@ -10,7 +10,11 @@ import { fetchSyntheticsMonitorEffect } from './monitor_details'; import { fetchIndexStatusEffect } from './index_status'; import { fetchSyntheticsEnablementEffect } from './synthetics_enablement'; import { fetchMonitorListEffect, upsertMonitorEffect } from './monitor_list'; -import { fetchMonitorOverviewEffect, quietFetchOverviewEffect } from './overview'; +import { + fetchMonitorOverviewEffect, + quietFetchOverviewEffect, + fetchOverviewStatusEffect, +} from './overview'; import { fetchServiceLocationsEffect } from './service_locations'; import { browserJourneyEffects } from './browser_journey'; @@ -25,5 +29,6 @@ export const rootEffect = function* root(): Generator { fork(fetchMonitorOverviewEffect), fork(quietFetchOverviewEffect), fork(browserJourneyEffects), + fork(fetchOverviewStatusEffect), ]); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts index 5fa93522e6c9b..6031707c1fd19 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts @@ -96,6 +96,8 @@ export const mockState: SyntheticsAppState = { error: null, loaded: false, loading: false, + status: null, + statusError: null, }, syntheticsEnablement: { loading: false, error: null, enablement: null }, monitorDetails: getMonitorDetailsMockSlice(), diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/framework/adapter_types.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/framework/adapter_types.ts index 0044e0f5ddcec..90f12b7368120 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/framework/adapter_types.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/framework/adapter_types.ts @@ -30,14 +30,14 @@ import { CloudSetup } from '@kbn/cloud-plugin/server'; import { SpacesPluginSetup } from '@kbn/spaces-plugin/server'; import { FleetStartContract } from '@kbn/fleet-plugin/server'; import { BfetchServerSetup } from '@kbn/bfetch-plugin/server'; -import { UptimeESClient } from '../../lib'; +import { UptimeEsClient } from '../../lib'; import type { TelemetryEventsSender } from '../../telemetry/sender'; import type { UptimeRouter } from '../../../../types'; import { UptimeConfig } from '../../../../../common/config'; export type UMElasticsearchQueryFn = ( params: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; esClient?: IScopedClusterClient; } & P ) => Promise; @@ -60,7 +60,7 @@ export interface UptimeServerSetup { kibanaVersion: string; logger: Logger; telemetry: TelemetryEventsSender; - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; basePath: IBasePath; isDev?: boolean; } diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/telemetry/kibana_telemetry_adapter.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/telemetry/kibana_telemetry_adapter.ts index 3aaff60ff3529..cd852fc537d6a 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/telemetry/kibana_telemetry_adapter.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/adapters/telemetry/kibana_telemetry_adapter.ts @@ -10,7 +10,7 @@ import { SavedObjectsClientContract } from '@kbn/core/server'; import { CollectorFetchContext, UsageCollectionSetup } from '@kbn/usage-collection-plugin/server'; import { PageViewParams, UptimeTelemetry, Usage } from './types'; import { savedObjectsAdapter } from '../../saved_objects/saved_objects'; -import { UptimeESClient, createUptimeESClient } from '../../lib'; +import { UptimeEsClient, createUptimeESClient } from '../../lib'; import { createEsQuery } from '../../../../../common/utils/es_search'; interface UptimeTelemetryCollector { @@ -212,7 +212,7 @@ export class KibanaTelemetryAdapter { } public static async countNoOfUniqueMonitorAndLocations( - callCluster: UptimeESClient, + callCluster: UptimeEsClient, savedObjectsClient: SavedObjectsClientContract ) { const dynamicSettings = await savedObjectsAdapter.getUptimeDynamicSettings(savedObjectsClient); @@ -309,7 +309,7 @@ export class KibanaTelemetryAdapter { return bucket; } - public static async countNoOfUniqueFleetManagedMonitors(callCluster: UptimeESClient) { + public static async countNoOfUniqueFleetManagedMonitors(callCluster: UptimeEsClient) { const params = { index: 'synthetics-*', body: { diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/alerts/status_check.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/alerts/status_check.ts index b7f107d8c0f71..e119f9bde62f0 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/alerts/status_check.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/alerts/status_check.ts @@ -36,7 +36,7 @@ import { } from '../requests/get_monitor_status'; import { UNNAMED_LOCATION } from '../../../../common/constants'; import { getUptimeIndexPattern, IndexPatternTitleAndFields } from '../requests/get_index_pattern'; -import { UMServerLibs, UptimeESClient, createUptimeESClient } from '../lib'; +import { UMServerLibs, UptimeEsClient, createUptimeESClient } from '../lib'; import { ALERT_REASON_MSG, MESSAGE, @@ -115,7 +115,7 @@ export const generateFilterDSL = async ( }; export const formatFilterString = async ( - uptimeEsClient: UptimeESClient, + uptimeEsClient: UptimeEsClient, filters: StatusCheckFilters, search: string, libs?: UMServerLibs diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/lib.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/lib.ts index c6c7ea0889025..aebe13affddd4 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/lib.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/lib.ts @@ -38,7 +38,7 @@ export interface CountResponse { indices: string; } -export type UptimeESClient = ReturnType; +export type UptimeEsClient = ReturnType; export const inspectableEsQueriesMap = new WeakMap(); diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_certs.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_certs.ts index ac6963dba85bc..d3d0f512621c9 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_certs.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_certs.ts @@ -12,7 +12,7 @@ import { getCertsRequestBody, processCertsResult, } from '../../../../common/requests/get_certs_request_body'; -import { UptimeESClient } from '../lib'; +import { UptimeEsClient } from '../lib'; export const getCerts: UMElasticsearchQueryFn = async ( requestParams @@ -25,7 +25,7 @@ export const getCerts: UMElasticsearchQueryFn = asyn export type CertificatesResults = PromiseType>; const getCertsResults = async ( - requestParams: GetCertsParams & { uptimeEsClient: UptimeESClient } + requestParams: GetCertsParams & { uptimeEsClient: UptimeEsClient } ) => { const { uptimeEsClient } = requestParams; diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_index_pattern.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_index_pattern.ts index 539a2be1b7d1a..6e9dcf2c4ba85 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_index_pattern.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_index_pattern.ts @@ -6,7 +6,7 @@ */ import { FieldDescriptor, IndexPatternsFetcher } from '@kbn/data-plugin/server'; -import { UptimeESClient } from '../lib'; +import { UptimeEsClient } from '../lib'; import { savedObjectsAdapter } from '../saved_objects/saved_objects'; export interface IndexPatternTitleAndFields { @@ -17,7 +17,7 @@ export interface IndexPatternTitleAndFields { export const getUptimeIndexPattern = async ({ uptimeEsClient, }: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; }): Promise => { const indexPatternsFetcher = new IndexPatternsFetcher(uptimeEsClient.baseESClient); diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_details.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_details.ts index 6a7af17e4bfad..cc6096a9b22b7 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_details.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_details.ts @@ -10,7 +10,7 @@ import { CLIENT_ALERT_TYPES } from '../../../../common/constants/alerts'; import { UMElasticsearchQueryFn } from '../adapters'; import { MonitorDetails, Ping } from '../../../../common/runtime_types'; import { formatFilterString } from '../alerts/status_check'; -import { UptimeESClient } from '../lib'; +import { UptimeEsClient } from '../lib'; import { createEsQuery } from '../../../../common/utils/es_search'; export interface GetMonitorDetailsParams { @@ -25,7 +25,7 @@ export const getMonitorAlerts = async ({ rulesClient, monitorId, }: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; rulesClient: any; monitorId: string; }) => { diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_status.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_status.ts index 7305d3ef19ede..93d03029ee5a4 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_status.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_monitor_status.ts @@ -13,7 +13,7 @@ import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { UMElasticsearchQueryFn } from '../adapters'; import { Ping } from '../../../../common/runtime_types/ping'; import { createEsQuery } from '../../../../common/utils/es_search'; -import { UptimeESClient } from '../lib'; +import { UptimeEsClient } from '../lib'; import { UNNAMED_LOCATION } from '../../../../common/constants'; export interface GetMonitorStatusParams { @@ -83,7 +83,7 @@ const executeQueryParams = async ({ timestampRange: GetMonitorStatusParams['timestampRange']; filters: GetMonitorStatusParams['filters']; afterKey?: AfterKey; - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; locations: string[]; }) => { const queryParams = createEsQuery({ diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_snapshot_counts.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_snapshot_counts.ts index 14adbd1e7f744..2dda847a023ec 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_snapshot_counts.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/get_snapshot_counts.ts @@ -48,7 +48,7 @@ const statusCount = async (context: QueryContext): Promise => { { body: statusCountBody(await context.dateAndCustomFilters(), context), }, - 'geSnapshotCount' + 'getSnapshotCount' ); return ( diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/search/query_context.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/search/query_context.ts index 1424191ea826a..345dd4a1e4dbe 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/search/query_context.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/search/query_context.ts @@ -9,11 +9,11 @@ import moment from 'moment'; import type { ESFilter } from '@kbn/es-types'; import { CursorPagination } from './types'; import { CursorDirection, SortOrder } from '../../../../../common/runtime_types'; -import { UptimeESClient } from '../../lib'; +import { UptimeEsClient } from '../../lib'; import { parseRelativeDate } from '../../../../../common/lib/get_histogram_interval'; export class QueryContext { - callES: UptimeESClient; + callES: UptimeEsClient; dateRangeStart: string; dateRangeEnd: string; pagination: CursorPagination; @@ -24,7 +24,7 @@ export class QueryContext { query?: string; constructor( - database: UptimeESClient, + database: UptimeEsClient, dateRangeStart: string, dateRangeEnd: string, pagination: CursorPagination, diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/test_helpers.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/test_helpers.ts index 96de0a435ee72..b33bc80419021 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/test_helpers.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/requests/test_helpers.ts @@ -9,7 +9,7 @@ import { AggregationsAggregate } from '@elastic/elasticsearch/lib/api/typesWithB import type { ElasticsearchClientMock } from '@kbn/core-elasticsearch-client-server-mocks'; import { elasticsearchServiceMock, savedObjectsClientMock } from '@kbn/core/server/mocks'; -import { createUptimeESClient, UptimeESClient } from '../lib'; +import { createUptimeESClient, UptimeEsClient } from '../lib'; export interface MultiPageCriteria { after_key?: K; @@ -59,7 +59,7 @@ export const setupMockEsCompositeQuery = ( interface UptimeEsMockClient { esClient: ElasticsearchClientMock; - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; } export const getUptimeESMockClient = ( @@ -81,7 +81,7 @@ export const getUptimeESMockClient = ( export function mockSearchResult( data: unknown, aggregations: Record = {} -): UptimeESClient { +): UptimeEsClient { const { esClient: mockEsClient, uptimeEsClient } = getUptimeESMockClient(); mockEsClient.search.mockResponse({ diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/routes/types.ts b/x-pack/plugins/synthetics/server/legacy_uptime/routes/types.ts index 9719f897c5c81..ed555ed90abd0 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/routes/types.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/routes/types.ts @@ -17,7 +17,7 @@ import { IKibanaResponse, } from '@kbn/core/server'; import { SyntheticsMonitorClient } from '../../synthetics_service/synthetics_monitor/synthetics_monitor_client'; -import { UMServerLibs, UptimeESClient } from '../lib/lib'; +import { UMServerLibs, UptimeEsClient } from '../lib/lib'; import type { UptimeRequestHandlerContext } from '../../types'; import { UptimeServerSetup } from '../lib/adapters'; @@ -100,7 +100,7 @@ export type UMRouteHandler = ({ savedObjectsClient, subject, }: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; context: UptimeRequestHandlerContext; request: SyntheticsRequest; response: KibanaResponseFactory; @@ -118,7 +118,7 @@ export type SyntheticsRouteHandler = ({ savedObjectsClient, subject: Subject, }: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; context: UptimeRequestHandlerContext; request: SyntheticsRequest; response: KibanaResponseFactory; @@ -136,7 +136,7 @@ export type SyntheticsStreamingRouteHandler = ({ savedObjectsClient, subject: Subject, }: { - uptimeEsClient: UptimeESClient; + uptimeEsClient: UptimeEsClient; context: UptimeRequestHandlerContext; request: SyntheticsRequest; savedObjectsClient: SavedObjectsClientContract; diff --git a/x-pack/plugins/synthetics/server/routes/common.ts b/x-pack/plugins/synthetics/server/routes/common.ts new file mode 100644 index 0000000000000..bdf06c8373af3 --- /dev/null +++ b/x-pack/plugins/synthetics/server/routes/common.ts @@ -0,0 +1,96 @@ +/* + * 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 { schema, TypeOf } from '@kbn/config-schema'; +import { SavedObjectsClientContract, SavedObjectsFindResponse } from '@kbn/core/server'; +import { SyntheticsService } from '../synthetics_service/synthetics_service'; +import { EncryptedSyntheticsMonitor, ServiceLocations } from '../../common/runtime_types'; +import { monitorAttributes } from '../../common/types/saved_objects'; +import { syntheticsMonitorType } from '../legacy_uptime/lib/saved_objects/synthetics_monitor'; + +const querySchema = schema.object({ + page: schema.maybe(schema.number()), + perPage: schema.maybe(schema.number()), + sortField: schema.maybe(schema.string()), + sortOrder: schema.maybe(schema.oneOf([schema.literal('desc'), schema.literal('asc')])), + query: schema.maybe(schema.string()), + filter: schema.maybe(schema.string()), + tags: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), + monitorType: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), + locations: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), + status: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), +}); + +type MonitorsQuery = TypeOf; + +export const getMonitors = ( + request: MonitorsQuery, + syntheticsService: SyntheticsService, + savedObjectsClient: SavedObjectsClientContract +): Promise> => { + const { + perPage = 50, + page, + sortField, + sortOrder, + query, + tags, + monitorType, + locations, + filter = '', + } = request as MonitorsQuery; + + const locationFilter = parseLocationFilter(syntheticsService.locations, locations); + + const filters = + getFilter('tags', tags) + + getFilter('type', monitorType) + + getFilter('locations.id', locationFilter); + + return savedObjectsClient.find({ + type: syntheticsMonitorType, + perPage, + page, + sortField: sortField === 'schedule.keyword' ? 'schedule.number' : sortField, + sortOrder, + searchFields: ['name', 'tags.text', 'locations.id.text', 'urls'], + search: query ? `${query}*` : undefined, + filter: filters + filter, + }); +}; + +const getFilter = (field: string, values?: string | string[], operator = 'OR') => { + if (!values) { + return ''; + } + + const fieldKey = `${monitorAttributes}.${field}`; + + if (Array.isArray(values)) { + return `${fieldKey}:${values.join(` ${operator} ${fieldKey}:`)}`; + } + + return `${fieldKey}:${values}`; +}; + +const parseLocationFilter = (serviceLocations: ServiceLocations, locations?: string | string[]) => { + if (!locations) { + return ''; + } + + if (Array.isArray(locations)) { + return locations + .map((loc) => findLocationItem(loc, serviceLocations)?.id ?? '') + .filter((val) => !val); + } + + return findLocationItem(locations, serviceLocations)?.id ?? ''; +}; + +export const findLocationItem = (query: string, locations: ServiceLocations) => { + return locations.find(({ id, label }) => query === id || label === query); +}; diff --git a/x-pack/plugins/synthetics/server/routes/index.ts b/x-pack/plugins/synthetics/server/routes/index.ts index 6e60de0848706..53819b5b380e5 100644 --- a/x-pack/plugins/synthetics/server/routes/index.ts +++ b/x-pack/plugins/synthetics/server/routes/index.ts @@ -26,6 +26,7 @@ import { editSyntheticsMonitorRoute } from './monitor_cruds/edit_monitor'; import { addSyntheticsMonitorRoute } from './monitor_cruds/add_monitor'; import { addSyntheticsProjectMonitorRoute } from './monitor_cruds/add_monitor_project'; import { syntheticsGetPingsRoute } from './pings'; +import { createGetCurrentStatusRoute } from './status/current_status'; import { SyntheticsRestApiRouteFactory, SyntheticsStreamingRouteFactory, @@ -48,6 +49,7 @@ export const syntheticsAppRestApiRoutes: SyntheticsRestApiRouteFactory[] = [ getServiceAllowedRoute, getAPIKeySyntheticsRoute, syntheticsGetPingsRoute, + createGetCurrentStatusRoute, ]; export const syntheticsAppStreamingApiRoutes: SyntheticsStreamingRouteFactory[] = [ diff --git a/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts b/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts index 6202aeef8e2e3..1d02454ce04ba 100644 --- a/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts +++ b/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts @@ -4,24 +4,15 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { schema, TypeOf } from '@kbn/config-schema'; -import { - SavedObjectsClientContract, - SavedObjectsErrorHelpers, - SavedObjectsFindResponse, -} from '@kbn/core/server'; -import { SyntheticsService } from '../../synthetics_service/synthetics_service'; -import { - ConfigKey, - EncryptedSyntheticsMonitor, - ServiceLocations, -} from '../../../common/runtime_types'; -import { monitorAttributes } from '../../../common/types/saved_objects'; +import { schema } from '@kbn/config-schema'; +import { SavedObjectsErrorHelpers } from '@kbn/core/server'; +import { ConfigKey } from '../../../common/runtime_types'; import { UMServerLibs } from '../../legacy_uptime/lib/lib'; import { SyntheticsRestApiRouteFactory } from '../../legacy_uptime/routes/types'; import { API_URLS, SYNTHETICS_API_URLS } from '../../../common/constants'; import { syntheticsMonitorType } from '../../legacy_uptime/lib/saved_objects/synthetics_monitor'; import { getMonitorNotFoundResponse } from '../synthetics_service/service_errors'; +import { getMonitors } from '../common'; const querySchema = schema.object({ page: schema.maybe(schema.number()), @@ -36,44 +27,6 @@ const querySchema = schema.object({ status: schema.maybe(schema.oneOf([schema.string(), schema.arrayOf(schema.string())])), }); -type MonitorsQuery = TypeOf; - -const getMonitors = ( - request: MonitorsQuery, - syntheticsService: SyntheticsService, - savedObjectsClient: SavedObjectsClientContract -): Promise> => { - const { - perPage = 50, - page, - sortField, - sortOrder, - query, - tags, - monitorType, - locations, - filter = '', - } = request as MonitorsQuery; - - const locationFilter = parseLocationFilter(syntheticsService.locations, locations); - - const filters = - getFilter('tags', tags) + - getFilter('type', monitorType) + - getFilter('locations.id', locationFilter); - - return savedObjectsClient.find({ - type: syntheticsMonitorType, - perPage, - page, - sortField: sortField === 'schedule.keyword' ? 'schedule.number' : sortField, - sortOrder, - searchFields: ['name', 'tags.text', 'locations.id.text', 'urls'], - search: query ? `${query}*` : undefined, - filter: filters + filter, - }); -}; - export const getSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = (libs: UMServerLibs) => ({ method: 'GET', path: API_URLS.SYNTHETICS_MONITORS + '/{monitorId}', @@ -152,38 +105,6 @@ export const getAllSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () => }, }); -const getFilter = (field: string, values?: string | string[], operator = 'OR') => { - if (!values) { - return ''; - } - - const fieldKey = `${monitorAttributes}.${field}`; - - if (Array.isArray(values)) { - return `${fieldKey}:${values.join(` ${operator} ${fieldKey}:`)}`; - } - - return `${fieldKey}:${values}`; -}; - -const parseLocationFilter = (serviceLocations: ServiceLocations, locations?: string | string[]) => { - if (!locations) { - return ''; - } - - if (Array.isArray(locations)) { - return locations - .map((loc) => findLocationItem(loc, serviceLocations)?.id ?? '') - .filter((val) => !val); - } - - return findLocationItem(locations, serviceLocations)?.id ?? ''; -}; - -export const findLocationItem = (query: string, locations: ServiceLocations) => { - return locations.find(({ id, label }) => query === id || label === query); -}; - export const getSyntheticsMonitorOverviewRoute: SyntheticsRestApiRouteFactory = () => ({ method: 'GET', path: SYNTHETICS_API_URLS.SYNTHETICS_OVERVIEW, diff --git a/x-pack/plugins/synthetics/server/routes/status/current_status.test.ts b/x-pack/plugins/synthetics/server/routes/status/current_status.test.ts new file mode 100644 index 0000000000000..12fdea5b9fd4d --- /dev/null +++ b/x-pack/plugins/synthetics/server/routes/status/current_status.test.ts @@ -0,0 +1,279 @@ +/* + * 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 { getUptimeESMockClient } from '../../legacy_uptime/lib/requests/test_helpers'; +import { queryMonitorStatus, periodToMs } from './current_status'; + +jest.mock('../common', () => ({ + getMonitors: jest.fn().mockReturnValue({ + per_page: 10, + saved_objects: [ + { + id: 'mon-1', + attributes: { + enabled: false, + locations: ['us-east1', 'us-west1', 'japan'], + }, + }, + { + id: 'mon-2', + attributes: { + enabled: true, + locations: ['us-east1', 'us-west1', 'japan'], + schedule: { + number: '10', + unit: 'm', + }, + }, + }, + ], + }), +})); + +jest.mock('../../legacy_uptime/lib/requests/get_snapshot_counts', () => ({ + getSnapshotCount: jest.fn().mockReturnValue({ + up: 2, + down: 1, + total: 3, + }), +})); + +describe('current status route', () => { + describe('periodToMs', () => { + it('returns 0 for unsupported unit type', () => { + // @ts-expect-error Providing invalid value to test handler in function + expect(periodToMs({ number: '10', unit: 'rad' })).toEqual(0); + }); + it('converts seconds', () => { + expect(periodToMs({ number: '10', unit: 's' })).toEqual(10_000); + }); + it('converts minutes', () => { + expect(periodToMs({ number: '1', unit: 'm' })).toEqual(60_000); + }); + it('converts hours', () => { + expect(periodToMs({ number: '1', unit: 'h' })).toEqual(3_600_000); + }); + }); + + describe('getStats', () => { + it('parses expected agg fields', async () => { + const { esClient, uptimeEsClient } = getUptimeESMockClient(); + esClient.search.mockResponseOnce( + getEsResponse([ + { + key: 'id1', + location: { + buckets: [ + { + key: 'Asia/Pacific - Japan', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:08:16.724Z', + monitor: { + status: 'up', + }, + summary: { + up: 1, + down: 0, + }, + }, + }, + ], + }, + }, + }, + ], + }, + }, + { + key: 'id2', + location: { + buckets: [ + { + key: 'Asia/Pacific - Japan', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:09:16.724Z', + monitor: { + status: 'up', + }, + summary: { + up: 1, + down: 0, + }, + }, + }, + ], + }, + }, + }, + { + key: 'Europe - Germany', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:19:16.724Z', + monitor: { + status: 'down', + }, + summary: { + down: 1, + up: 0, + }, + }, + }, + ], + }, + }, + }, + ], + }, + }, + ]) + ); + expect(await queryMonitorStatus(uptimeEsClient, 3, 140000, ['id1', 'id2'])).toEqual({ + down: 1, + up: 2, + }); + }); + + it('handles limits with multiple requests', async () => { + const { esClient, uptimeEsClient } = getUptimeESMockClient(); + esClient.search.mockResponseOnce( + getEsResponse([ + { + key: 'id1', + location: { + buckets: [ + { + key: 'Asia/Pacific - Japan', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:08:16.724Z', + monitor: { + status: 'up', + }, + summary: { + up: 1, + down: 0, + }, + }, + }, + ], + }, + }, + }, + ], + }, + }, + { + key: 'id2', + location: { + buckets: [ + { + key: 'Asia/Pacific - Japan', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:09:16.724Z', + monitor: { + status: 'up', + }, + summary: { + up: 1, + down: 0, + }, + }, + }, + ], + }, + }, + }, + { + key: 'Europe - Germany', + status: { + hits: { + hits: [ + { + _source: { + '@timestamp': '2022-09-15T16:19:16.724Z', + monitor: { + status: 'down', + }, + summary: { + up: 0, + down: 1, + }, + }, + }, + ], + }, + }, + }, + ], + }, + }, + ]) + ); + + /** + * By passing the function a location count of 10k, it forces the query to paginate once, + * so we are able to test that the function properly iterates through a "large" list of IDs/locations. + * + * The expectation here is we will send the test client two separate "requests", one for each of the two IDs. + */ + expect(await queryMonitorStatus(uptimeEsClient, 10000, 2500, ['id1', 'id2'])).toEqual({ + down: 1, + up: 2, + }); + expect(esClient.search).toHaveBeenCalledTimes(2); + // These assertions are to ensure that we are paginating through the IDs we use for filtering + // @ts-expect-error mock search is not lining up with expected type + expect(esClient.search.mock.calls[0][0].query.bool.filter[1].terms['monitor.id']).toEqual([ + 'id1', + ]); + // @ts-expect-error mock search is not lining up with expected type + expect(esClient.search.mock.calls[1][0].query.bool.filter[1].terms['monitor.id']).toEqual([ + 'id2', + ]); + }); + }); +}); + +function getEsResponse(buckets: any[]) { + return { + took: 605, + timed_out: false, + _shards: { + total: 3, + successful: 3, + skipped: 0, + failed: 0, + }, + hits: { + hits: [], + }, + aggregations: { + id: { + buckets, + }, + }, + }; +} diff --git a/x-pack/plugins/synthetics/server/routes/status/current_status.ts b/x-pack/plugins/synthetics/server/routes/status/current_status.ts new file mode 100644 index 0000000000000..da8b4a7eb3911 --- /dev/null +++ b/x-pack/plugins/synthetics/server/routes/status/current_status.ts @@ -0,0 +1,199 @@ +/* + * 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 { schema } from '@kbn/config-schema'; +import datemath, { Unit } from '@kbn/datemath'; +import { IKibanaResponse, SavedObjectsClientContract } from '@kbn/core/server'; +import { SYNTHETICS_API_URLS } from '../../../common/constants'; +import { UMServerLibs } from '../../legacy_uptime/uptime_server'; +import { SyntheticsRestApiRouteFactory } from '../../legacy_uptime/routes'; +import { getMonitors } from '../common'; +import { UptimeEsClient } from '../../legacy_uptime/lib/lib'; +import { SyntheticsMonitorClient } from '../../synthetics_service/synthetics_monitor/synthetics_monitor_client'; +import { ConfigKey, OverviewStatus } from '../../../common/runtime_types'; + +/** + * Helper function that converts a monitor's schedule to a value to use to generate + * an appropriate look-back window for snapshot count. + * @param schedule a number/unit pair that represents how often a configured monitor runs + * @returns schedule interval in ms + */ +export function periodToMs(schedule: { number: string; unit: Unit }) { + if (Object.keys(datemath.unitsMap).indexOf(schedule.unit) === -1) return 0; + + return parseInt(schedule.number, 10) * datemath.unitsMap[schedule.unit].base; +} + +const DEFAULT_MAX_ES_BUCKET_SIZE = 10000; + +export async function queryMonitorStatus( + esClient: UptimeEsClient, + maxLocations: number, + maxPeriod: number, + ids: Array +): Promise> { + const idSize = Math.trunc(DEFAULT_MAX_ES_BUCKET_SIZE / maxLocations); + const pageCount = Math.ceil(ids.length / idSize); + const promises: Array> = []; + for (let i = 0; i < pageCount; i++) { + const params = { + size: 0, + query: { + bool: { + filter: [ + { + range: { + '@timestamp': { + gte: maxPeriod, + lte: 'now', + }, + }, + }, + { + terms: { + 'monitor.id': ids.slice(i * idSize, i * idSize + idSize), + }, + }, + { + exists: { + field: 'summary', + }, + }, + ], + }, + }, + aggs: { + id: { + terms: { + field: 'monitor.id', + size: idSize, + }, + aggs: { + location: { + terms: { + field: 'observer.geo.name', + size: maxLocations, + }, + aggs: { + status: { + top_hits: { + size: 1, + sort: [ + { + '@timestamp': { + order: 'desc', + }, + }, + ], + _source: { + includes: ['@timestamp', 'summary'], + }, + }, + }, + }, + }, + }, + }, + }, + }; + promises.push(esClient.baseESClient.search(params)); + } + let up = 0; + let down = 0; + for await (const response of promises) { + response.aggregations?.id.buckets.forEach(({ location }: { key: string; location: any }) => { + location.buckets.forEach(({ status }: { key: string; status: any }) => { + const downCount = status.hits.hits[0]._source.summary.down; + const upCount = status.hits.hits[0]._source.summary.up; + if (upCount > 0) { + up += 1; + } else if (downCount > 0) { + down += 1; + } + }); + }); + } + return { up, down }; +} + +/** + * Multi-stage function that first queries all the user's saved object monitor configs. + * + * Subsequently, fetch the status for each monitor per location in the data streams. + * @returns The counts of up/down/disabled monitor by location, and a map of each monitor:location status. + */ +export async function getStatus( + uptimeEsClient: UptimeEsClient, + savedObjectsClient: SavedObjectsClientContract, + syntheticsMonitorClient: SyntheticsMonitorClient +) { + let monitors; + const enabledIds: Array = []; + let disabledCount = 0; + let page = 1; + let maxPeriod = 0; + let maxLocations = 1; + /** + * Walk through all monitor saved objects, bucket IDs by disabled/enabled status. + * + * Track max period to make sure the snapshot query should reach back far enough to catch + * latest ping for all enabled monitors. + */ + do { + monitors = await getMonitors( + { + perPage: 500, + page, + sortField: 'name.keyword', + sortOrder: 'asc', + }, + syntheticsMonitorClient.syntheticsService, + savedObjectsClient + ); + page++; + monitors.saved_objects.forEach((monitor) => { + if (monitor.attributes[ConfigKey.ENABLED] === false) { + disabledCount += monitor.attributes[ConfigKey.LOCATIONS].length; + } else { + enabledIds.push(monitor.attributes[ConfigKey.CUSTOM_HEARTBEAT_ID] || monitor.id); + maxLocations = Math.max(maxLocations, monitor.attributes.locations.length); + maxPeriod = Math.max(maxPeriod, periodToMs(monitor.attributes.schedule)); + } + }); + } while (monitors.saved_objects.length === monitors.per_page); + + const { up, down } = await queryMonitorStatus( + uptimeEsClient, + maxLocations, + maxPeriod, + enabledIds + ); + + return { + disabledCount, + up, + down, + }; +} + +export const createGetCurrentStatusRoute: SyntheticsRestApiRouteFactory = (libs: UMServerLibs) => ({ + method: 'GET', + path: SYNTHETICS_API_URLS.OVERVIEW_STATUS, + validate: { + query: schema.object({}), + }, + handler: async ({ + uptimeEsClient, + savedObjectsClient, + syntheticsMonitorClient, + response, + }): Promise> => { + return response.ok({ + body: await getStatus(uptimeEsClient, savedObjectsClient, syntheticsMonitorClient), + }); + }, +}); From 824b7f307c26b9da9353131b330e1e5e6e5a42bb Mon Sep 17 00:00:00 2001 From: Luke Gmys Date: Mon, 3 Oct 2022 18:26:10 +0200 Subject: [PATCH 32/51] [TIP] Unify filters with the rest of Security Solution (#142336) --- .../public/threat_intelligence/routes.tsx | 11 +- .../plugins/threat_intelligence/kibana.json | 8 +- .../mocks/mock_indicators_filters_context.tsx | 6 +- .../common/mocks/mock_security_context.tsx | 8 + .../components/barchart/wrapper.stories.tsx | 13 +- .../components/barchart/wrapper.test.tsx | 3 +- .../containers/indicators_filters/context.ts | 8 +- .../indicators_filters/indicators_filters.tsx | 89 ++------- .../hooks/use_aggregated_indicators.test.tsx | 17 +- .../hooks/use_aggregated_indicators.ts | 8 +- .../indicators/hooks/use_indicators.test.tsx | 8 +- .../indicators/hooks/use_indicators.ts | 2 +- .../indicators/indicators_page.test.tsx | 9 +- .../modules/indicators/indicators_page.tsx | 32 +--- .../query_bar/components/query_bar/index.tsx | 11 -- .../query_bar/query_bar.stories.tsx | 49 ----- .../components/query_bar/query_bar.test.tsx | 83 -------- .../components/query_bar/query_bar.tsx | 179 ------------------ .../hooks/use_filters/use_filters.test.tsx | 165 ---------------- .../query_bar/hooks/use_filters/utils.test.ts | 68 ------- .../query_bar/hooks/use_filters/utils.ts | 73 ------- .../threat_intelligence/public/types.ts | 10 +- 22 files changed, 73 insertions(+), 787 deletions(-) delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/index.tsx delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.stories.tsx delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.test.tsx delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.tsx delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/use_filters.test.tsx delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.test.ts delete mode 100644 x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.ts diff --git a/x-pack/plugins/security_solution/public/threat_intelligence/routes.tsx b/x-pack/plugins/security_solution/public/threat_intelligence/routes.tsx index 774d5ea06a350..239ec92d0badd 100644 --- a/x-pack/plugins/security_solution/public/threat_intelligence/routes.tsx +++ b/x-pack/plugins/security_solution/public/threat_intelligence/routes.tsx @@ -11,8 +11,9 @@ import type { SecuritySolutionPluginContext } from '@kbn/threat-intelligence-plu import { THREAT_INTELLIGENCE_BASE_PATH } from '@kbn/threat-intelligence-plugin/public'; import type { SourcererDataView } from '@kbn/threat-intelligence-plugin/public/types'; import type { Store } from 'redux'; +import { useSelector } from 'react-redux'; import { useInvestigateInTimeline } from './use_investigate_in_timeline'; -import { getStore } from '../common/store'; +import { getStore, inputsSelectors } from '../common/store'; import { useKibana } from '../common/lib/kibana'; import { FiltersGlobal } from '../common/components/filters_global'; import { SpyRoute } from '../common/utils/route/spy_routes'; @@ -21,6 +22,8 @@ import { SecurityPageName } from '../app/types'; import type { SecuritySubPluginRoutes } from '../app/types'; import { useSourcererDataView } from '../common/containers/sourcerer'; import { SecuritySolutionPageWrapper } from '../common/components/page_wrapper'; +import { SiemSearchBar } from '../common/components/search_bar'; +import { useGlobalTime } from '../common/containers/use_global_time'; const ThreatIntelligence = memo(() => { const { threatIntelligence } = useKibana().services; @@ -37,6 +40,12 @@ const ThreatIntelligence = memo(() => { sourcererDataView: sourcererDataView as unknown as SourcererDataView, getSecuritySolutionStore: securitySolutionStore, getUseInvestigateInTimeline: useInvestigateInTimeline, + + useQuery: () => useSelector(inputsSelectors.globalQuerySelector()), + useFilters: () => useSelector(inputsSelectors.globalFiltersQuerySelector()), + useGlobalTime, + + SiemSearchBar, }; return ( diff --git a/x-pack/plugins/threat_intelligence/kibana.json b/x-pack/plugins/threat_intelligence/kibana.json index f55191e68a875..c640782b90f3c 100644 --- a/x-pack/plugins/threat_intelligence/kibana.json +++ b/x-pack/plugins/threat_intelligence/kibana.json @@ -12,17 +12,11 @@ "requiredPlugins": [ "data", "dataViews", - "unifiedSearch", "kibanaUtils", "navigation", "kibanaReact", "triggersActionsUi", "inspector" ], - "requiredBundles": [ - "data", - "unifiedSearch", - "kibanaUtils", - "kibanaReact" - ] + "requiredBundles": ["data", "kibanaUtils", "kibanaReact"] } diff --git a/x-pack/plugins/threat_intelligence/public/common/mocks/mock_indicators_filters_context.tsx b/x-pack/plugins/threat_intelligence/public/common/mocks/mock_indicators_filters_context.tsx index baad954a44663..0be85bea8ccf1 100644 --- a/x-pack/plugins/threat_intelligence/public/common/mocks/mock_indicators_filters_context.tsx +++ b/x-pack/plugins/threat_intelligence/public/common/mocks/mock_indicators_filters_context.tsx @@ -8,6 +8,8 @@ import { FilterManager } from '@kbn/data-plugin/public'; import { IndicatorsFiltersContextValue } from '../../modules/indicators/containers/indicators_filters/context'; +export const mockTimeRange = { from: '2022-10-03T07:48:31.498Z', to: '2022-10-03T07:48:31.498Z' }; + export const mockIndicatorsFiltersContext: IndicatorsFiltersContextValue = { filterManager: { getFilters: () => [], @@ -18,7 +20,5 @@ export const mockIndicatorsFiltersContext: IndicatorsFiltersContextValue = { language: 'kuery', query: '', }, - handleSavedQuery: () => {}, - handleSubmitQuery: () => {}, - handleSubmitTimeRange: () => {}, + timeRange: mockTimeRange, }; diff --git a/x-pack/plugins/threat_intelligence/public/common/mocks/mock_security_context.tsx b/x-pack/plugins/threat_intelligence/public/common/mocks/mock_security_context.tsx index cef2598510da0..8a0bb088e064d 100644 --- a/x-pack/plugins/threat_intelligence/public/common/mocks/mock_security_context.tsx +++ b/x-pack/plugins/threat_intelligence/public/common/mocks/mock_security_context.tsx @@ -36,4 +36,12 @@ export const getSecuritySolutionContextMock = (): SecuritySolutionPluginContext ({ dataProviders, from, to }) => () => new Promise((resolve) => window.alert('investigate in timeline')), + + SiemSearchBar: () =>
mock siem search
, + + useFilters: () => [], + + useGlobalTime: () => ({ from: '', to: '' }), + + useQuery: () => ({ language: 'kuery', query: '' }), }); diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.stories.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.stories.tsx index 74fd94d6d562a..472bc7934bab2 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.stories.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.stories.tsx @@ -16,7 +16,6 @@ import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { IUiSettingsClient } from '@kbn/core/public'; import { StoryProvidersComponent } from '../../../../common/mocks/story_providers'; import { mockKibanaTimelinesService } from '../../../../common/mocks/mock_kibana_timelines_service'; -import { DEFAULT_TIME_RANGE } from '../../../query_bar/hooks/use_filters/utils'; import { IndicatorsBarChartWrapper } from '.'; import { Aggregation, AGGREGATION_NAME, ChartSeries } from '../../services'; @@ -25,7 +24,7 @@ export default { title: 'IndicatorsBarChartWrapper', }; -const mockTimeRange: TimeRange = DEFAULT_TIME_RANGE; +const mockTimeRange: TimeRange = { from: '', to: '' }; const mockIndexPattern: DataView = { fields: [ @@ -161,16 +160,6 @@ InitialLoad.decorators = [(story) => {story()}]; export const UpdatingData: Story = () => { const mockIndicators: ChartSeries[] = [ - { - x: '1 Jan 2022 00:00:00 GMT', - y: 2, - g: '[Filebeat] AbuseCH Malware', - }, - { - x: '1 Jan 2022 00:00:00 GMT', - y: 10, - g: '[Filebeat] AbuseCH MalwareBazaar', - }, { x: '1 Jan 2022 06:00:00 GMT', y: 0, diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.test.tsx index 577afefe80834..2c1244445e6bb 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.test.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/components/barchart/wrapper.test.tsx @@ -11,7 +11,6 @@ import { TimeRange } from '@kbn/es-query'; import { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { TestProvidersComponent } from '../../../../common/mocks/test_providers'; import { CHART_UPDATE_PROGRESS_TEST_ID, IndicatorsBarChartWrapper } from '.'; -import { DEFAULT_TIME_RANGE } from '../../../query_bar/hooks/use_filters/utils'; import moment from 'moment'; jest.mock('../../../query_bar/hooks/use_filters'); @@ -29,7 +28,7 @@ const mockIndexPattern: DataView = { ], } as DataView; -const mockTimeRange: TimeRange = DEFAULT_TIME_RANGE; +const mockTimeRange: TimeRange = { from: '', to: '' }; describe('', () => { describe('when not loading or refetching', () => { diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/context.ts b/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/context.ts index b075668c5015e..d579b5f519fba 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/context.ts +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/context.ts @@ -6,18 +6,14 @@ */ import { createContext } from 'react'; -import { FilterManager, SavedQuery } from '@kbn/data-plugin/public'; import { Filter, Query, TimeRange } from '@kbn/es-query'; +import { FilterManager } from '@kbn/data-plugin/public'; export interface IndicatorsFiltersContextValue { - timeRange?: TimeRange; + timeRange: TimeRange; filters: Filter[]; filterQuery: Query; - handleSavedQuery: (savedQuery: SavedQuery | undefined) => void; - handleSubmitTimeRange: (timeRange?: TimeRange) => void; - handleSubmitQuery: (filterQuery: Query) => void; filterManager: FilterManager; - savedQuery?: SavedQuery; } export const IndicatorsFiltersContext = createContext( diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/indicators_filters.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/indicators_filters.tsx index 2e8a2b55e4384..2253b1c548968 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/indicators_filters.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/containers/indicators_filters/indicators_filters.tsx @@ -5,29 +5,16 @@ * 2.0. */ -import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { useHistory, useLocation } from 'react-router-dom'; -import { SavedQuery } from '@kbn/data-plugin/common'; -import { Filter, Query, TimeRange } from '@kbn/es-query'; -import deepEqual from 'fast-deep-equal'; -import { IndicatorsFiltersContext, IndicatorsFiltersContextValue } from './context'; +import React, { FC, useMemo } from 'react'; import { useKibana } from '../../../../hooks/use_kibana'; - -import { - DEFAULT_QUERY, - DEFAULT_TIME_RANGE, - encodeState, - FILTERS_QUERYSTRING_NAMESPACE, - stateFromQueryParams, -} from '../../../query_bar/hooks/use_filters/utils'; +import { useSecurityContext } from '../../../../hooks/use_security_context'; +import { IndicatorsFiltersContext, IndicatorsFiltersContextValue } from './context'; /** * Container used to wrap components and share the {@link FilterManager} through React context. */ export const IndicatorsFilters: FC = ({ children }) => { - const { pathname: browserPathName, search } = useLocation(); - const history = useHistory(); - const [savedQuery, setSavedQuery] = useState(undefined); + const securityContext = useSecurityContext(); const { services: { @@ -37,72 +24,18 @@ export const IndicatorsFilters: FC = ({ children }) => { }, } = useKibana(); - // Filters are picked using the UI widgets - const [filters, setFilters] = useState([]); - - // Time range is self explanatory - const [timeRange, setTimeRange] = useState(DEFAULT_TIME_RANGE); - - // filterQuery is raw kql query that user can type in to filter results - const [filterQuery, setFilterQuery] = useState(DEFAULT_QUERY); - - // Serialize filters into query string - useEffect(() => { - const filterStateAsString = encodeState({ filters, filterQuery, timeRange }); - if (!deepEqual(filterManager.getFilters(), filters)) { - filterManager.setFilters(filters); - } - - history.replace({ - pathname: browserPathName, - search: `${FILTERS_QUERYSTRING_NAMESPACE}=${filterStateAsString}`, - }); - }, [browserPathName, filterManager, filterQuery, filters, history, timeRange]); - - // Sync filterManager to local state (after they are changed from the ui) - useEffect(() => { - const subscription = filterManager.getUpdates$().subscribe(() => { - setFilters(filterManager.getFilters()); - }); - - return () => subscription.unsubscribe(); - }, [filterManager]); - - // Update local state with filter values from the url (on initial mount) - useEffect(() => { - const { - filters: filtersFromQuery, - timeRange: timeRangeFromQuery, - filterQuery: filterQueryFromQuery, - } = stateFromQueryParams(search); - - setTimeRange(timeRangeFromQuery); - setFilterQuery(filterQueryFromQuery); - setFilters(filtersFromQuery); - - // We only want to have it done on initial render with initial 'search' value; - // that is why 'search' is ommited from the deps array - - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [filterManager]); - - const onSavedQuery = useCallback( - (newSavedQuery: SavedQuery | undefined) => setSavedQuery(newSavedQuery), - [] - ); + const globalFilters = securityContext.useFilters(); + const globalQuery = securityContext.useQuery(); + const globalTimeRange = securityContext.useGlobalTime(); const contextValue: IndicatorsFiltersContextValue = useMemo( () => ({ - timeRange, - filters, - filterQuery, - handleSavedQuery: onSavedQuery, - handleSubmitTimeRange: setTimeRange, - handleSubmitQuery: setFilterQuery, + timeRange: globalTimeRange, + filters: globalFilters, + filterQuery: globalQuery, filterManager, - savedQuery, }), - [filterManager, filterQuery, filters, onSavedQuery, savedQuery, timeRange] + [globalFilters, globalQuery, globalTimeRange, filterManager] ); return ( diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.test.tsx index 7791020d58e02..04ca3311955f0 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.test.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.test.tsx @@ -7,17 +7,17 @@ import { act, renderHook } from '@testing-library/react-hooks'; import { useAggregatedIndicators, UseAggregatedIndicatorsParam } from './use_aggregated_indicators'; -import { DEFAULT_TIME_RANGE } from '../../query_bar/hooks/use_filters/utils'; import { mockedTimefilterService, TestProvidersComponent, } from '../../../common/mocks/test_providers'; import { createFetchAggregatedIndicators } from '../services'; +import { mockTimeRange } from '../../../common/mocks/mock_indicators_filters_context'; jest.mock('../services/fetch_aggregated_indicators'); const useAggregatedIndicatorsParams: UseAggregatedIndicatorsParam = { - timeRange: DEFAULT_TIME_RANGE, + timeRange: mockTimeRange, filters: [], filterQuery: { language: 'kuery', query: '' }, }; @@ -28,8 +28,7 @@ const renderUseAggregatedIndicators = () => wrapper: TestProvidersComponent, }); -// FLAKY: https://github.com/elastic/kibana/issues/142312 -describe.skip('useAggregatedIndicators()', () => { +describe('useAggregatedIndicators()', () => { beforeEach(jest.clearAllMocks); type MockedCreateFetchAggregatedIndicators = jest.MockedFunction< @@ -51,7 +50,7 @@ describe.skip('useAggregatedIndicators()', () => { it('should create and call the aggregatedIndicatorsQuery correctly', async () => { aggregatedIndicatorsQuery.mockResolvedValue([]); - const { result, rerender } = renderUseAggregatedIndicators(); + const { result, rerender, waitFor } = renderUseAggregatedIndicators(); // indicators service and the query should be called just once expect( @@ -73,6 +72,7 @@ describe.skip('useAggregatedIndicators()', () => { rerender({ filterQuery: { language: 'kuery', query: "threat.indicator.type: 'file'" }, filters: [], + timeRange: mockTimeRange, }) ); @@ -83,14 +83,17 @@ describe.skip('useAggregatedIndicators()', () => { }), expect.any(AbortSignal) ); + + await waitFor(() => !result.current.isLoading); + expect(result.current).toMatchInlineSnapshot(` Object { "dateRange": Object { "max": "2022-01-02T00:00:00.000Z", "min": "2022-01-01T00:00:00.000Z", }, - "isFetching": true, - "isLoading": true, + "isFetching": false, + "isLoading": false, "onFieldChange": [Function], "selectedField": "threat.feed.name", "series": Array [], diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.ts b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.ts index dd603d387c17f..1b3dcd33fea9b 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.ts +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_aggregated_indicators.ts @@ -12,7 +12,6 @@ import { TimeRangeBounds } from '@kbn/data-plugin/common'; import { useInspector } from '../../../hooks/use_inspector'; import { RawIndicatorFieldId } from '../../../../common/types/indicator'; import { useKibana } from '../../../hooks/use_kibana'; -import { DEFAULT_TIME_RANGE } from '../../query_bar/hooks/use_filters/utils'; import { useSourcererDataView } from '.'; import { ChartSeries, @@ -25,10 +24,7 @@ export interface UseAggregatedIndicatorsParam { * From and To values passed to the {@link useAggregatedIndicators} hook * to query indicators for the Indicators barchart. */ - timeRange?: TimeRange; - /** - * Filters data passed to the {@link useAggregatedIndicators} hook to query indicators. - */ + timeRange: TimeRange; filters: Filter[]; /** * Query data passed to the {@link useAggregatedIndicators} hook to query indicators. @@ -66,7 +62,7 @@ export interface UseAggregatedIndicatorsValue { const DEFAULT_FIELD = RawIndicatorFieldId.Feed; export const useAggregatedIndicators = ({ - timeRange = DEFAULT_TIME_RANGE, + timeRange, filters, filterQuery, }: UseAggregatedIndicatorsParam): UseAggregatedIndicatorsValue => { diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.test.tsx index 7292dbcd1b03a..42f6a4eb1fdb7 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.test.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.test.tsx @@ -9,6 +9,7 @@ import { renderHook, act } from '@testing-library/react-hooks'; import { useIndicators, UseIndicatorsParams, UseIndicatorsValue } from './use_indicators'; import { TestProvidersComponent } from '../../../common/mocks/test_providers'; import { createFetchIndicators } from '../services/fetch_indicators'; +import { mockTimeRange } from '../../../common/mocks/mock_indicators_filters_context'; jest.mock('../services/fetch_indicators'); @@ -16,6 +17,7 @@ const useIndicatorsParams: UseIndicatorsParams = { filters: [], filterQuery: { query: '', language: 'kuery' }, sorting: [], + timeRange: mockTimeRange, }; const indicatorsQueryResult = { indicators: [], total: 0 }; @@ -99,13 +101,15 @@ describe('useIndicators()', () => { expect.any(AbortSignal) ); + await hookResult.waitFor(() => !hookResult.result.current.isLoading); + expect(hookResult.result.current).toMatchInlineSnapshot(` Object { "handleRefresh": [Function], "indicatorCount": 0, "indicators": Array [], - "isFetching": true, - "isLoading": true, + "isFetching": false, + "isLoading": false, "onChangeItemsPerPage": [Function], "onChangePage": [Function], "pagination": Object { diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.ts b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.ts index 1855d411eb8c7..2352f302a1d4d 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.ts +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/hooks/use_indicators.ts @@ -22,7 +22,7 @@ export const DEFAULT_PAGE_SIZE = PAGE_SIZES[1]; export interface UseIndicatorsParams { filterQuery: Query; filters: Filter[]; - timeRange?: TimeRange; + timeRange: TimeRange; sorting: EuiDataGridSorting['columns']; } diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.test.tsx index 7740345f468d4..e46c605d1a90a 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.test.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.test.tsx @@ -14,6 +14,7 @@ import { useFilters } from '../query_bar/hooks/use_filters'; import moment from 'moment'; import { TestProvidersComponent } from '../../common/mocks/test_providers'; import { TABLE_TEST_ID } from './components/indicators_table'; +import { mockTimeRange } from '../../common/mocks/mock_indicators_filters_context'; jest.mock('../query_bar/hooks/use_filters'); jest.mock('./hooks/use_indicators'); @@ -47,9 +48,7 @@ describe('', () => { filters: [], filterQuery: { language: 'kuery', query: '' }, filterManager: {} as any, - handleSavedQuery: stub, - handleSubmitQuery: stub, - handleSubmitTimeRange: stub, + timeRange: mockTimeRange, }); }); @@ -59,9 +58,9 @@ describe('', () => { expect(queryByTestId(TABLE_TEST_ID)).toBeInTheDocument(); }); - it('should render the query input', () => { + it('should render SIEM Search Bar', () => { const { queryByTestId } = render(, { wrapper: TestProvidersComponent }); - expect(queryByTestId('iocListPageQueryInput')).toBeInTheDocument(); + expect(queryByTestId('SiemSearchBar')).toBeInTheDocument(); }); it('should render stack by selector', () => { diff --git a/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.tsx b/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.tsx index e0b5158274c15..511faaa73a7a0 100644 --- a/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.tsx +++ b/x-pack/plugins/threat_intelligence/public/modules/indicators/indicators_page.tsx @@ -13,13 +13,13 @@ import { useIndicators } from './hooks/use_indicators'; import { DefaultPageLayout } from '../../components/layout'; import { useFilters } from '../query_bar/hooks/use_filters'; import { FiltersGlobal } from '../../containers/filters_global'; -import QueryBar from '../query_bar/components/query_bar'; import { useSourcererDataView } from './hooks/use_sourcerer_data_view'; import { FieldTypesProvider } from '../../containers/field_types_provider'; import { InspectorProvider } from '../../containers/inspector'; import { useColumnSettings } from './components/indicators_table/hooks/use_column_settings'; import { useAggregatedIndicators } from './hooks/use_aggregated_indicators'; import { IndicatorsFilters } from './containers/indicators_filters'; +import { useSecurityContext } from '../../hooks/use_security_context'; const queryClient = new QueryClient(); @@ -38,19 +38,9 @@ const IndicatorsPageContent: VFC = () => { const columnSettings = useColumnSettings(); - const { - timeRange, - filters, - filterManager, - filterQuery, - handleSubmitQuery, - handleSubmitTimeRange, - handleSavedQuery, - savedQuery, - } = useFilters(); + const { timeRange, filters, filterQuery } = useFilters(); const { - handleRefresh, indicatorCount, indicators, onChangeItemsPerPage, @@ -78,25 +68,13 @@ const IndicatorsPageContent: VFC = () => { filterQuery, }); + const { SiemSearchBar } = useSecurityContext(); + return ( - + {} }, -}; - -const Template: ComponentStory = (args) => ( - - - {' '} - - -); - -export const Basic = Template.bind({}); - -Basic.args = { - indexPattern: {} as any, - filterManager: {} as any, - filters: [], - filterQuery: { language: 'kuery', query: '' }, -}; diff --git a/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.test.tsx deleted file mode 100644 index 2ab2795e138bd..0000000000000 --- a/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.test.tsx +++ /dev/null @@ -1,83 +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 React from 'react'; -import { render, screen, act, waitFor } from '@testing-library/react'; -import { QueryBar } from './query_bar'; -import userEvent from '@testing-library/user-event'; - -import { FilterManager } from '@kbn/data-plugin/public'; - -import { coreMock } from '@kbn/core/public/mocks'; -import { TestProvidersComponent } from '../../../../common/mocks/test_providers'; -import { getByTestSubj } from '../../../../../common/test/utils'; - -const mockUiSettingsForFilterManager = coreMock.createStart().uiSettings; - -const filterManager = new FilterManager(mockUiSettingsForFilterManager); - -describe('QueryBar ', () => { - const onSubmitQuery = jest.fn(); - const onSubmitDateRange = jest.fn(); - const onSavedQuery = jest.fn(); - const onChangedQuery = jest.fn(); - - beforeEach(async () => { - await act(async () => { - render( - - - - ); - }); - - // Some parts of this are lazy loaded, we need to wait for quert input to appear before tests can be done - await waitFor(() => screen.queryByRole('input')); - }); - - it('should call onSubmitDateRange when date range is changed', async () => { - expect(getByTestSubj('superDatePickerToggleQuickMenuButton')).toBeInTheDocument(); - - await act(async () => { - userEvent.click(getByTestSubj('superDatePickerToggleQuickMenuButton')); - }); - - await act(async () => { - screen.getByText('Apply').click(); - }); - - expect(onSubmitDateRange).toHaveBeenCalled(); - }); - - it('should call onSubmitQuery when query is changed', async () => { - const queryInput = getByTestSubj('queryInput'); - - await act(async () => { - userEvent.type(queryInput, 'one_serious_query'); - }); - - expect(onChangedQuery).toHaveBeenCalledWith( - expect.objectContaining({ language: 'kuery', query: expect.any(String) }) - ); - - await act(async () => { - screen.getByText('Refresh').click(); - }); - - expect(onSubmitQuery).toHaveBeenCalled(); - }); -}); diff --git a/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.tsx b/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.tsx deleted file mode 100644 index e564c898f894a..0000000000000 --- a/x-pack/plugins/threat_intelligence/public/modules/query_bar/components/query_bar/query_bar.tsx +++ /dev/null @@ -1,179 +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 React, { memo, useMemo, useCallback } from 'react'; -import deepEqual from 'fast-deep-equal'; - -import { DataView } from '@kbn/data-views-plugin/public'; -import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; -import { - FilterManager, - TimeHistory, - SavedQuery, - SavedQueryTimeFilter, -} from '@kbn/data-plugin/public'; -import { SearchBar, SearchBarProps } from '@kbn/unified-search-plugin/public'; -import { Storage } from '@kbn/kibana-utils-plugin/public'; -import { SecuritySolutionDataViewBase } from '../../../../types'; - -interface QueryPayload { - dateRange: TimeRange; - query?: Query | AggregateQuery; -} - -/** - * User defined type guard to verify if we are dealing with Query param - * @param query query param to test - * @returns - */ -const isQuery = (query?: Query | AggregateQuery | null): query is Query => { - return !!query && Object.prototype.hasOwnProperty.call(query, 'query'); -}; - -export interface QueryBarComponentProps { - dataTestSubj?: string; - dateRangeFrom?: string; - dateRangeTo?: string; - hideSavedQuery?: boolean; - indexPattern: SecuritySolutionDataViewBase; - isLoading?: boolean; - isRefreshPaused?: boolean; - filterQuery: Query; - filterManager: FilterManager; - filters: Filter[]; - onRefresh: VoidFunction; - onChangedQuery?: (query: Query) => void; - onChangedDateRange?: (dateRange?: TimeRange) => void; - onSubmitQuery: (query: Query, timefilter?: SavedQueryTimeFilter) => void; - onSubmitDateRange: (dateRange?: TimeRange) => void; - refreshInterval?: number; - savedQuery?: SavedQuery; - onSavedQuery: (savedQuery: SavedQuery | undefined) => void; - displayStyle?: SearchBarProps['displayStyle']; -} - -export const INDICATOR_FILTER_DROP_AREA = 'indicator-filter-drop-area'; - -export const QueryBar = memo( - ({ - dateRangeFrom, - dateRangeTo, - hideSavedQuery = false, - indexPattern, - isLoading = false, - isRefreshPaused, - filterQuery, - filterManager, - filters, - refreshInterval, - savedQuery, - dataTestSubj, - displayStyle, - onChangedQuery, - onSubmitQuery, - onChangedDateRange, - onSubmitDateRange, - onSavedQuery, - onRefresh, - }) => { - const onQuerySubmit = useCallback( - ({ query, dateRange }: QueryPayload) => { - if (dateRange != null) { - onSubmitDateRange(dateRange); - } - - if (isQuery(query) && !deepEqual(query, filterQuery)) { - onSubmitQuery(query); - } else { - onRefresh(); - } - }, - [filterQuery, onRefresh, onSubmitDateRange, onSubmitQuery] - ); - - const onQueryChange = useCallback( - ({ query, dateRange }: QueryPayload) => { - if (!onChangedQuery) { - return; - } - - if (isQuery(query) && !deepEqual(query, filterQuery)) { - onChangedQuery(query); - } - - if (onChangedDateRange && dateRange != null) { - onChangedDateRange(dateRange); - } - }, - [filterQuery, onChangedDateRange, onChangedQuery] - ); - - const onSavedQueryUpdated = useCallback( - (savedQueryUpdated: SavedQuery) => { - const { query: newQuery, filters: newFilters, timefilter } = savedQueryUpdated.attributes; - onSubmitQuery(newQuery, timefilter); - filterManager.setFilters(newFilters || []); - onSavedQuery(savedQueryUpdated); - }, - [filterManager, onSubmitQuery, onSavedQuery] - ); - - const onClearSavedQuery = useCallback(() => { - if (savedQuery != null) { - onSubmitQuery({ - query: '', - language: savedQuery.attributes.query.language, - }); - filterManager.setFilters([]); - onSavedQuery(undefined); - } - }, [filterManager, onSubmitQuery, onSavedQuery, savedQuery]); - - const onFiltersUpdated = useCallback( - (newFilters: Filter[]) => { - return filterManager.setFilters(newFilters); - }, - [filterManager] - ); - - const timeHistory = useMemo(() => new TimeHistory(new Storage(localStorage)), []); - - const indexPatterns = useMemo(() => [indexPattern], [indexPattern]); - - return ( - - ); - } -); - -QueryBar.displayName = 'QueryBar'; diff --git a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/use_filters.test.tsx b/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/use_filters.test.tsx deleted file mode 100644 index 4d34c9ee6ff0f..0000000000000 --- a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/use_filters.test.tsx +++ /dev/null @@ -1,165 +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 { mockUseKibanaForFilters } from '../../../../common/mocks/mock_use_kibana_for_filters'; -import { renderHook, act, RenderHookResult, Renderer } from '@testing-library/react-hooks'; -import { useFilters, UseFiltersValue } from './use_filters'; - -import { useLocation, useHistory } from 'react-router-dom'; -import { Filter } from '@kbn/es-query'; -import { TestProvidersComponent } from '../../../../common/mocks/test_providers'; -import React, { FC } from 'react'; -import { IndicatorsFilters } from '../../../indicators/containers/indicators_filters'; - -jest.mock('react-router-dom', () => ({ - MemoryRouter: ({ children }: any) => <>{children}, - useLocation: jest.fn().mockReturnValue({ pathname: '', search: '' }), - useHistory: jest.fn().mockReturnValue({ replace: jest.fn() }), -})); - -const FiltersWrapper: FC = ({ children }) => ( - - {children}{' '} - -); - -const renderUseFilters = () => renderHook(() => useFilters(), { wrapper: FiltersWrapper }); - -describe('useFilters()', () => { - let hookResult: RenderHookResult<{}, UseFiltersValue, Renderer>; - let mockRef: ReturnType; - - afterAll(() => jest.unmock('react-router-dom')); - - describe('when mounted', () => { - beforeEach(async () => { - mockRef = mockUseKibanaForFilters(); - - hookResult = renderUseFilters(); - }); - - it('should have valid initial filterQuery value', () => { - expect(hookResult.result.current.filterQuery).toMatchObject({ language: 'kuery', query: '' }); - }); - - describe('when query string is populated', () => { - it('should try to compute the initial state based on query string', async () => { - (useLocation as jest.Mock).mockReturnValue({ - search: - '?indicators=(filterQuery:(language:kuery,query:%27threat.indicator.type%20:%20"file"%20%27),filters:!(),timeRange:(from:now/d,to:now/d))', - }); - - hookResult = renderUseFilters(); - - expect(hookResult.result.current.filterQuery).toMatchObject({ - language: 'kuery', - query: 'threat.indicator.type : "file" ', - }); - }); - }); - }); - - describe('when filter values change', () => { - const historyReplace = jest.fn(); - beforeEach(async () => { - mockRef = mockUseKibanaForFilters(); - - hookResult = renderUseFilters(); - - (useHistory as jest.Mock).mockReturnValue({ replace: historyReplace }); - - historyReplace.mockClear(); - }); - - describe('when filters change', () => { - it('should update history entry', async () => { - const newFilterEntry = { query: { filter: 'new_filter' }, meta: {} }; - - // Make sure new filter value is returned from filter manager before signalling an update - // to subscribers - mockRef.getFilters.mockReturnValue([newFilterEntry] as Filter[]); - - // Emit the filterManager update to see how it propagates to local component state - await act(async () => { - mockRef.$filterUpdates.next(void 0); - }); - - // Internally, filters should be loaded from filterManager - expect(mockRef.getFilters).toHaveBeenCalled(); - - // Serialized into browser query string - expect(historyReplace).toHaveBeenCalledWith( - expect.objectContaining({ search: expect.stringMatching(/new_filter/) }) - ); - - // And updated in local hook state - expect(hookResult.result.current.filters).toContain(newFilterEntry); - }); - }); - - describe('when time range changes', () => { - const newTimeRange = { from: 'dawnOfTime', to: 'endOfTime' }; - - const updateTime = async () => { - // After new time range is selected - await act(async () => { - hookResult.result.current.handleSubmitTimeRange(newTimeRange); - }); - }; - - it('should update its local state', async () => { - expect(hookResult.result.current.timeRange).toBeDefined(); - expect(hookResult.result.current.timeRange).not.toEqual(newTimeRange); - - // After new time range is selected - await updateTime(); - - // Local filter state should be updated - expect(hookResult.result.current.timeRange).toEqual(newTimeRange); - }); - - it('should update history entry', async () => { - expect(historyReplace).not.toHaveBeenCalledWith( - expect.objectContaining({ search: expect.stringMatching(/dawnOfTime/) }) - ); - - // After new time range is selected - await updateTime(); - - // Query string should be updated - expect(historyReplace).toHaveBeenCalledWith( - expect.objectContaining({ search: expect.stringMatching(/dawnOfTime/) }) - ); - }); - }); - - describe('when filterQuery changes', () => { - beforeEach(async () => { - // After new time range is selected - await act(async () => { - hookResult.result.current.handleSubmitQuery({ - query: 'threat.indicator.type : *', - language: 'kuery', - }); - }); - }); - - it('should update history entry', async () => { - expect(historyReplace).toHaveBeenCalledWith( - expect.objectContaining({ search: expect.stringMatching(/threat\.indicator\.type/) }) - ); - }); - - it('should update local state', () => { - expect(hookResult.result.current.filterQuery).toMatchObject({ - language: 'kuery', - query: 'threat.indicator.type : *', - }); - }); - }); - }); -}); diff --git a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.test.ts b/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.test.ts deleted file mode 100644 index df0bffa1c85f1..0000000000000 --- a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.test.ts +++ /dev/null @@ -1,68 +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 { stateFromQueryParams } from './utils'; - -describe('encodeState()', () => {}); - -describe('stateFromQueryParams()', () => { - it('should return valid state object from invalid query', () => { - expect(stateFromQueryParams('')).toMatchObject({ - filterQuery: expect.any(Object), - timeRange: expect.any(Object), - filters: expect.any(Array), - }); - }); - - it('should return valid state when indicators fields is invalid', () => { - expect(stateFromQueryParams('?indicators=')).toMatchObject({ - filterQuery: expect.any(Object), - timeRange: expect.any(Object), - filters: expect.any(Array), - }); - }); - - it('should deserialize valid query state', () => { - expect( - stateFromQueryParams( - '?indicators=(filterQuery:(language:kuery,query:%27threat.indicator.type%20:%20"file"%20or%20threat.indicator.type%20:%20"url"%20%27),filters:!((%27$state%27:(store:appState),meta:(alias:!n,disabled:!f,index:%27%27,key:_id,negate:!f,type:exists,value:exists),query:(exists:(field:_id)))),timeRange:(from:now-1y/d,to:now))' - ) - ).toMatchInlineSnapshot(` - Object { - "filterQuery": Object { - "language": "kuery", - "query": "threat.indicator.type : \\"file\\" or threat.indicator.type : \\"url\\" ", - }, - "filters": Array [ - Object { - "$state": Object { - "store": "appState", - }, - "meta": Object { - "alias": null, - "disabled": false, - "index": "", - "key": "_id", - "negate": false, - "type": "exists", - "value": "exists", - }, - "query": Object { - "exists": Object { - "field": "_id", - }, - }, - }, - ], - "timeRange": Object { - "from": "now-1y/d", - "to": "now", - }, - } - `); - }); -}); diff --git a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.ts b/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.ts deleted file mode 100644 index f020367ff3cb1..0000000000000 --- a/x-pack/plugins/threat_intelligence/public/modules/query_bar/hooks/use_filters/utils.ts +++ /dev/null @@ -1,73 +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 { Filter, Query, TimeRange } from '@kbn/es-query'; -import { parse } from 'query-string'; -import { decode, encode } from 'rison-node'; - -export const FILTERS_QUERYSTRING_NAMESPACE = 'indicators'; - -export const DEFAULT_TIME_RANGE = { from: 'now/d', to: 'now/d' }; - -export const DEFAULT_QUERY: Readonly = { query: '', language: 'kuery' }; - -const INITIAL_FILTERS_STATE: Readonly = { - filters: [], - timeRange: DEFAULT_TIME_RANGE, - filterQuery: DEFAULT_QUERY, -}; - -interface SerializableFilterState { - timeRange?: TimeRange; - filterQuery: Query; - filters: Filter[]; -} - -/** - * Converts filter state to query string - * @param filterState Serializable filter state to convert into query string - * @returns - */ -export const encodeState = (filterState: SerializableFilterState): string => - encode(filterState as any); - -/** - * - * @param encodedFilterState Serialized filter state to decode - * @returns - */ -const decodeState = (encodedFilterState: string): SerializableFilterState | null => - decode(encodedFilterState) as unknown as SerializableFilterState; - -/** - * Find and convert filter state stored within query string into object literal - * @param searchString Brower query string containing encoded filter information, within single query field - * @returns SerializableFilterState with all the relevant fields ready to use - */ -export const stateFromQueryParams = (searchString: string): SerializableFilterState => { - const { [FILTERS_QUERYSTRING_NAMESPACE]: filtersSerialized } = parse(searchString); - - if (!filtersSerialized) { - return INITIAL_FILTERS_STATE; - } - - if (Array.isArray(filtersSerialized)) { - throw new Error('serialized filters should not be an array'); - } - - const deserializedFilters = decodeState(filtersSerialized); - - if (!deserializedFilters) { - return INITIAL_FILTERS_STATE; - } - - return { - ...INITIAL_FILTERS_STATE, - ...deserializedFilters, - timeRange: deserializedFilters.timeRange || DEFAULT_TIME_RANGE, - }; -}; diff --git a/x-pack/plugins/threat_intelligence/public/types.ts b/x-pack/plugins/threat_intelligence/public/types.ts index f803231e97587..33d49e2d68c15 100644 --- a/x-pack/plugins/threat_intelligence/public/types.ts +++ b/x-pack/plugins/threat_intelligence/public/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ComponentType, ReactElement, ReactNode } from 'react'; +import { ComponentType, ReactElement, ReactNode, VFC } from 'react'; import { CoreStart } from '@kbn/core/public'; import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { @@ -16,7 +16,7 @@ import { import { Storage } from '@kbn/kibana-utils-plugin/public'; import { TimelinesUIStart } from '@kbn/timelines-plugin/public'; import type { TriggersAndActionsUIPublicPluginStart as TriggersActionsStart } from '@kbn/triggers-actions-ui-plugin/public'; -import { DataViewBase } from '@kbn/es-query'; +import { DataViewBase, Filter, Query, TimeRange } from '@kbn/es-query'; import { BrowserField } from '@kbn/rule-registry-plugin/common'; import { Store } from 'redux'; import { DataProvider } from '@kbn/timelines-plugin/common'; @@ -102,4 +102,10 @@ export interface SecuritySolutionPluginContext { from, to, }: UseInvestigateInTimelineProps) => () => Promise; + + useQuery: () => Query; + useFilters: () => Filter[]; + useGlobalTime: () => TimeRange; + + SiemSearchBar: VFC; } From d675d91c944c59fa07abf883ec0f3cf970f48d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Mon, 3 Oct 2022 12:44:32 -0400 Subject: [PATCH 33/51] [APM] Refactoring API test to use synthtrace (#142260) * error rate with synthtrace * latency with synthtrace * adding production env test * addressing pr comments --- .../__snapshots__/error_rate.spec.snap | 268 -------------- .../__snapshots__/latency.spec.snap | 131 ------- .../tests/transactions/error_rate.spec.ts | 331 +++++++++--------- .../tests/transactions/latency.spec.ts | 237 +++++-------- 4 files changed, 263 insertions(+), 704 deletions(-) delete mode 100644 x-pack/test/apm_api_integration/tests/transactions/__snapshots__/error_rate.spec.snap delete mode 100644 x-pack/test/apm_api_integration/tests/transactions/__snapshots__/latency.spec.snap diff --git a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/error_rate.spec.snap b/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/error_rate.spec.snap deleted file mode 100644 index c4dfaf346d015..0000000000000 --- a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/error_rate.spec.snap +++ /dev/null @@ -1,268 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`APM API tests basic apm_8.0.0 Error rate when data is loaded returns the transaction error rate has the correct error rate 1`] = ` -Array [ - Object { - "x": 1627973400000, - "y": 0, - }, - Object { - "x": 1627973460000, - "y": 0, - }, - Object { - "x": 1627973520000, - "y": 0.333333333333333, - }, - Object { - "x": 1627973580000, - "y": 0.181818181818182, - }, - Object { - "x": 1627973640000, - "y": 0, - }, - Object { - "x": 1627973700000, - "y": 0, - }, - Object { - "x": 1627973760000, - "y": 0.166666666666667, - }, - Object { - "x": 1627973820000, - "y": 0.181818181818182, - }, - Object { - "x": 1627973880000, - "y": 0, - }, - Object { - "x": 1627973940000, - "y": 0, - }, - Object { - "x": 1627974000000, - "y": 0.0833333333333333, - }, - Object { - "x": 1627974060000, - "y": 0.0769230769230769, - }, - Object { - "x": 1627974120000, - "y": 0, - }, - Object { - "x": 1627974180000, - "y": 0.1, - }, - Object { - "x": 1627974240000, - "y": 0.153846153846154, - }, - Object { - "x": 1627974300000, - "y": 0, - }, - Object { - "x": 1627974360000, - "y": null, - }, - Object { - "x": 1627974420000, - "y": 0, - }, - Object { - "x": 1627974480000, - "y": 0, - }, - Object { - "x": 1627974540000, - "y": 0, - }, - Object { - "x": 1627974600000, - "y": 0.125, - }, - Object { - "x": 1627974660000, - "y": 0.6, - }, - Object { - "x": 1627974720000, - "y": 0.2, - }, - Object { - "x": 1627974780000, - "y": 0, - }, - Object { - "x": 1627974840000, - "y": 0, - }, - Object { - "x": 1627974900000, - "y": 0.0666666666666667, - }, - Object { - "x": 1627974960000, - "y": 0, - }, - Object { - "x": 1627975020000, - "y": 0, - }, - Object { - "x": 1627975080000, - "y": 0, - }, - Object { - "x": 1627975140000, - "y": 0.181818181818182, - }, - Object { - "x": 1627975200000, - "y": null, - }, -] -`; - -exports[`APM API tests basic apm_8.0.0 Error rate when data is loaded returns the transaction error rate with comparison data has the correct error rate 1`] = ` -Array [ - Object { - "x": 1627974300000, - "y": 0, - }, - Object { - "x": 1627974360000, - "y": null, - }, - Object { - "x": 1627974420000, - "y": 0, - }, - Object { - "x": 1627974480000, - "y": 0, - }, - Object { - "x": 1627974540000, - "y": 0, - }, - Object { - "x": 1627974600000, - "y": 0.125, - }, - Object { - "x": 1627974660000, - "y": 0.6, - }, - Object { - "x": 1627974720000, - "y": 0.2, - }, - Object { - "x": 1627974780000, - "y": 0, - }, - Object { - "x": 1627974840000, - "y": 0, - }, - Object { - "x": 1627974900000, - "y": 0.0666666666666667, - }, - Object { - "x": 1627974960000, - "y": 0, - }, - Object { - "x": 1627975020000, - "y": 0, - }, - Object { - "x": 1627975080000, - "y": 0, - }, - Object { - "x": 1627975140000, - "y": 0.181818181818182, - }, - Object { - "x": 1627975200000, - "y": null, - }, -] -`; - -exports[`APM API tests basic apm_8.0.0 Error rate when data is loaded returns the transaction error rate with comparison data has the correct error rate 2`] = ` -Array [ - Object { - "x": 1627974300000, - "y": 0, - }, - Object { - "x": 1627974360000, - "y": 0, - }, - Object { - "x": 1627974420000, - "y": 0.333333333333333, - }, - Object { - "x": 1627974480000, - "y": 0.181818181818182, - }, - Object { - "x": 1627974540000, - "y": 0, - }, - Object { - "x": 1627974600000, - "y": 0, - }, - Object { - "x": 1627974660000, - "y": 0.166666666666667, - }, - Object { - "x": 1627974720000, - "y": 0.181818181818182, - }, - Object { - "x": 1627974780000, - "y": 0, - }, - Object { - "x": 1627974840000, - "y": 0, - }, - Object { - "x": 1627974900000, - "y": 0.0833333333333333, - }, - Object { - "x": 1627974960000, - "y": 0.0769230769230769, - }, - Object { - "x": 1627975020000, - "y": 0, - }, - Object { - "x": 1627975080000, - "y": 0.1, - }, - Object { - "x": 1627975140000, - "y": 0.153846153846154, - }, - Object { - "x": 1627975200000, - "y": null, - }, -] -`; diff --git a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/latency.spec.snap b/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/latency.spec.snap deleted file mode 100644 index dec67450bdbda..0000000000000 --- a/x-pack/test/apm_api_integration/tests/transactions/__snapshots__/latency.spec.snap +++ /dev/null @@ -1,131 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`APM API tests basic apm_8.0.0 Latency with a basic license when data is loaded time comparison returns some data 1`] = ` -Array [ - Object { - "x": 1627974300000, - "y": 22799, - }, - Object { - "x": 1627974360000, - "y": 3227391, - }, - Object { - "x": 1627974420000, - "y": 15565.2222222222, - }, - Object { - "x": 1627974480000, - "y": 54307.5714285714, - }, - Object { - "x": 1627974540000, - "y": 16655, - }, - Object { - "x": 1627974600000, - "y": 9453, - }, - Object { - "x": 1627974660000, - "y": 31119, - }, - Object { - "x": 1627974720000, - "y": 15282.2, - }, - Object { - "x": 1627974780000, - "y": 18709, - }, - Object { - "x": 1627974840000, - "y": 12095, - }, - Object { - "x": 1627974900000, - "y": 16291, - }, - Object { - "x": 1627974960000, - "y": 13444.3333333333, - }, - Object { - "x": 1627975020000, - "y": 13241.6666666667, - }, - Object { - "x": 1627975080000, - "y": 25535, - }, - Object { - "x": 1627975140000, - "y": 11024.6, - }, -] -`; - -exports[`APM API tests basic apm_8.0.0 Latency with a basic license when data is loaded time comparison returns some data 2`] = ` -Array [ - Object { - "x": 1627974300000, - "y": 34866.2, - }, - Object { - "x": 1627974360000, - "y": 104799, - }, - Object { - "x": 1627974420000, - "y": 36247, - }, - Object { - "x": 1627974480000, - "y": 22207, - }, - Object { - "x": 1627974540000, - "y": 80191, - }, - Object { - "x": 1627974600000, - "y": 11520.4545454545, - }, - Object { - "x": 1627974660000, - "y": 47031.8888888889, - }, - Object { - "x": 1627974720000, - "y": 30249.6666666667, - }, - Object { - "x": 1627974780000, - "y": 14868.3333333333, - }, - Object { - "x": 1627974840000, - "y": 17199, - }, - Object { - "x": 1627974900000, - "y": 19837.2222222222, - }, - Object { - "x": 1627974960000, - "y": 19397.6666666667, - }, - Object { - "x": 1627975020000, - "y": 22473.6666666667, - }, - Object { - "x": 1627975080000, - "y": 11362.2, - }, - Object { - "x": 1627975140000, - "y": 26319, - }, -] -`; diff --git a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts index ee834a8936496..8df3f9e17558f 100644 --- a/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts +++ b/x-pack/test/apm_api_integration/tests/transactions/error_rate.spec.ts @@ -4,12 +4,15 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { apm, timerange } from '@kbn/apm-synthtrace'; import expect from '@kbn/expect'; import { first, last } from 'lodash'; import moment from 'moment'; -import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api'; -import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; +import { + APIClientRequestParamsOf, + APIReturnType, +} from '@kbn/apm-plugin/public/services/rest/create_call_apm_api'; +import { RecursivePartial } from '@kbn/apm-plugin/typings/common'; import { FtrProviderContext } from '../../common/ftr_provider_context'; type ErrorRate = @@ -18,48 +21,36 @@ type ErrorRate = export default function ApiTest({ getService }: FtrProviderContext) { const registry = getService('registry'); const apmApiClient = getService('apmApiClient'); - - const archiveName = 'apm_8.0.0'; + const synthtraceEsClient = getService('synthtraceEsClient'); // url parameters - const { start, end } = archives_metadata[archiveName]; - const transactionType = 'request'; - - async function fetchErrorCharts({ - serviceName, - query, - }: { - serviceName: string; - query: { - start: string; - end: string; - transactionType: string; - environment: string; - kuery: string; - offset?: string; - }; - }) { + const start = new Date('2021-01-01T00:00:00.000Z').getTime(); + const end = new Date('2021-01-01T00:15:00.000Z').getTime() - 1; + + async function fetchErrorCharts( + overrides?: RecursivePartial< + APIClientRequestParamsOf<'GET /internal/apm/services/{serviceName}/transactions/charts/error_rate'>['params'] + > + ) { return await apmApiClient.readUser({ endpoint: `GET /internal/apm/services/{serviceName}/transactions/charts/error_rate`, params: { - path: { serviceName }, - query, + path: { serviceName: overrides?.path?.serviceName || 'opbeans-go' }, + query: { + start: new Date(start).toISOString(), + end: new Date(end).toISOString(), + transactionType: 'request', + environment: 'ENVIRONMENT_ALL', + kuery: '', + ...overrides?.query, + }, }, }); } registry.when('Error rate when data is not loaded', { config: 'basic', archives: [] }, () => { it('handles the empty state', async () => { - const response = await fetchErrorCharts({ - serviceName: 'opbeans-java', - query: { - start, - end, - transactionType, - environment: 'ENVIRONMENT_ALL', - kuery: '', - }, - }); + const response = await fetchErrorCharts(); expect(response.status).to.be(200); const body = response.body as ErrorRate; @@ -71,14 +62,9 @@ export default function ApiTest({ getService }: FtrProviderContext) { it('handles the empty state with comparison data', async () => { const response = await fetchErrorCharts({ - serviceName: 'opbeans-java', query: { - transactionType, - start: moment(end).subtract(15, 'minutes').toISOString(), - end, - offset: '15m', - environment: 'ENVIRONMENT_ALL', - kuery: '', + start: moment(end).subtract(7, 'minutes').toISOString(), + offset: '7m', }, }); expect(response.status).to.be(200); @@ -91,149 +77,174 @@ export default function ApiTest({ getService }: FtrProviderContext) { }); }); - registry.when( - 'Error rate when data is loaded', - { config: 'basic', archives: [archiveName] }, - () => { - describe('returns the transaction error rate', () => { - let errorRateResponse: ErrorRate; - - before(async () => { - const response = await fetchErrorCharts({ - serviceName: 'opbeans-java', - query: { - start, - end, - transactionType, - environment: 'ENVIRONMENT_ALL', - kuery: '', - }, - }); - - errorRateResponse = response.body; - }); - - it('returns some data', () => { - expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0); - expect(errorRateResponse.previousPeriod.average).to.be(null); + registry.when('Error rate when data is loaded', { config: 'basic', archives: [] }, () => { + const config = { + firstTransaction: { + name: 'GET /apple 🍎 ', + successRate: 50, + failureRate: 50, + }, + }; + before(async () => { + const serviceGoProdInstance = apm + .service({ name: 'opbeans-go', environment: 'production', agentName: 'go' }) + .instance('instance-a'); + + const { firstTransaction } = config; + + const documents = timerange(start, end) + .ratePerMinute(firstTransaction.successRate) + .generator((timestamp) => + serviceGoProdInstance + .transaction({ transactionName: firstTransaction.name }) + .timestamp(timestamp) + .duration(1000) + .success() + ) + .merge( + timerange(start, end) + .ratePerMinute(firstTransaction.failureRate) + .generator((timestamp) => + serviceGoProdInstance + .transaction({ transactionName: firstTransaction.name }) + .errors( + serviceGoProdInstance + .error({ + message: 'Error 1', + type: firstTransaction.name, + groupingName: 'Error test', + }) + .timestamp(timestamp) + ) + .duration(1000) + .timestamp(timestamp) + .failure() + ) + ); + + await synthtraceEsClient.index(documents); + }); - expect(errorRateResponse.currentPeriod.timeseries.length).to.be.greaterThan(0); - expect(errorRateResponse.previousPeriod.timeseries).to.empty(); + after(() => synthtraceEsClient.clean()); - const nonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter( - ({ y }) => y !== null - ); + describe('returns the transaction error rate', () => { + let errorRateResponse: ErrorRate; - expect(nonNullDataPoints.length).to.be.greaterThan(0); + before(async () => { + const response = await fetchErrorCharts({ + query: { transactionName: config.firstTransaction.name }, }); + errorRateResponse = response.body; + }); - it('has the correct start date', () => { - expectSnapshot( - new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T06:50:00.000Z"`); - }); + it('returns some data', () => { + expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0); + expect(errorRateResponse.previousPeriod.average).to.be(null); - it('has the correct end date', () => { - expectSnapshot( - new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T07:20:00.000Z"`); - }); + expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty(); + expect(errorRateResponse.previousPeriod.timeseries).to.empty(); - it('has the correct number of buckets', () => { - expectSnapshot(errorRateResponse.currentPeriod.timeseries.length).toMatchInline(`31`); - }); + const nonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter( + ({ y }) => y !== null + ); - it('has the correct calculation for average', () => { - expectSnapshot(errorRateResponse.currentPeriod.average).toMatchInline( - `0.0848214285714286` - ); - }); + expect(nonNullDataPoints).not.to.be.empty(); + }); - it('has the correct error rate', () => { - expectSnapshot(errorRateResponse.currentPeriod.timeseries).toMatch(); - }); + it('has the correct start date', () => { + expect( + new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:00:00.000Z'); + }); + + it('has the correct end date', () => { + expect( + new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:14:00.000Z'); + }); + + it('has the correct number of buckets', () => { + expect(errorRateResponse.currentPeriod.timeseries.length).to.be.eql(15); }); - describe('returns the transaction error rate with comparison data', () => { - let errorRateResponse: ErrorRate; + it('has the correct calculation for average', () => { + expect(errorRateResponse.currentPeriod.average).to.eql( + config.firstTransaction.failureRate / 100 + ); + }); + }); - before(async () => { - const response = await fetchErrorCharts({ - serviceName: 'opbeans-java', - query: { - transactionType, - start: moment(end).subtract(15, 'minutes').toISOString(), - end, - offset: '15m', - environment: 'ENVIRONMENT_ALL', - kuery: '', - }, - }); + describe('returns the transaction error rate with comparison data', () => { + let errorRateResponse: ErrorRate; - errorRateResponse = response.body; + before(async () => { + const response = await fetchErrorCharts({ + query: { + transactionName: config.firstTransaction.name, + start: moment(end).subtract(7, 'minutes').toISOString(), + offset: '7m', + }, }); - it('returns some data', () => { - expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0); - expect(errorRateResponse.previousPeriod.average).to.be.greaterThan(0); + errorRateResponse = response.body; + }); - expect(errorRateResponse.currentPeriod.timeseries.length).to.be.greaterThan(0); - expect(errorRateResponse.previousPeriod.timeseries.length).to.be.greaterThan(0); + it('returns some data', () => { + expect(errorRateResponse.currentPeriod.average).to.be.greaterThan(0); + expect(errorRateResponse.previousPeriod.average).to.be.greaterThan(0); - const currentPeriodNonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter( - ({ y }) => y !== null - ); + expect(errorRateResponse.currentPeriod.timeseries).not.to.be.empty(); + expect(errorRateResponse.previousPeriod.timeseries).not.to.be.empty(); - const previousPeriodNonNullDataPoints = - errorRateResponse.previousPeriod.timeseries.filter(({ y }) => y !== null); + const currentPeriodNonNullDataPoints = errorRateResponse.currentPeriod.timeseries.filter( + ({ y }) => y !== null + ); - expect(currentPeriodNonNullDataPoints.length).to.be.greaterThan(0); - expect(previousPeriodNonNullDataPoints.length).to.be.greaterThan(0); - }); + const previousPeriodNonNullDataPoints = errorRateResponse.previousPeriod.timeseries.filter( + ({ y }) => y !== null + ); - it('has the correct start date', () => { - expectSnapshot( - new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T07:05:00.000Z"`); - expectSnapshot( - new Date(first(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T07:05:00.000Z"`); - }); + expect(currentPeriodNonNullDataPoints).not.to.be.empty(); + expect(previousPeriodNonNullDataPoints).not.to.be.empty(); + }); - it('has the correct end date', () => { - expectSnapshot( - new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T07:20:00.000Z"`); - expectSnapshot( - new Date(last(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString() - ).toMatchInline(`"2021-08-03T07:20:00.000Z"`); - }); + it('has the correct start date', () => { + expect( + new Date(first(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:07:00.000Z'); + expect( + new Date(first(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:07:00.000Z'); + }); - it('has the correct number of buckets', () => { - expectSnapshot(errorRateResponse.currentPeriod.timeseries.length).toMatchInline(`16`); - expectSnapshot(errorRateResponse.previousPeriod.timeseries.length).toMatchInline(`16`); - }); + it('has the correct end date', () => { + expect( + new Date(last(errorRateResponse.currentPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:14:00.000Z'); + expect( + new Date(last(errorRateResponse.previousPeriod.timeseries)?.x ?? NaN).toISOString() + ).to.eql('2021-01-01T00:14:00.000Z'); + }); - it('has the correct calculation for average', () => { - expectSnapshot(errorRateResponse.currentPeriod.average).toMatchInline( - `0.0792079207920792` - ); - expectSnapshot(errorRateResponse.previousPeriod.average).toMatchInline( - `0.0894308943089431` - ); - }); + it('has the correct number of buckets', () => { + expect(errorRateResponse.currentPeriod.timeseries.length).to.eql(8); + expect(errorRateResponse.previousPeriod.timeseries.length).to.eql(8); + }); - it('has the correct error rate', () => { - expectSnapshot(errorRateResponse.currentPeriod.timeseries).toMatch(); - expectSnapshot(errorRateResponse.previousPeriod.timeseries).toMatch(); - }); + it('has the correct calculation for average', () => { + expect(errorRateResponse.currentPeriod.average).to.eql( + config.firstTransaction.failureRate / 100 + ); + expect(errorRateResponse.previousPeriod.average).to.eql( + config.firstTransaction.failureRate / 100 + ); + }); - it('matches x-axis on current period and previous period', () => { - expect(errorRateResponse.currentPeriod.timeseries.map(({ x }) => x)).to.be.eql( - errorRateResponse.previousPeriod.timeseries.map(({ x }) => x) - ); - }); + it('matches x-axis on current period and previous period', () => { + expect(errorRateResponse.currentPeriod.timeseries.map(({ x }) => x)).to.be.eql( + errorRateResponse.previousPeriod.timeseries.map(({ x }) => x) + ); }); - } - ); + }); + }); } diff --git a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts b/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts index bcd59423ce3cb..50bae6074a9b1 100644 --- a/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts +++ b/x-pack/test/apm_api_integration/tests/transactions/latency.spec.ts @@ -4,13 +4,17 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { apm, timerange } from '@kbn/apm-synthtrace'; import expect from '@kbn/expect'; import moment from 'moment'; -import { APIReturnType } from '@kbn/apm-plugin/public/services/rest/create_call_apm_api'; +import { + APIClientRequestParamsOf, + APIReturnType, +} from '@kbn/apm-plugin/public/services/rest/create_call_apm_api'; import { LatencyAggregationType } from '@kbn/apm-plugin/common/latency_aggregation_types'; +import { RecursivePartial } from '@kbn/apm-plugin/typings/common'; +import { meanBy } from 'lodash'; import { FtrProviderContext } from '../../common/ftr_provider_context'; -import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; type LatencyChartReturnType = APIReturnType<'GET /internal/apm/services/{serviceName}/transactions/charts/latency'>; @@ -18,31 +22,30 @@ type LatencyChartReturnType = export default function ApiTest({ getService }: FtrProviderContext) { const registry = getService('registry'); const apmApiClient = getService('apmApiClient'); + const synthtraceEsClient = getService('synthtraceEsClient'); - const archiveName = 'apm_8.0.0'; - - const { start, end } = archives_metadata[archiveName]; + const serviceName = 'synth-go'; + const start = new Date('2021-01-01T00:00:00.000Z').getTime(); + const end = new Date('2021-01-01T00:15:00.000Z').getTime() - 1; - async function fetchLatencyCharts({ - serviceName, - query, - }: { - serviceName: string; - query: { - start: string; - end: string; - latencyAggregationType: LatencyAggregationType; - transactionType: string; - environment: string; - kuery: string; - offset?: string; - }; - }) { + async function fetchLatencyCharts( + overrides?: RecursivePartial< + APIClientRequestParamsOf<'GET /internal/apm/services/{serviceName}/transactions/charts/latency'>['params'] + > + ) { return await apmApiClient.readUser({ endpoint: `GET /internal/apm/services/{serviceName}/transactions/charts/latency`, params: { - path: { serviceName }, - query, + path: { serviceName: overrides?.path?.serviceName || serviceName }, + query: { + start: new Date(start).toISOString(), + end: new Date(end).toISOString(), + latencyAggregationType: LatencyAggregationType.avg, + transactionType: 'request', + environment: 'ENVIRONMENT_ALL', + kuery: '', + ...overrides?.query, + }, }, }); } @@ -52,20 +55,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { { config: 'basic', archives: [] }, () => { it('handles the empty state', async () => { - const response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', - query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType: 'request', - environment: 'testing', - kuery: '', - }, - }); - + const response = await fetchLatencyCharts(); expect(response.status).to.be(200); - const latencyChartReturn = response.body as LatencyChartReturnType; expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be(null); @@ -77,73 +68,90 @@ export default function ApiTest({ getService }: FtrProviderContext) { registry.when( 'Latency with a basic license when data is loaded', - { config: 'basic', archives: [archiveName] }, + { config: 'basic', archives: [] }, () => { + const GO_PROD_RATE = 80; + const GO_DEV_RATE = 20; + const GO_PROD_DURATION = 1000; + const GO_DEV_DURATION = 500; + before(async () => { + const serviceGoProdInstance = apm + .service({ name: serviceName, environment: 'production', agentName: 'go' }) + .instance('instance-a'); + const serviceGoDevInstance = apm + .service({ name: serviceName, environment: 'development', agentName: 'go' }) + .instance('instance-b'); + + await synthtraceEsClient.index([ + timerange(start, end) + .ratePerMinute(GO_PROD_RATE) + .generator((timestamp) => + serviceGoProdInstance + .transaction({ transactionName: 'GET /api/product/list' }) + .duration(GO_PROD_DURATION) + .timestamp(timestamp) + ), + timerange(start, end) + .ratePerMinute(GO_DEV_RATE) + .generator((timestamp) => + serviceGoDevInstance + .transaction({ transactionName: 'GET /api/product/:id' }) + .duration(GO_DEV_DURATION) + .timestamp(timestamp) + ), + ]); + }); + + after(() => synthtraceEsClient.clean()); + + const expectedLatencyAvgValueMs = + ((GO_PROD_RATE * GO_PROD_DURATION + GO_DEV_RATE * GO_DEV_DURATION) / + (GO_PROD_RATE + GO_DEV_RATE)) * + 1000; + describe('average latency type', () => { it('returns average duration and timeseries', async () => { - const response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', - query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType: 'request', - environment: 'testing', - kuery: '', - }, - }); + const response = await fetchLatencyCharts(); expect(response.status).to.be(200); const latencyChartReturn = response.body as LatencyChartReturnType; - expect(latencyChartReturn.currentPeriod.overallAvgDuration).not.to.be(null); - expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(31); + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueMs + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); }); }); describe('95th percentile latency type', () => { it('returns average duration and timeseries', async () => { const response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', - query: { - start, - end, - latencyAggregationType: LatencyAggregationType.p95, - transactionType: 'request', - environment: 'testing', - kuery: '', - }, + query: { latencyAggregationType: LatencyAggregationType.p95 }, }); expect(response.status).to.be(200); const latencyChartReturn = response.body as LatencyChartReturnType; - expect(latencyChartReturn.currentPeriod.overallAvgDuration).not.to.be(null); - expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(31); + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueMs + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); }); }); describe('99th percentile latency type', () => { it('returns average duration and timeseries', async () => { const response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', query: { - start, - end, latencyAggregationType: LatencyAggregationType.p99, - transactionType: 'request', - environment: 'testing', - kuery: '', }, }); expect(response.status).to.be(200); const latencyChartReturn = response.body as LatencyChartReturnType; - expect(latencyChartReturn.currentPeriod.overallAvgDuration).not.to.be(null); - expectSnapshot(latencyChartReturn.currentPeriod.overallAvgDuration).toMatchInline( - `53906.6603773585` + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + expectedLatencyAvgValueMs ); - - expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(31); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); }); }); @@ -152,14 +160,9 @@ export default function ApiTest({ getService }: FtrProviderContext) { before(async () => { response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', query: { - latencyAggregationType: LatencyAggregationType.avg, - transactionType: 'request', - start: moment(end).subtract(15, 'minutes').toISOString(), - end, - offset: '15m', - environment: 'ENVIRONMENT_ALL', + start: moment(end).subtract(7, 'minutes').toISOString(), + offset: '7m', kuery: '', }, }); @@ -175,8 +178,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { latencyChartReturn.previousPeriod.latencyTimeseries.filter(({ y }) => y !== null); expect(previousPeriodNonNullDataPoints.length).to.be.greaterThan(0); - expectSnapshot(currentPeriodNonNullDataPoints).toMatch(); - expectSnapshot(previousPeriodNonNullDataPoints).toMatch(); + expect(meanBy(currentPeriodNonNullDataPoints, 'y')).to.eql(expectedLatencyAvgValueMs); + expect(meanBy(previousPeriodNonNullDataPoints, 'y')).to.eql(expectedLatencyAvgValueMs); }); it('matches x-axis on current period and previous period', () => { @@ -192,14 +195,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { before(async () => { response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType: 'request', environment: 'does-not-exist', - kuery: '', }, }); }); @@ -216,74 +213,24 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(currentPeriodNonNullDataPoints).to.be.empty(); }); }); - } - ); - - registry.when( - 'Transaction latency with a trial license when data is loaded', - { config: 'trial', archives: [archiveName] }, - () => { - let response: Awaited>; - const transactionType = 'request'; - - describe('without an environment', () => { - before(async () => { - response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', - query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType, - environment: 'ENVIRONMENT_ALL', - kuery: '', - }, - }); - }); - - it('returns an ok response', () => { - expect(response.status).to.eql(200); - }); - }); + describe('with production environment', () => { + let response: Awaited>; - describe('with environment selected', () => { before(async () => { response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType, environment: 'production', - kuery: '', }, }); }); - it('should have a successful response', () => { - expect(response.status).to.eql(200); - }); - }); - - describe('with all environments selected', () => { - before(async () => { - response = await fetchLatencyCharts({ - serviceName: 'opbeans-node', - query: { - start, - end, - latencyAggregationType: LatencyAggregationType.avg, - transactionType, - environment: 'ENVIRONMENT_ALL', - kuery: '', - }, - }); - }); - - it('should have a successful response', () => { - expect(response.status).to.eql(200); + it('returns average duration and timeseries', async () => { + const latencyChartReturn = response.body as LatencyChartReturnType; + expect(latencyChartReturn.currentPeriod.overallAvgDuration).to.be( + GO_PROD_DURATION * 1000 + ); + expect(latencyChartReturn.currentPeriod.latencyTimeseries.length).to.be.eql(15); }); }); } From e1aa6a6d24423fdbf3bc1fd65d797bc9509f30ed Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 3 Oct 2022 12:11:46 -0600 Subject: [PATCH 34/51] [Explore] Risk score restart button bug fix (#142416) --- .../risk_score_restart_button.test.tsx | 10 +++++++--- .../risk_score_restart_button.tsx | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.test.tsx b/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.test.tsx index 16269911f6632..7a50761cfa300 100644 --- a/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.test.tsx @@ -15,6 +15,8 @@ import { restartRiskScoreTransforms } from './utils'; jest.mock('./utils'); +const mockRestartRiskScoreTransforms = restartRiskScoreTransforms as jest.Mock; + describe('RiskScoreRestartButton', () => { const mockRefetch = jest.fn(); beforeEach(() => { @@ -33,7 +35,7 @@ describe('RiskScoreRestartButton', () => { ); }); - it('calls restartRiskScoreTransforms', async () => { + it('calls restartRiskScoreTransforms with correct entity', async () => { render( @@ -43,8 +45,10 @@ describe('RiskScoreRestartButton', () => { await act(async () => { await userEvent.click(screen.getByTestId(`restart_${riskScoreEntity}_risk_score`)); }); - - expect(restartRiskScoreTransforms).toHaveBeenCalled(); + expect(mockRestartRiskScoreTransforms).toHaveBeenCalled(); + expect(mockRestartRiskScoreTransforms.mock.calls[0][0].riskScoreEntity).toEqual( + riskScoreEntity + ); }); it('Update button state while installing', async () => { diff --git a/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.tsx b/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.tsx index 679bbe38c8181..59b2cd7854a3e 100644 --- a/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.tsx +++ b/x-pack/plugins/security_solution/public/common/components/risk_score/risk_score_onboarding/risk_score_restart_button.tsx @@ -9,7 +9,7 @@ import { EuiButton } from '@elastic/eui'; import React, { useCallback } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; -import { RiskScoreEntity } from '../../../../../common/search_strategy'; +import type { RiskScoreEntity } from '../../../../../common/search_strategy'; import { useSpaceId } from '../../../hooks/use_space_id'; import { useKibana } from '../../../lib/kibana'; import type { inputsModel } from '../../../store'; @@ -39,11 +39,11 @@ const RiskScoreRestartButtonComponent = ({ notifications, refetch, renderDocLink, - riskScoreEntity: RiskScoreEntity.host, + riskScoreEntity, spaceId, theme, }); - }, [fetch, http, notifications, refetch, renderDocLink, spaceId, theme]); + }, [fetch, http, notifications, refetch, renderDocLink, riskScoreEntity, spaceId, theme]); return ( Date: Mon, 3 Oct 2022 20:33:55 +0200 Subject: [PATCH 35/51] [Profiling] Fix calculation/formatting of frame info values (#141909) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Joseph Crail --- .../flamegraph_information_window.tsx | 19 +++++------- .../flame_graphs_view/get_impact_rows.ts | 31 +++++++++++-------- .../public/components/flamegraph.tsx | 17 ++++------ .../profiling/public/components/subchart.tsx | 2 +- .../public/utils/formatters/as_cost.ts | 6 ++-- .../public/utils/formatters/as_duration.ts | 18 ++++++++++- .../public/utils/formatters/as_number.test.ts | 31 +++++++++++++++++++ .../public/utils/formatters/as_number.ts | 30 ++++++++++++++++++ .../public/utils/formatters/as_percentage.ts | 6 ++-- .../public/utils/formatters/as_weight.ts | 7 +++-- 10 files changed, 123 insertions(+), 44 deletions(-) create mode 100644 x-pack/plugins/profiling/public/utils/formatters/as_number.test.ts create mode 100644 x-pack/plugins/profiling/public/utils/formatters/as_number.ts diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/flamegraph_information_window.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/flamegraph_information_window.tsx index 824e6d1476a14..39795474763be 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/flamegraph_information_window.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/flamegraph_information_window.tsx @@ -25,11 +25,10 @@ interface Props { exeFileName: string; functionName: string; sourceFileName: string; - samples: number; - childSamples: number; + countInclusive: number; + countExclusive: number; }; - sampledTraces: number; - totalTraces: number; + totalSamples: number; totalSeconds: number; onClose: () => void; status: AsyncStatus; @@ -105,8 +104,7 @@ function FlamegraphFrameInformationPanel({ export function FlamegraphInformationWindow({ onClose, frame, - sampledTraces, - totalTraces, + totalSamples, totalSeconds, status, }: Props) { @@ -122,14 +120,13 @@ export function FlamegraphInformationWindow({ ); } - const { childSamples, exeFileName, samples, functionName, sourceFileName } = frame; + const { exeFileName, functionName, sourceFileName, countInclusive, countExclusive } = frame; const impactRows = getImpactRows({ - samples, - childSamples, - sampledTraces, + countInclusive, + countExclusive, + totalSamples, totalSeconds, - totalTraces, }); return ( diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/get_impact_rows.ts b/x-pack/plugins/profiling/public/components/flame_graphs_view/get_impact_rows.ts index 8ca1347e4497f..40d3bfc02c1f2 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/get_impact_rows.ts +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/get_impact_rows.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { asCost } from '../../utils/formatters/as_cost'; import { asDuration } from '../../utils/formatters/as_duration'; +import { asNumber } from '../../utils/formatters/as_number'; import { asPercentage } from '../../utils/formatters/as_percentage'; import { asWeight } from '../../utils/formatters/as_weight'; @@ -23,21 +24,19 @@ const CO2_PER_KWH = 0.92; const CORE_COST_PER_HOUR = 0.0425; export function getImpactRows({ - samples, - childSamples, - sampledTraces, - totalTraces, + countInclusive, + countExclusive, + totalSamples, totalSeconds, }: { - samples: number; - childSamples: number; - sampledTraces: number; - totalTraces: number; + countInclusive: number; + countExclusive: number; + totalSamples: number; totalSeconds: number; }) { - const percentage = samples / sampledTraces; - const percentageNoChildren = (samples - childSamples) / sampledTraces; - const totalCoreSeconds = totalTraces / 20; + const percentage = countInclusive / totalSamples; + const percentageNoChildren = countExclusive / totalSamples; + const totalCoreSeconds = totalSamples / 20; const coreSeconds = totalCoreSeconds * percentage; const coreSecondsNoChildren = totalCoreSeconds * percentageNoChildren; const coreHours = coreSeconds / (60 * 60); @@ -70,10 +69,16 @@ export function getImpactRows({ value: asPercentage(percentageNoChildren), }, { - label: i18n.translate('xpack.profiling.flameGraphInformationWindow.samplesLabel', { + label: i18n.translate('xpack.profiling.flameGraphInformationWindow.samplesInclusiveLabel', { defaultMessage: 'Samples', }), - value: samples, + value: asNumber(countInclusive), + }, + { + label: i18n.translate('xpack.profiling.flameGraphInformationWindow.samplesExclusiveLabel', { + defaultMessage: 'Samples (excl. children)', + }), + value: asNumber(countExclusive), }, { label: i18n.translate( diff --git a/x-pack/plugins/profiling/public/components/flamegraph.tsx b/x-pack/plugins/profiling/public/components/flamegraph.tsx index 9abac27ef9fb2..5ffe72646f01c 100644 --- a/x-pack/plugins/profiling/public/components/flamegraph.tsx +++ b/x-pack/plugins/profiling/public/components/flamegraph.tsx @@ -31,11 +31,9 @@ function TooltipRow({ formatAsPercentage: boolean; showChange: boolean; }) { - const valueLabel = formatAsPercentage ? asPercentage(value, 2) : value.toString(); + const valueLabel = formatAsPercentage ? asPercentage(value) : value.toString(); const comparisonLabel = - formatAsPercentage && isNumber(comparison) - ? asPercentage(comparison, 2) - : comparison?.toString(); + formatAsPercentage && isNumber(comparison) ? asPercentage(comparison) : comparison?.toString(); const diff = showChange && isNumber(comparison) ? comparison - value : undefined; @@ -46,7 +44,7 @@ function TooltipRow({ defaultMessage: 'no change', }); } else if (formatAsPercentage && diff !== undefined) { - diffLabel = asPercentage(diff, 2); + diffLabel = asPercentage(diff); } return ( @@ -226,10 +224,8 @@ export const FlameGraph: React.FC = ({ exeFileName: highlightedFrame.ExeFileName, sourceFileName: highlightedFrame.SourceFilename, functionName: highlightedFrame.FunctionName, - samples: primaryFlamegraph.Samples[highlightedVmIndex], - childSamples: - primaryFlamegraph.Samples[highlightedVmIndex] - - primaryFlamegraph.CountExclusive[highlightedVmIndex], + countInclusive: primaryFlamegraph.Samples[highlightedVmIndex], + countExclusive: primaryFlamegraph.CountExclusive[highlightedVmIndex], } : undefined; @@ -315,8 +311,7 @@ export const FlameGraph: React.FC = ({ frame={selected} status={highlightedFrameStatus} totalSeconds={primaryFlamegraph?.TotalSeconds ?? 0} - totalTraces={primaryFlamegraph?.TotalTraces ?? 0} - sampledTraces={primaryFlamegraph?.SampledTraces ?? 0} + totalSamples={totalSamples} onClose={() => { setShowInformationWindow(false); }} diff --git a/x-pack/plugins/profiling/public/components/subchart.tsx b/x-pack/plugins/profiling/public/components/subchart.tsx index caafeb5e3d481..0dc017bbdf5f3 100644 --- a/x-pack/plugins/profiling/public/components/subchart.tsx +++ b/x-pack/plugins/profiling/public/components/subchart.tsx @@ -194,7 +194,7 @@ export const SubChart: React.FC = ({ )} - {asPercentage(percentage / 100, 2)} + {asPercentage(percentage / 100)} diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_cost.ts b/x-pack/plugins/profiling/public/utils/formatters/as_cost.ts index 148eba4785263..ea2afc3f50f58 100644 --- a/x-pack/plugins/profiling/public/utils/formatters/as_cost.ts +++ b/x-pack/plugins/profiling/public/utils/formatters/as_cost.ts @@ -5,6 +5,8 @@ * 2.0. */ -export function asCost(value: number, precision: number = 2, unit: string = '$') { - return `${value.toPrecision(precision)}${unit}`; +import { asNumber } from './as_number'; + +export function asCost(value: number, unit: string = '$') { + return `${asNumber(value)}${unit}`; } diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_duration.ts b/x-pack/plugins/profiling/public/utils/formatters/as_duration.ts index ba0839f06e779..833602cc38203 100644 --- a/x-pack/plugins/profiling/public/utils/formatters/as_duration.ts +++ b/x-pack/plugins/profiling/public/utils/formatters/as_duration.ts @@ -4,9 +4,25 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - +import { i18n } from '@kbn/i18n'; import moment from 'moment'; +moment.relativeTimeRounding((t) => { + const DIGITS = 2; // like: 2.56 minutes + return Math.round(t * Math.pow(10, DIGITS)) / Math.pow(10, DIGITS); +}); +moment.relativeTimeThreshold('y', 365); +moment.relativeTimeThreshold('M', 12); +moment.relativeTimeThreshold('w', 4); +moment.relativeTimeThreshold('d', 31); +moment.relativeTimeThreshold('h', 24); +moment.relativeTimeThreshold('m', 60); +moment.relativeTimeThreshold('s', 60); +moment.relativeTimeThreshold('ss', 0); + export function asDuration(valueInSeconds: number) { + if (valueInSeconds === 0) { + return i18n.translate('xpack.profiling.zeroSeconds', { defaultMessage: '0 seconds' }); + } return moment.duration(valueInSeconds * 1000).humanize(); } diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_number.test.ts b/x-pack/plugins/profiling/public/utils/formatters/as_number.test.ts new file mode 100644 index 0000000000000..c30def19eb8e3 --- /dev/null +++ b/x-pack/plugins/profiling/public/utils/formatters/as_number.test.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { asNumber } from './as_number'; + +describe('asNumber', () => { + it('rounds numbers appropriately', () => { + expect(asNumber(999)).toBe('999'); + + expect(asNumber(1.11)).toBe('1.11'); + + expect(asNumber(0.001)).toBe('~0.00'); + + expect(asNumber(0)).toBe('0'); + }); + + it('adds k/m/b where needed', () => { + expect(asNumber(999.999)).toBe('1k'); + + expect(asNumber(4.5e5)).toBe('450k'); + + expect(asNumber(4.5001e5)).toBe('450.01k'); + + expect(asNumber(2.4991e7)).toBe('24.99m'); + + expect(asNumber(9e9)).toBe('9b'); + }); +}); diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_number.ts b/x-pack/plugins/profiling/public/utils/formatters/as_number.ts new file mode 100644 index 0000000000000..f7b67bafbf7f7 --- /dev/null +++ b/x-pack/plugins/profiling/public/utils/formatters/as_number.ts @@ -0,0 +1,30 @@ +/* + * 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 function asNumber(value: number): string { + if (value === 0) { + return '0'; + } + + value = Math.round(value * 100) / 100; + if (value < 0.01) { + return '~0.00'; + } + if (value < 1e3) { + return value.toString(); + } + + if (value < 1e6) { + return `${asNumber(value / 1e3)}k`; + } + + if (value < 1e9) { + return `${asNumber(value / 1e6)}m`; + } + + return `${asNumber(value / 1e9)}b`; +} diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_percentage.ts b/x-pack/plugins/profiling/public/utils/formatters/as_percentage.ts index f4c3a84b6275f..6b3af016b44c1 100644 --- a/x-pack/plugins/profiling/public/utils/formatters/as_percentage.ts +++ b/x-pack/plugins/profiling/public/utils/formatters/as_percentage.ts @@ -5,6 +5,8 @@ * 2.0. */ -export function asPercentage(value: number, precision: number = 0) { - return `${Number(value * 100).toFixed(precision)}%`; +import { asNumber } from './as_number'; + +export function asPercentage(value: number) { + return `${asNumber(value * 100)}%`; } diff --git a/x-pack/plugins/profiling/public/utils/formatters/as_weight.ts b/x-pack/plugins/profiling/public/utils/formatters/as_weight.ts index 82a6cbd4f64b0..fa938a9351f3f 100644 --- a/x-pack/plugins/profiling/public/utils/formatters/as_weight.ts +++ b/x-pack/plugins/profiling/public/utils/formatters/as_weight.ts @@ -6,12 +6,13 @@ */ import { i18n } from '@kbn/i18n'; +import { asNumber } from './as_number'; const ONE_POUND_TO_A_KILO = 0.45359237; -export function asWeight(valueInPounds: number, precision: number = 2) { - const lbs = valueInPounds.toPrecision(precision); - const kgs = Number(valueInPounds * ONE_POUND_TO_A_KILO).toPrecision(precision); +export function asWeight(valueInPounds: number) { + const lbs = asNumber(valueInPounds); + const kgs = asNumber(Number(valueInPounds * ONE_POUND_TO_A_KILO)); return i18n.translate('xpack.profiling.formatters.weight', { defaultMessage: `{lbs} lbs / {kgs} kg`, From 8ad95df6fa731c72096bbb751cd38c0a7ecdf3f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 21:06:10 +0200 Subject: [PATCH 36/51] Update dependency react-hook-form to ^7.36.1 (#142420) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Patryk Kopyciński --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4108e83b0e6c6..f122f532d5274 100644 --- a/package.json +++ b/package.json @@ -579,7 +579,7 @@ "react-fast-compare": "^2.0.4", "react-focus-on": "^3.6.0", "react-grid-layout": "^1.3.4", - "react-hook-form": "^7.35.0", + "react-hook-form": "^7.36.1", "react-intl": "^2.8.0", "react-is": "^17.0.2", "react-markdown": "^6.0.3", diff --git a/yarn.lock b/yarn.lock index b9db4636175d0..62d61b9fd93f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23386,10 +23386,10 @@ react-grid-layout@^1.3.4: react-draggable "^4.0.0" react-resizable "^3.0.4" -react-hook-form@^7.35.0: - version "7.35.0" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.35.0.tgz#b133de48fc84b1e62f9277ba79dfbacd9bb13dd3" - integrity sha512-9CYdOed+Itbiu5VMVxW0PK9mBR3f0gDGJcZEyUSm0eJbDymQ913TRs2gHcQZZmfTC+rtxyDFRuelMxx/+xwMcw== +react-hook-form@^7.36.1: + version "7.36.1" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.36.1.tgz#82a311fe8cbe75e689fd4529f083b7c983da6520" + integrity sha512-EbYYkCG2p8ywe7ikOH2l02lAFMrrrslZi1I8fqd8ifDGNAkhomHZQzQsP6ksvzrWBKntRe8b5L5L7Zsd+Gm02Q== react-input-autosize@^3.0.0: version "3.0.0" From 059fecd3115cf4dad81c969d34b642359d47e82f Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Mon, 3 Oct 2022 15:46:07 -0400 Subject: [PATCH 37/51] [Guided onboarding] State management improvements (#141278) --- .../public/components/app.tsx | 4 + .../public/components/main.tsx | 189 ++++++++---- .../public/components/step_three.tsx | 90 ++++++ .../public/components/step_two.tsx | 4 +- ...grations_state_action_machine.test.ts.snap | 30 ++ .../src/core/unused_types.ts | 2 + .../src/initial_state.test.ts | 5 + .../migrations/type_registrations.test.ts | 1 + .../common/{index.ts => constants.ts} | 0 src/plugins/guided_onboarding/common/types.ts | 44 +++ .../public/components/guide_panel.test.tsx | 196 ++++++++++-- .../public/components/guide_panel.tsx | 186 +++++++----- .../public/components/guide_panel_step.tsx | 26 +- .../index.ts} | 2 +- .../{ => guides_config}/observability.ts | 2 +- .../constants/{ => guides_config}/search.ts | 6 +- .../constants/{ => guides_config}/security.ts | 2 +- src/plugins/guided_onboarding/public/index.ts | 11 +- .../guided_onboarding/public/plugin.tsx | 2 +- .../public/services/api.test.ts | 280 +++++++++++++++--- .../guided_onboarding/public/services/api.ts | 280 +++++++++++++++--- .../public/services/helpers.test.ts | 20 +- .../public/services/helpers.ts | 13 +- src/plugins/guided_onboarding/public/types.ts | 20 +- .../guided_onboarding/server/routes/index.ts | 154 +++++++--- .../server/saved_objects/guided_setup.ts | 14 +- .../server/saved_objects/index.ts | 7 +- 27 files changed, 1216 insertions(+), 374 deletions(-) create mode 100644 examples/guided_onboarding_example/public/components/step_three.tsx rename src/plugins/guided_onboarding/common/{index.ts => constants.ts} (100%) create mode 100644 src/plugins/guided_onboarding/common/types.ts rename src/plugins/guided_onboarding/public/constants/{guides_config.ts => guides_config/index.ts} (92%) rename src/plugins/guided_onboarding/public/constants/{ => guides_config}/observability.ts (97%) rename src/plugins/guided_onboarding/public/constants/{ => guides_config}/search.ts (93%) rename src/plugins/guided_onboarding/public/constants/{ => guides_config}/security.ts (97%) diff --git a/examples/guided_onboarding_example/public/components/app.tsx b/examples/guided_onboarding_example/public/components/app.tsx index dc8cbbdcfac83..a5252920c27fa 100755 --- a/examples/guided_onboarding_example/public/components/app.tsx +++ b/examples/guided_onboarding_example/public/components/app.tsx @@ -23,6 +23,7 @@ import { CoreStart, ScopedHistory } from '@kbn/core/public'; import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public/types'; import { StepTwo } from './step_two'; import { StepOne } from './step_one'; +import { StepThree } from './step_three'; import { Main } from './main'; interface GuidedOnboardingExampleAppDeps { @@ -60,6 +61,9 @@ export const GuidedOnboardingExampleApp = (props: GuidedOnboardingExampleAppDeps + + + diff --git a/examples/guided_onboarding_example/public/components/main.tsx b/examples/guided_onboarding_example/public/components/main.tsx index 157b13f1276c0..59e6fa3192402 100644 --- a/examples/guided_onboarding_example/public/components/main.tsx +++ b/examples/guided_onboarding_example/public/components/main.tsx @@ -25,45 +25,50 @@ import { EuiText, EuiTitle, } from '@elastic/eui'; -import { +import type { GuidedOnboardingPluginStart, - GuidedOnboardingState, - UseCase, + GuideState, + GuideStepIds, + GuideId, + GuideStep, } from '@kbn/guided-onboarding-plugin/public'; +import { guidesConfig } from '@kbn/guided-onboarding-plugin/public'; interface MainProps { guidedOnboarding: GuidedOnboardingPluginStart; notifications: CoreStart['notifications']; } + export const Main = (props: MainProps) => { const { guidedOnboarding: { guidedOnboardingApi }, notifications, } = props; const history = useHistory(); - const [guideState, setGuideState] = useState(undefined); + const [guidesState, setGuidesState] = useState(undefined); + const [activeGuide, setActiveGuide] = useState(undefined); - const [selectedGuide, setSelectedGuide] = useState< - GuidedOnboardingState['activeGuide'] | undefined - >(undefined); - const [selectedStep, setSelectedStep] = useState( - undefined - ); + const [selectedGuide, setSelectedGuide] = useState(undefined); + const [selectedStep, setSelectedStep] = useState(undefined); useEffect(() => { - const subscription = guidedOnboardingApi - ?.fetchGuideState$() - .subscribe((newState: GuidedOnboardingState) => { - setGuideState(newState); - }); - return () => subscription?.unsubscribe(); + const fetchGuidesState = async () => { + const newGuidesState = await guidedOnboardingApi?.fetchAllGuidesState(); + setGuidesState(newGuidesState ? newGuidesState.state : []); + }; + + fetchGuidesState(); }, [guidedOnboardingApi]); - const startGuide = async (guide: UseCase) => { - const response = await guidedOnboardingApi?.updateGuideState({ - activeGuide: guide, - activeStep: 'add_data', - }); + useEffect(() => { + const newActiveGuide = guidesState?.find((guide) => guide.isActive === true); + if (newActiveGuide) { + setActiveGuide(newActiveGuide); + } + }, [guidesState, setActiveGuide]); + + const activateGuide = async (guideId: GuideId, guideState?: GuideState) => { + const response = await guidedOnboardingApi?.activateGuide(guideId, guideState); if (response) { notifications.toasts.addSuccess( @@ -75,11 +80,45 @@ export const Main = (props: MainProps) => { }; const updateGuideState = async () => { - const response = await guidedOnboardingApi?.updateGuideState({ - activeGuide: selectedGuide!, - activeStep: selectedStep!, + const selectedGuideConfig = guidesConfig[selectedGuide!]; + const selectedStepIndex = selectedGuideConfig.steps.findIndex( + (step) => step.id === selectedStep! + ); + + // Noop if the selected step is invalid + if (selectedStepIndex === -1) { + return; + } + + const updatedSteps: GuideStep[] = selectedGuideConfig.steps.map((step, stepIndex) => { + if (selectedStepIndex > stepIndex) { + return { + id: step.id, + status: 'complete', + }; + } + + if (selectedStepIndex < stepIndex) { + return { + id: step.id, + status: 'inactive', + }; + } + + return { + id: step.id, + status: 'active', + }; }); + const updatedGuideState: GuideState = { + isActive: true, + status: 'in_progress', + steps: updatedSteps, + guideId: selectedGuide!, + }; + + const response = await guidedOnboardingApi?.updateGuideState(updatedGuideState, true); if (response) { notifications.toasts.addSuccess( i18n.translate('guidedOnboardingExample.updateGuideState.toastLabel', { @@ -116,7 +155,7 @@ export const Main = (props: MainProps) => { so there is no need to 'load' the state from the server." />

- {guideState ? ( + {activeGuide ? (
{ defaultMessage="Active guide" />
-
{guideState.activeGuide ?? 'undefined'}
+
{activeGuide.guideId}
-
{guideState.activeStep ?? 'undefined'}
+
+ {activeGuide.steps.map((step) => { + return ( + <> + {`Step "${step.id}": ${step.status}`}
+ + ); + })} +
- ) : undefined} + ) : ( +

+ +

+ )}

- - startGuide('search')} fill> - - - - - startGuide('observability')} fill> - - - - - startGuide('security')} fill> - - - + {(Object.keys(guidesConfig) as GuideId[]).map((guideId) => { + const guideState = guidesState?.find((guide) => guide.guideId === guideId); + return ( + + activateGuide(guideId, guideState)} + fill + disabled={guideState?.status === 'complete'} + > + {guideState === undefined && ( + + )} + {(guideState?.isActive === true || + guideState?.status === 'in_progress' || + guideState?.status === 'ready_to_complete') && ( + + )} + {guideState?.status === 'complete' && ( + + )} + + + ); + })} @@ -187,16 +259,15 @@ export const Main = (props: MainProps) => { { - const value = e.target.value as UseCase; + const value = e.target.value as GuideId; const shouldResetState = value.trim().length === 0; if (shouldResetState) { setSelectedGuide(undefined); @@ -209,10 +280,10 @@ export const Main = (props: MainProps) => { - + setSelectedStep(e.target.value)} + onChange={(e) => setSelectedStep(e.target.value as GuideStepIds)} /> diff --git a/examples/guided_onboarding_example/public/components/step_three.tsx b/examples/guided_onboarding_example/public/components/step_three.tsx new file mode 100644 index 0000000000000..ffe9d87993611 --- /dev/null +++ b/examples/guided_onboarding_example/public/components/step_three.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, { useEffect, useState } from 'react'; + +import { EuiButton, EuiSpacer, EuiText, EuiTitle, EuiTourStep } from '@elastic/eui'; + +import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public/types'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { + EuiPageContentHeader_Deprecated as EuiPageContentHeader, + EuiPageContentBody_Deprecated as EuiPageContentBody, +} from '@elastic/eui'; + +interface StepThreeProps { + guidedOnboarding: GuidedOnboardingPluginStart; +} + +export const StepThree = (props: StepThreeProps) => { + const { + guidedOnboarding: { guidedOnboardingApi }, + } = props; + + const [isTourStepOpen, setIsTourStepOpen] = useState(false); + + useEffect(() => { + const subscription = guidedOnboardingApi + ?.isGuideStepActive$('search', 'search_experience') + .subscribe((isStepActive) => { + setIsTourStepOpen(isStepActive); + }); + return () => subscription?.unsubscribe(); + }, [guidedOnboardingApi]); + + return ( + <> + + +

+ +

+
+
+ + +

+ +

+
+ + +

Click this button to complete step 3.

+ + } + isStepOpen={isTourStepOpen} + minWidth={300} + onFinish={() => { + setIsTourStepOpen(false); + }} + step={1} + stepsTotal={1} + title="Step Build search experience" + anchorPosition="rightUp" + > + { + await guidedOnboardingApi?.completeGuideStep('search', 'search_experience'); + }} + > + Complete step 3 + +
+
+ + ); +}; diff --git a/examples/guided_onboarding_example/public/components/step_two.tsx b/examples/guided_onboarding_example/public/components/step_two.tsx index a79ce2329351e..07f4fd7e63e0c 100644 --- a/examples/guided_onboarding_example/public/components/step_two.tsx +++ b/examples/guided_onboarding_example/public/components/step_two.tsx @@ -55,7 +55,7 @@ export const StepTwo = (props: StepTwoProps) => {

@@ -73,7 +73,7 @@ export const StepTwo = (props: StepTwoProps) => { }} step={1} stepsTotal={1} - title="Step Search experience" + title="Step Browse documents" anchorPosition="rightUp" > { "type": "fleet-enrollment-api-keys", }, }, + Object { + "term": Object { + "type": "guided-setup-state", + }, + }, Object { "term": Object { "type": "ml-telemetry", diff --git a/src/core/server/integration_tests/saved_objects/migrations/type_registrations.test.ts b/src/core/server/integration_tests/saved_objects/migrations/type_registrations.test.ts index a1f7490168345..4fd5ca5cd2aea 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/type_registrations.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/type_registrations.test.ts @@ -60,6 +60,7 @@ const previouslyRegisteredTypes = [ 'fleet-preconfiguration-deletion-record', 'graph-workspace', 'guided-setup-state', + 'guided-onboarding-guide-state', 'index-pattern', 'infrastructure-monitoring-log-view', 'infrastructure-ui-source', diff --git a/src/plugins/guided_onboarding/common/index.ts b/src/plugins/guided_onboarding/common/constants.ts similarity index 100% rename from src/plugins/guided_onboarding/common/index.ts rename to src/plugins/guided_onboarding/common/constants.ts diff --git a/src/plugins/guided_onboarding/common/types.ts b/src/plugins/guided_onboarding/common/types.ts new file mode 100644 index 0000000000000..412154ede98b0 --- /dev/null +++ b/src/plugins/guided_onboarding/common/types.ts @@ -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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export type GuideId = 'observability' | 'security' | 'search'; + +export type ObservabilityStepIds = 'add_data' | 'view_dashboard' | 'tour_observability'; +export type SecurityStepIds = 'add_data' | 'rules' | 'alerts' | 'cases'; +export type SearchStepIds = 'add_data' | 'browse_docs' | 'search_experience'; + +export type GuideStepIds = ObservabilityStepIds | SecurityStepIds | SearchStepIds; + +/** + * Allowed states for a guide: + * in_progress: Guide has been started + * ready_to_complete: All steps have been completed, but the "Continue using Elastic" button has not been clicked + * complete: All steps and the guide have been completed + */ +export type GuideStatus = 'in_progress' | 'ready_to_complete' | 'complete'; + +/** + * Allowed states for each step in a guide: + * inactive: Step has not started + * active: Step is ready to start (i.e., the guide has been started) + * in_progress: Step has been started and is in progress + * complete: Step has been completed + */ +export type StepStatus = 'inactive' | 'active' | 'in_progress' | 'complete'; + +export interface GuideStep { + id: GuideStepIds; + status: StepStatus; +} + +export interface GuideState { + guideId: GuideId; + status: GuideStatus; + isActive?: boolean; // Drives the current guide shown in the dropdown panel + steps: GuideStep[]; +} diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx index 5eaf24163d2ae..3506c15fcba35 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx @@ -13,18 +13,39 @@ import { applicationServiceMock } from '@kbn/core-application-browser-mocks'; import { httpServiceMock } from '@kbn/core/public/mocks'; import { HttpSetup } from '@kbn/core/public'; -import { apiService } from '../services/api'; import { guidesConfig } from '../constants/guides_config'; +import type { GuideState } from '../../common/types'; +import { apiService } from '../services/api'; import { GuidePanel } from './guide_panel'; import { registerTestBed, TestBed } from '@kbn/test-jest-helpers'; const applicationMock = applicationServiceMock.createStartContract(); +const mockActiveSearchGuideState: GuideState = { + guideId: 'search', + isActive: true, + status: 'in_progress', + steps: [ + { + id: 'add_data', + status: 'active', + }, + { + id: 'browse_docs', + status: 'inactive', + }, + { + id: 'search_experience', + status: 'inactive', + }, + ], +}; + const getGuidePanel = () => () => { return ; }; -describe('GuidePanel', () => { +describe('Guided setup', () => { let httpClient: jest.Mocked; let testBed: TestBed; @@ -32,7 +53,7 @@ describe('GuidePanel', () => { httpClient = httpServiceMock.createStartContract({ basePath: '/base/path' }); // Set default state on initial request (no active guides) httpClient.get.mockResolvedValue({ - state: { activeGuide: 'unset', activeStep: 'unset' }, + state: [], }); apiService.setup(httpClient); @@ -48,29 +69,164 @@ describe('GuidePanel', () => { jest.restoreAllMocks(); }); - test('it should be disabled in there is no active guide', async () => { - const { exists } = testBed; - expect(exists('disabledGuideButton')).toBe(true); - expect(exists('guideButton')).toBe(false); - expect(exists('guidePanel')).toBe(false); + describe('Button component', () => { + test('should be disabled in there is no active guide', async () => { + const { exists } = testBed; + expect(exists('disabledGuideButton')).toBe(true); + expect(exists('guideButton')).toBe(false); + expect(exists('guidePanel')).toBe(false); + }); + + test('should be enabled if there is an active guide', async () => { + const { exists, component, find } = testBed; + + await act(async () => { + // Enable the "search" guide + await apiService.updateGuideState(mockActiveSearchGuideState, true); + }); + + component.update(); + + expect(exists('disabledGuideButton')).toBe(false); + expect(exists('guideButton')).toBe(true); + expect(find('guideButton').text()).toEqual('Setup guide'); + }); + + test('should show the step number in the button label if a step is active', async () => { + const { component, find } = testBed; + + const mockInProgressSearchGuideState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }; + + await act(async () => { + await apiService.updateGuideState(mockInProgressSearchGuideState, true); + }); + + component.update(); + + expect(find('guideButton').text()).toEqual('Setup guide: step 1'); + }); }); - test('it should be enabled if there is an active guide', async () => { - const { exists, component, find } = testBed; + describe('Panel component', () => { + test('should be enabled if a guide is activated', async () => { + const { exists, component, find } = testBed; - await act(async () => { - // Enable the "search" guide - await apiService.updateGuideState({ - activeGuide: 'search', - activeStep: guidesConfig.search.steps[0].id, + await act(async () => { + // Enable the "search" guide + await apiService.updateGuideState(mockActiveSearchGuideState, true); }); + + component.update(); + + expect(exists('guidePanel')).toBe(true); + expect(exists('guideProgress')).toBe(false); + expect(find('guidePanelStep').length).toEqual(guidesConfig.search.steps.length); }); - component.update(); + test('should show the progress bar if the first step has been completed', async () => { + const { component, exists } = testBed; - expect(exists('disabledGuideButton')).toBe(false); - expect(exists('guideButton')).toBe(true); - expect(exists('guidePanel')).toBe(true); - expect(find('guidePanelStep').length).toEqual(guidesConfig.search.steps.length); + const mockInProgressSearchGuideState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'complete', + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }; + + await act(async () => { + await apiService.updateGuideState(mockInProgressSearchGuideState, true); + }); + + component.update(); + + expect(exists('guidePanel')).toBe(true); + expect(exists('guideProgress')).toBe(true); + }); + + test('should show the "Continue using Elastic" button when all steps has been completed', async () => { + const { component, exists } = testBed; + + const readyToCompleteGuideState: GuideState = { + guideId: 'search', + status: 'ready_to_complete', + isActive: true, + steps: [ + { + id: 'add_data', + status: 'complete', + }, + { + id: 'browse_docs', + status: 'complete', + }, + { + id: 'search_experience', + status: 'complete', + }, + ], + }; + + await act(async () => { + await apiService.updateGuideState(readyToCompleteGuideState, true); + }); + + component.update(); + + expect(exists('useElasticButton')).toBe(true); + }); + + describe('Steps', () => { + test('should show "Start" button label if step has not been started', async () => { + const { component, find } = testBed; + + await act(async () => { + // Enable the "search" guide + await apiService.updateGuideState(mockActiveSearchGuideState, true); + }); + + component.update(); + + expect(find('activeStepButtonLabel').text()).toEqual('Start'); + }); + + test('should show "Continue" button label if step is in progress', async () => { + const { component, find } = testBed; + + const mockInProgressSearchGuideState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }; + + await act(async () => { + await apiService.updateGuideState(mockInProgressSearchGuideState, true); + }); + + component.update(); + + expect(find('activeStepButtonLabel').text()).toEqual('Continue'); + }); + }); }); }); diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.tsx index f32f55e42b340..bf57d502918d2 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import React, { useState, useEffect, useRef } from 'react'; +import React, { useState, useEffect } from 'react'; import { EuiFlyout, EuiFlyoutBody, @@ -30,7 +30,9 @@ import { ApplicationStart } from '@kbn/core-application-browser'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { guidesConfig } from '../constants/guides_config'; -import type { GuideConfig, StepStatus, GuidedOnboardingState, StepConfig } from '../types'; +import type { GuideState, GuideStepIds } from '../../common/types'; +import type { GuideConfig, StepConfig } from '../types'; + import type { ApiService } from '../services/api'; import { GuideStep } from './guide_panel_step'; @@ -41,47 +43,48 @@ interface GuidePanelProps { application: ApplicationStart; } -const getConfig = (state?: GuidedOnboardingState): GuideConfig | undefined => { - if (state?.activeGuide && state.activeGuide !== 'unset') { - return guidesConfig[state.activeGuide]; +const getConfig = (state?: GuideState): GuideConfig | undefined => { + if (state) { + return guidesConfig[state.guideId]; } return undefined; }; -const getCurrentStep = ( - steps?: StepConfig[], - state?: GuidedOnboardingState -): number | undefined => { - if (steps && state?.activeStep) { - const activeStepIndex = steps.findIndex((step: StepConfig) => step.id === state.activeStep); - if (activeStepIndex > -1) { - return activeStepIndex + 1; - } +const getStepNumber = (state?: GuideState): number | undefined => { + let stepNumber: number | undefined; - return undefined; - } -}; + state?.steps.forEach((step, stepIndex) => { + // If the step is in_progress, show that step number + if (step.status === 'in_progress') { + stepNumber = stepIndex + 1; + } -const getStepStatus = (steps: StepConfig[], stepIndex: number, activeStep?: string): StepStatus => { - const activeStepIndex = steps.findIndex((step: StepConfig) => step.id === activeStep); + // If the step is active, show the previous step number + if (step.status === 'active') { + stepNumber = stepIndex; + } + }); - if (activeStepIndex < stepIndex) { - return 'incomplete'; - } + return stepNumber; +}; - if (activeStepIndex === stepIndex) { - return 'in_progress'; +const getProgress = (state?: GuideState): number => { + if (state) { + return state.steps.reduce((acc, currentVal) => { + if (currentVal.status === 'complete') { + acc = acc + 1; + } + return acc; + }, 0); } - - return 'complete'; + return 0; }; export const GuidePanel = ({ api, application }: GuidePanelProps) => { const { euiTheme } = useEuiTheme(); const [isGuideOpen, setIsGuideOpen] = useState(false); - const [guideState, setGuideState] = useState(undefined); - const isFirstRender = useRef(true); + const [guideState, setGuideState] = useState(undefined); const styles = getGuidePanelStyles(euiTheme); @@ -89,10 +92,10 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { setIsGuideOpen((prevIsGuideOpen) => !prevIsGuideOpen); }; - const navigateToStep = (step: StepConfig) => { - setIsGuideOpen(false); - if (step.location) { - application.navigateToApp(step.location.appID, { path: step.location.path }); + const navigateToStep = async (stepId: GuideStepIds, stepLocation: StepConfig['location']) => { + await api.startGuideStep(guideState!.guideId, stepId); + if (stepLocation) { + application.navigateToApp(stepLocation.appID, { path: stepLocation.path }); } }; @@ -101,22 +104,25 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { application.navigateToApp('home', { path: '#getting_started' }); }; + const completeGuide = async () => { + await api.completeGuide(guideState!.guideId); + }; + useEffect(() => { - const subscription = api.fetchGuideState$().subscribe((newState) => { - if ( - guideState?.activeGuide !== newState.activeGuide || - guideState?.activeStep !== newState.activeStep - ) { - if (isFirstRender.current) { - isFirstRender.current = false; - } else { - setIsGuideOpen(true); - } + const subscription = api.fetchActiveGuideState$().subscribe((newGuideState) => { + if (newGuideState) { + setGuideState(newGuideState); } - setGuideState(newState); }); return () => subscription.unsubscribe(); - }, [api, guideState?.activeGuide, guideState?.activeStep]); + }, [api]); + + useEffect(() => { + const subscription = api.isGuidePanelOpen$.subscribe((isGuidePanelOpen) => { + setIsGuideOpen(isGuidePanelOpen); + }); + return () => subscription.unsubscribe(); + }, [api]); const guideConfig = getConfig(guideState); @@ -139,16 +145,17 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { ); } - const currentStep = getCurrentStep(guideConfig.steps, guideState); + const stepNumber = getStepNumber(guideState); + const stepsCompleted = getProgress(guideState); return ( <> - {currentStep + {Boolean(stepNumber) ? i18n.translate('guidedOnboarding.guidedSetupStepButtonLabel', { - defaultMessage: 'Setup guide: Step {currentStep}', + defaultMessage: 'Setup guide: step {stepNumber}', values: { - currentStep, + stepNumber, }, }) : i18n.translate('guidedOnboarding.guidedSetupButtonLabel', { @@ -203,46 +210,61 @@ export const GuidePanel = ({ api, application }: GuidePanelProps) => { )} - - - {/* - TODO: Progress bar should only show after the first step has been started - We need to make changes to the state itself in order to support this - */} - - - + {/* Progress bar should only show after the first step has been complete */} + {stepsCompleted > 0 && ( + <> + + + + + + )} {guideConfig?.steps.map((step, index, steps) => { const accordionId = htmlIdGenerator(`accordion${index}`)(); - const stepStatus = getStepStatus(steps, index, guideState?.activeStep); - - return ( - - ); + const stepState = guideState?.steps[index]; + + if (stepState) { + return ( + + ); + } })} + + {guideState?.status === 'ready_to_complete' && ( + + + + {i18n.translate('guidedOnboarding.dropdownPanel.elasticButtonLabel', { + defaultMessage: 'Continue using Elastic', + })} + + + + )} diff --git a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx index e6a300b6b6742..8a98d87debf1a 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel_step.tsx @@ -20,7 +20,8 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import type { StepStatus, StepConfig } from '../types'; +import type { StepStatus, GuideStepIds } from '../../common/types'; +import type { StepConfig } from '../types'; import { getGuidePanelStepStyles } from './guide_panel_step.styles'; interface GuideStepProps { @@ -28,7 +29,7 @@ interface GuideStepProps { stepStatus: StepStatus; stepConfig: StepConfig; stepNumber: number; - navigateToStep: (step: StepConfig) => void; + navigateToStep: (stepId: GuideStepIds, stepLocation: StepConfig['location']) => void; } export const GuideStep = ({ @@ -64,7 +65,7 @@ export const GuideStep = ({ id={accordionId} buttonContent={buttonContent} arrowDisplay="right" - forceState={stepStatus === 'in_progress' ? 'open' : 'closed'} + forceState={stepStatus === 'in_progress' || stepStatus === 'active' ? 'open' : 'closed'} > <> @@ -78,14 +79,21 @@ export const GuideStep = ({ - {stepStatus === 'in_progress' && ( + {(stepStatus === 'in_progress' || stepStatus === 'active') && ( - navigateToStep(stepConfig)} fill> - {/* TODO: Support for conditional "Continue" button label if user revists a step - https://github.com/elastic/kibana/issues/139752 */} - {i18n.translate('guidedOnboarding.dropdownPanel.startStepButtonLabel', { - defaultMessage: 'Start', - })} + navigateToStep(stepConfig.id, stepConfig.location)} + fill + data-test-subj="activeStepButtonLabel" + > + {stepStatus === 'active' + ? i18n.translate('guidedOnboarding.dropdownPanel.startStepButtonLabel', { + defaultMessage: 'Start', + }) + : i18n.translate('guidedOnboarding.dropdownPanel.continueStepButtonLabel', { + defaultMessage: 'Continue', + })} diff --git a/src/plugins/guided_onboarding/public/constants/guides_config.ts b/src/plugins/guided_onboarding/public/constants/guides_config/index.ts similarity index 92% rename from src/plugins/guided_onboarding/public/constants/guides_config.ts rename to src/plugins/guided_onboarding/public/constants/guides_config/index.ts index 0cbee9d4b12b6..9ce81cf9d4698 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config.ts +++ b/src/plugins/guided_onboarding/public/constants/guides_config/index.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { GuidesConfig } from '../types'; +import type { GuidesConfig } from '../../types'; import { securityConfig } from './security'; import { observabilityConfig } from './observability'; import { searchConfig } from './search'; diff --git a/src/plugins/guided_onboarding/public/constants/observability.ts b/src/plugins/guided_onboarding/public/constants/guides_config/observability.ts similarity index 97% rename from src/plugins/guided_onboarding/public/constants/observability.ts rename to src/plugins/guided_onboarding/public/constants/guides_config/observability.ts index 3f96ad1268173..91b69490131b3 100644 --- a/src/plugins/guided_onboarding/public/constants/observability.ts +++ b/src/plugins/guided_onboarding/public/constants/guides_config/observability.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { GuideConfig } from '../types'; +import type { GuideConfig } from '../../types'; export const observabilityConfig: GuideConfig = { title: 'Observe my infrastructure', diff --git a/src/plugins/guided_onboarding/public/constants/search.ts b/src/plugins/guided_onboarding/public/constants/guides_config/search.ts similarity index 93% rename from src/plugins/guided_onboarding/public/constants/search.ts rename to src/plugins/guided_onboarding/public/constants/guides_config/search.ts index 1f2a26b5f0b93..57d81fdfe1301 100644 --- a/src/plugins/guided_onboarding/public/constants/search.ts +++ b/src/plugins/guided_onboarding/public/constants/guides_config/search.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { GuideConfig } from '../types'; +import type { GuideConfig } from '../../types'; export const searchConfig: GuideConfig = { title: 'Search my data', @@ -50,6 +50,10 @@ export const searchConfig: GuideConfig = { 'Nullam ligula enim, malesuada a finibus vel, cursus sed risus.', 'Vivamus pretium, elit dictum lacinia aliquet, libero nibh dictum enim, a rhoncus leo magna in sapien.', ], + location: { + appID: 'guidedOnboardingExample', + path: 'stepThree', + }, }, ], }; diff --git a/src/plugins/guided_onboarding/public/constants/security.ts b/src/plugins/guided_onboarding/public/constants/guides_config/security.ts similarity index 97% rename from src/plugins/guided_onboarding/public/constants/security.ts rename to src/plugins/guided_onboarding/public/constants/guides_config/security.ts index 2c19e7acc2bed..df17d00d7f2d4 100644 --- a/src/plugins/guided_onboarding/public/constants/security.ts +++ b/src/plugins/guided_onboarding/public/constants/guides_config/security.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { GuideConfig } from '../types'; +import type { GuideConfig } from '../../types'; export const securityConfig: GuideConfig = { title: 'Get started with SIEM', diff --git a/src/plugins/guided_onboarding/public/index.ts b/src/plugins/guided_onboarding/public/index.ts index 5b950b190c375..08ae777bb360f 100755 --- a/src/plugins/guided_onboarding/public/index.ts +++ b/src/plugins/guided_onboarding/public/index.ts @@ -12,9 +12,8 @@ import { GuidedOnboardingPlugin } from './plugin'; export function plugin(ctx: PluginInitializerContext) { return new GuidedOnboardingPlugin(ctx); } -export type { - GuidedOnboardingPluginSetup, - GuidedOnboardingPluginStart, - GuidedOnboardingState, - UseCase, -} from './types'; +export type { GuidedOnboardingPluginSetup, GuidedOnboardingPluginStart } from './types'; + +export type { GuideId, GuideStepIds, GuideState, GuideStep } from '../common/types'; + +export { guidesConfig } from './constants/guides_config'; diff --git a/src/plugins/guided_onboarding/public/plugin.tsx b/src/plugins/guided_onboarding/public/plugin.tsx index 902acaa899e3a..f74e19a03300f 100755 --- a/src/plugins/guided_onboarding/public/plugin.tsx +++ b/src/plugins/guided_onboarding/public/plugin.tsx @@ -20,7 +20,7 @@ import { } from '@kbn/core/public'; import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; -import { +import type { ClientConfigType, GuidedOnboardingPluginSetup, GuidedOnboardingPluginStart, diff --git a/src/plugins/guided_onboarding/public/services/api.test.ts b/src/plugins/guided_onboarding/public/services/api.test.ts index 9f5e20cb9f89d..ffe5596bd7e35 100644 --- a/src/plugins/guided_onboarding/public/services/api.test.ts +++ b/src/plugins/guided_onboarding/public/services/api.test.ts @@ -10,15 +10,33 @@ import { HttpSetup } from '@kbn/core/public'; import { httpServiceMock } from '@kbn/core/public/mocks'; import { firstValueFrom, Subscription } from 'rxjs'; -import { API_BASE_PATH } from '../../common'; -import { ApiService } from './api'; -import { GuidedOnboardingState } from '..'; +import { API_BASE_PATH } from '../../common/constants'; import { guidesConfig } from '../constants/guides_config'; +import type { GuideState } from '../../common/types'; +import { ApiService } from './api'; const searchGuide = 'search'; const firstStep = guidesConfig[searchGuide].steps[0].id; -const secondStep = guidesConfig[searchGuide].steps[1].id; -const lastStep = guidesConfig[searchGuide].steps[2].id; + +const mockActiveSearchGuideState: GuideState = { + guideId: searchGuide, + isActive: true, + status: 'in_progress', + steps: [ + { + id: 'add_data', + status: 'active', + }, + { + id: 'browse_docs', + status: 'inactive', + }, + { + id: 'search_experience', + status: 'inactive', + }, + ], +}; describe('GuidedOnboarding ApiService', () => { let httpClient: jest.Mocked; @@ -41,40 +59,67 @@ describe('GuidedOnboarding ApiService', () => { jest.restoreAllMocks(); }); - describe('fetchGuideState$', () => { + describe('fetchActiveGuideState$', () => { it('sends a request to the get API', () => { - subscription = apiService.fetchGuideState$().subscribe(); + subscription = apiService.fetchActiveGuideState$().subscribe(); expect(httpClient.get).toHaveBeenCalledTimes(1); - expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/state`); + expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { + query: { active: true }, + }); }); it('broadcasts the updated state', async () => { - await apiService.updateGuideState({ - activeGuide: searchGuide, - activeStep: secondStep, - }); + await apiService.activateGuide(searchGuide); + + const state = await firstValueFrom(apiService.fetchActiveGuideState$()); + expect(state).toEqual(mockActiveSearchGuideState); + }); + }); - const state = await firstValueFrom(apiService.fetchGuideState$()); - expect(state).toEqual({ activeGuide: searchGuide, activeStep: secondStep }); + describe('fetchAllGuidesState', () => { + it('sends a request to the get API', async () => { + await apiService.fetchAllGuidesState(); + expect(httpClient.get).toHaveBeenCalledTimes(1); + expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/state`); }); }); describe('updateGuideState', () => { it('sends a request to the put API', async () => { - const state = { - activeGuide: searchGuide, - activeStep: secondStep, + const updatedState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', // update the first step status + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], }; - await apiService.updateGuideState(state as GuidedOnboardingState); + await apiService.updateGuideState(updatedState, false); expect(httpClient.put).toHaveBeenCalledTimes(1); expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { - body: JSON.stringify(state), + body: JSON.stringify(updatedState), }); }); }); describe('isGuideStepActive$', () => { - it('returns true if the step is active', async (done) => { + it('returns true if the step has been started', async (done) => { + const updatedState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }; + await apiService.updateGuideState(updatedState, false); + subscription = apiService .isGuideStepActive$(searchGuide, firstStep) .subscribe((isStepActive) => { @@ -84,9 +129,10 @@ describe('GuidedOnboarding ApiService', () => { }); }); - it('returns false if the step is not active', async (done) => { + it('returns false if the step is not been started', async (done) => { + await apiService.updateGuideState(mockActiveSearchGuideState, false); subscription = apiService - .isGuideStepActive$(searchGuide, secondStep) + .isGuideStepActive$(searchGuide, firstStep) .subscribe((isStepActive) => { if (!isStepActive) { done(); @@ -95,40 +141,192 @@ describe('GuidedOnboarding ApiService', () => { }); }); - describe('completeGuideStep', () => { - it(`completes the step when it's active`, async () => { - await apiService.completeGuideStep(searchGuide, firstStep); + describe('activateGuide', () => { + it('activates a new guide', async () => { + await apiService.activateGuide(searchGuide); + expect(httpClient.put).toHaveBeenCalledTimes(1); - // this assertion depends on the guides config, we are checking for the next step expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { body: JSON.stringify({ - activeGuide: searchGuide, - activeStep: secondStep, + isActive: true, + status: 'in_progress', + steps: [ + { + id: 'add_data', + status: 'active', + }, + { + id: 'browse_docs', + status: 'inactive', + }, + { + id: 'search_experience', + status: 'inactive', + }, + ], + guideId: searchGuide, }), }); }); - it(`completes the guide when the last step is active`, async () => { - httpClient.get.mockResolvedValue({ - // this state depends on the guides config - state: { activeGuide: searchGuide, activeStep: lastStep }, - }); - apiService.setup(httpClient); + it('reactivates a guide that has already been started', async () => { + await apiService.activateGuide(searchGuide, mockActiveSearchGuideState); - await apiService.completeGuideStep(searchGuide, lastStep); expect(httpClient.put).toHaveBeenCalledTimes(1); - // this assertion depends on the guides config, we are checking for the last step expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { body: JSON.stringify({ - activeGuide: searchGuide, - activeStep: 'completed', + ...mockActiveSearchGuideState, + isActive: true, + }), + }); + }); + }); + + describe('completeGuide', () => { + const readyToCompleteGuideState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: 'add_data', + status: 'complete', + }, + { + id: 'browse_docs', + status: 'complete', + }, + { + id: 'search_experience', + status: 'complete', + }, + ], + }; + + beforeEach(async () => { + await apiService.updateGuideState(readyToCompleteGuideState, false); + }); + + it('updates the selected guide and marks it as complete', async () => { + await apiService.completeGuide(searchGuide); + + expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { + body: JSON.stringify({ + ...readyToCompleteGuideState, + isActive: false, + status: 'complete', }), }); }); - it(`does nothing if the step is not active`, async () => { - await apiService.completeGuideStep(searchGuide, secondStep); - expect(httpClient.put).not.toHaveBeenCalled(); + it('returns undefined if the selected guide is not active', async () => { + const completedState = await apiService.completeGuide('observability'); // not active + expect(completedState).not.toBeDefined(); + }); + + it('returns undefined if the selected guide has uncompleted steps', async () => { + const incompleteGuideState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: 'add_data', + status: 'complete', + }, + { + id: 'browse_docs', + status: 'complete', + }, + { + id: 'search_experience', + status: 'in_progress', + }, + ], + }; + await apiService.updateGuideState(incompleteGuideState, false); + + const completedState = await apiService.completeGuide(searchGuide); + expect(completedState).not.toBeDefined(); + }); + }); + + describe('startGuideStep', () => { + beforeEach(async () => { + await apiService.updateGuideState(mockActiveSearchGuideState, false); + }); + + it('updates the selected step and marks it as in_progress', async () => { + await apiService.startGuideStep(searchGuide, firstStep); + + expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { + body: JSON.stringify({ + ...mockActiveSearchGuideState, + isActive: true, + status: 'in_progress', + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }), + }); + }); + + it('returns undefined if the selected guide is not active', async () => { + const startState = await apiService.startGuideStep('observability', 'add_data'); // not active + expect(startState).not.toBeDefined(); + }); + }); + + describe('completeGuideStep', () => { + it(`completes the step when it's in progress`, async () => { + const updatedState: GuideState = { + ...mockActiveSearchGuideState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'in_progress', // Mark a step as in_progress in order to test the "completeGuideStep" behavior + }, + mockActiveSearchGuideState.steps[1], + mockActiveSearchGuideState.steps[2], + ], + }; + await apiService.updateGuideState(updatedState, false); + + await apiService.completeGuideStep(searchGuide, firstStep); + + // Once on update, once on complete + expect(httpClient.put).toHaveBeenCalledTimes(2); + // Verify the completed step now has a "complete" status, and the subsequent step is "active" + expect(httpClient.put).toHaveBeenLastCalledWith(`${API_BASE_PATH}/state`, { + body: JSON.stringify({ + ...updatedState, + steps: [ + { + id: mockActiveSearchGuideState.steps[0].id, + status: 'complete', + }, + { + id: mockActiveSearchGuideState.steps[1].id, + status: 'active', + }, + mockActiveSearchGuideState.steps[2], + ], + }), + }); + }); + + it('returns undefined if the selected guide is not active', async () => { + const startState = await apiService.completeGuideStep('observability', 'add_data'); // not active + expect(startState).not.toBeDefined(); + }); + + it('does nothing if the step is not in progress', async () => { + await apiService.updateGuideState(mockActiveSearchGuideState, false); + + await apiService.completeGuideStep(searchGuide, firstStep); + // Expect only 1 call from updateGuideState() + expect(httpClient.put).toHaveBeenCalledTimes(1); }); }); }); diff --git a/src/plugins/guided_onboarding/public/services/api.ts b/src/plugins/guided_onboarding/public/services/api.ts index b99975c3a837a..1adfaa5d8cc23 100644 --- a/src/plugins/guided_onboarding/public/services/api.ts +++ b/src/plugins/guided_onboarding/public/services/api.ts @@ -9,31 +9,42 @@ import { HttpSetup } from '@kbn/core/public'; import { BehaviorSubject, map, from, concatMap, of, Observable, firstValueFrom } from 'rxjs'; -import { API_BASE_PATH } from '../../common'; -import { GuidedOnboardingState, UseCase } from '../types'; -import { getNextStep, isLastStep } from './helpers'; +import { API_BASE_PATH } from '../../common/constants'; +import type { GuideState, GuideId, GuideStep, GuideStepIds } from '../../common/types'; +import { isLastStep, getGuideConfig } from './helpers'; export class ApiService { private client: HttpSetup | undefined; - private onboardingGuideState$!: BehaviorSubject; + private onboardingGuideState$!: BehaviorSubject; + public isGuidePanelOpen$: BehaviorSubject = new BehaviorSubject(false); public setup(httpClient: HttpSetup): void { this.client = httpClient; - this.onboardingGuideState$ = new BehaviorSubject(undefined); + this.onboardingGuideState$ = new BehaviorSubject(undefined); } /** - * An Observable with the guided onboarding state. + * An Observable with the active guide state. * Initially the state is fetched from the backend. * Subsequently, the observable is updated automatically, when the state changes. */ - public fetchGuideState$(): Observable { + public fetchActiveGuideState$(): Observable { // TODO add error handling if this.client has not been initialized or request fails return this.onboardingGuideState$.pipe( concatMap((state) => state === undefined - ? from(this.client!.get<{ state: GuidedOnboardingState }>(`${API_BASE_PATH}/state`)).pipe( - map((response) => response.state) + ? from( + this.client!.get<{ state: GuideState[] }>(`${API_BASE_PATH}/state`, { + query: { + active: true, + }, + }) + ).pipe( + map((response) => { + // There should only be 1 active guide + const hasState = response.state.length === 1; + return hasState ? response.state[0] : undefined; + }) ) : of(state) ) @@ -41,25 +52,45 @@ export class ApiService { } /** - * Updates the state of the guided onboarding - * @param {GuidedOnboardingState} newState the new state of the guided onboarding - * @return {Promise} a promise with the updated state or undefined if the update fails + * Async operation to fetch state for all guides + * This is useful for the onboarding landing page, + * where all guides are displayed with their corresponding status + */ + public async fetchAllGuidesState(): Promise<{ state: GuideState[] } | undefined> { + if (!this.client) { + throw new Error('ApiService has not be initialized.'); + } + + try { + return await this.client.get<{ state: GuideState[] }>(`${API_BASE_PATH}/state`); + } catch (error) { + // TODO handle error + // eslint-disable-next-line no-console + console.error(error); + } + } + + /** + * Updates the SO with the updated guide state and refreshes the observables + * This is largely used internally and for tests + * @param {GuideState} guideState the updated guide state + * @param {boolean} panelState boolean to determine whether the dropdown panel should open or not + * @return {Promise} a promise with the updated guide state */ public async updateGuideState( - newState: GuidedOnboardingState - ): Promise<{ state: GuidedOnboardingState } | undefined> { + newState: GuideState, + panelState: boolean + ): Promise<{ state: GuideState } | undefined> { if (!this.client) { throw new Error('ApiService has not be initialized.'); } try { - const response = await this.client.put<{ state: GuidedOnboardingState }>( - `${API_BASE_PATH}/state`, - { - body: JSON.stringify(newState), - } - ); + const response = await this.client.put<{ state: GuideState }>(`${API_BASE_PATH}/state`, { + body: JSON.stringify(newState), + }); this.onboardingGuideState$.next(newState); + this.isGuidePanelOpen$.next(panelState); return response; } catch (error) { // TODO handle error @@ -69,47 +100,204 @@ export class ApiService { } /** - * An observable with the boolean value if the step is active. - * Returns true, if the passed params identify the guide step that is currently active. + * Activates a guide by guideId + * This is useful for the onboarding landing page, when a user selects a guide to start or continue + * @param {GuideId} guideID the id of the guide (one of search, observability, security) + * @param {GuideState} guideState (optional) the selected guide state, if it exists (i.e., if a user is continuing a guide) + * @return {Promise} a promise with the updated guide state + */ + public async activateGuide( + guideId: GuideId, + guide?: GuideState + ): Promise<{ state: GuideState } | undefined> { + // If we already have the guide state (i.e., user has already started the guide at some point), + // simply pass it through so they can continue where they left off, and update the guide to active + if (guide) { + return await this.updateGuideState( + { + ...guide, + isActive: true, + }, + true + ); + } + + // If this is the 1st-time attempt, we need to create the default state + const guideConfig = getGuideConfig(guideId); + + if (guideConfig) { + const updatedSteps: GuideStep[] = guideConfig.steps.map((step, stepIndex) => { + const isFirstStep = stepIndex === 0; + return { + id: step.id, + // Only the first step should be activated when activating a new guide + status: isFirstStep ? 'active' : 'inactive', + }; + }); + + const updatedGuide: GuideState = { + isActive: true, + status: 'in_progress', + steps: updatedSteps, + guideId, + }; + + return await this.updateGuideState(updatedGuide, true); + } + } + + /** + * Completes a guide + * Updates the overall guide status to 'complete', and marks it as inactive + * This is useful for the dropdown panel, when the user clicks the "Continue using Elastic" button after completing all steps + * @param {GuideId} guideID the id of the guide (one of search, observability, security) + * @return {Promise} a promise with the updated guide state + */ + public async completeGuide(guideId: GuideId): Promise<{ state: GuideState } | undefined> { + const guideState = await firstValueFrom(this.fetchActiveGuideState$()); + + // For now, returning undefined if consumer attempts to complete a guide that is not active + if (guideState?.guideId !== guideId) { + return undefined; + } + + // All steps should be complete at this point + // However, we do a final check here as a safeguard + const allStepsComplete = + Boolean(guideState.steps.find((step) => step.status !== 'complete')) === false; + + if (allStepsComplete) { + const updatedGuide: GuideState = { + ...guideState, + isActive: false, + status: 'complete', + }; + + return await this.updateGuideState(updatedGuide, false); + } + } + + /** + * An observable with the boolean value if the step is in progress (i.e., user clicked "Start" on a step). + * Returns true, if the passed params identify the guide step that is currently in progress. * Returns false otherwise. - * @param {string} guideID the id of the guide (one of search, observability, security) - * @param {string} stepID the id of the step in the guide + * @param {GuideId} guideId the id of the guide (one of search, observability, security) + * @param {GuideStepIds} stepId the id of the step in the guide * @return {Observable} an observable with the boolean value */ - public isGuideStepActive$(guideID: string, stepID: string): Observable { - return this.fetchGuideState$().pipe( - map((state) => { - return state ? state.activeGuide === guideID && state.activeStep === stepID : false; + public isGuideStepActive$(guideId: GuideId, stepId: GuideStepIds): Observable { + return this.fetchActiveGuideState$().pipe( + map((activeGuideState) => { + // Return false right away if the guide itself is not active + if (activeGuideState?.guideId !== guideId) { + return false; + } + + // If the guide is active, next check the step + const selectedStep = activeGuideState.steps.find((step) => step.id === stepId); + return selectedStep ? selectedStep.status === 'in_progress' : false; }) ); } + /** + * Updates the selected step to 'in_progress' state + * This is useful for the dropdown panel, when the user clicks the "Start" button for the active step + * @param {GuideId} guideId the id of the guide (one of search, observability, security) + * @param {GuideStepIds} stepId the id of the step + * @return {Promise} a promise with the updated guide state + */ + public async startGuideStep( + guideId: GuideId, + stepId: GuideStepIds + ): Promise<{ state: GuideState } | undefined> { + const guideState = await firstValueFrom(this.fetchActiveGuideState$()); + + // For now, returning undefined if consumer attempts to start a step for a guide that isn't active + if (guideState?.guideId !== guideId) { + return undefined; + } + + const updatedSteps: GuideStep[] = guideState.steps.map((step) => { + // Mark the current step as in_progress + if (step.id === stepId) { + return { + id: step.id, + status: 'in_progress', + }; + } + + // All other steps return as-is + return step; + }); + + const currentGuide: GuideState = { + guideId, + isActive: true, + status: 'in_progress', + steps: updatedSteps, + }; + + return await this.updateGuideState(currentGuide, false); + } + /** * Completes the guide step identified by the passed params. * A noop if the passed step is not active. - * Completes the current guide, if the step is the last one in the guide. - * @param {string} guideID the id of the guide (one of search, observability, security) - * @param {string} stepID the id of the step in the guide + * @param {GuideId} guideId the id of the guide (one of search, observability, security) + * @param {GuideStepIds} stepId the id of the step in the guide * @return {Promise} a promise with the updated state or undefined if the operation fails */ public async completeGuideStep( - guideID: string, - stepID: string - ): Promise<{ state: GuidedOnboardingState } | undefined> { - const isStepActive = await firstValueFrom(this.isGuideStepActive$(guideID, stepID)); - if (isStepActive) { - if (isLastStep(guideID, stepID)) { - await this.updateGuideState({ activeGuide: guideID as UseCase, activeStep: 'completed' }); - } else { - const nextStepID = getNextStep(guideID, stepID); - if (nextStepID !== undefined) { - await this.updateGuideState({ - activeGuide: guideID as UseCase, - activeStep: nextStepID, - }); + guideId: GuideId, + stepId: GuideStepIds + ): Promise<{ state: GuideState } | undefined> { + const guideState = await firstValueFrom(this.fetchActiveGuideState$()); + + // For now, returning undefined if consumer attempts to complete a step for a guide that isn't active + if (guideState?.guideId !== guideId) { + return undefined; + } + + const currentStepIndex = guideState.steps.findIndex((step) => step.id === stepId); + const currentStep = guideState.steps[currentStepIndex]; + const isCurrentStepInProgress = currentStep ? currentStep.status === 'in_progress' : false; + + if (isCurrentStepInProgress) { + const updatedSteps: GuideStep[] = guideState.steps.map((step, stepIndex) => { + const isCurrentStep = step.id === currentStep!.id; + const isNextStep = stepIndex === currentStepIndex + 1; + + // Mark the current step as complete + if (isCurrentStep) { + return { + id: step.id, + status: 'complete', + }; } - } + + // Update the next step to active status + if (isNextStep) { + return { + id: step.id, + status: 'active', + }; + } + + // All other steps return as-is + return step; + }); + + const currentGuide: GuideState = { + guideId, + isActive: true, + status: isLastStep(guideId, stepId) ? 'ready_to_complete' : 'in_progress', + steps: updatedSteps, + }; + + return await this.updateGuideState(currentGuide, true); } + return undefined; } } diff --git a/src/plugins/guided_onboarding/public/services/helpers.test.ts b/src/plugins/guided_onboarding/public/services/helpers.test.ts index 6e1a3cc3e0049..bc09a9185424c 100644 --- a/src/plugins/guided_onboarding/public/services/helpers.test.ts +++ b/src/plugins/guided_onboarding/public/services/helpers.test.ts @@ -7,11 +7,10 @@ */ import { guidesConfig } from '../constants/guides_config'; -import { getNextStep, isLastStep } from './helpers'; +import { isLastStep } from './helpers'; const searchGuide = 'search'; const firstStep = guidesConfig[searchGuide].steps[0].id; -const secondStep = guidesConfig[searchGuide].steps[1].id; const lastStep = guidesConfig[searchGuide].steps[2].id; describe('GuidedOnboarding ApiService helpers', () => { @@ -27,21 +26,4 @@ describe('GuidedOnboarding ApiService helpers', () => { expect(result).toBe(false); }); }); - - describe('getNextStep', () => { - it('returns id of the next step', () => { - const result = getNextStep(searchGuide, firstStep); - expect(result).toEqual(secondStep); - }); - - it('returns undefined if the params are not part of the config', () => { - const result = getNextStep('some_guide', 'some_step'); - expect(result).toBeUndefined(); - }); - - it(`returns undefined if it's the last step`, () => { - const result = getNextStep(searchGuide, lastStep); - expect(result).toBeUndefined(); - }); - }); }); diff --git a/src/plugins/guided_onboarding/public/services/helpers.ts b/src/plugins/guided_onboarding/public/services/helpers.ts index 3eb0bfca9b751..ea4245be99150 100644 --- a/src/plugins/guided_onboarding/public/services/helpers.ts +++ b/src/plugins/guided_onboarding/public/services/helpers.ts @@ -6,12 +6,13 @@ * Side Public License, v 1. */ +import type { GuideId } from '../../common/types'; import { guidesConfig } from '../constants/guides_config'; -import { GuideConfig, StepConfig, UseCase } from '../types'; +import type { GuideConfig, StepConfig } from '../types'; export const getGuideConfig = (guideID?: string): GuideConfig | undefined => { if (guideID && Object.keys(guidesConfig).includes(guideID)) { - return guidesConfig[guideID as UseCase]; + return guidesConfig[guideID as GuideId]; } }; @@ -32,11 +33,3 @@ export const isLastStep = (guideID: string, stepID: string): boolean => { } return false; }; - -export const getNextStep = (guideID: string, stepID: string): string | undefined => { - const guide = getGuideConfig(guideID); - const activeStepIndex = getStepIndex(guideID, stepID); - if (activeStepIndex > -1 && guide?.steps[activeStepIndex + 1]) { - return guide?.steps[activeStepIndex + 1].id; - } -}; diff --git a/src/plugins/guided_onboarding/public/types.ts b/src/plugins/guided_onboarding/public/types.ts index 7925fa8ae69d7..4a16c16336c6b 100755 --- a/src/plugins/guided_onboarding/public/types.ts +++ b/src/plugins/guided_onboarding/public/types.ts @@ -7,6 +7,7 @@ */ import { NavigationPublicPluginStart } from '@kbn/navigation-plugin/public'; +import { GuideId, GuideStepIds, StepStatus } from '../common/types'; import { ApiService } from './services/api'; // eslint-disable-next-line @typescript-eslint/no-empty-interface @@ -20,11 +21,12 @@ export interface AppPluginStartDependencies { navigation: NavigationPublicPluginStart; } -export type UseCase = 'observability' | 'security' | 'search'; -export type StepStatus = 'incomplete' | 'complete' | 'in_progress'; +export interface ClientConfigType { + ui: boolean; +} export interface StepConfig { - id: string; + id: GuideStepIds; title: string; descriptionList: string[]; location?: { @@ -33,7 +35,6 @@ export interface StepConfig { }; status?: StepStatus; } - export interface GuideConfig { title: string; description: string; @@ -45,14 +46,5 @@ export interface GuideConfig { } export type GuidesConfig = { - [key in UseCase]: GuideConfig; + [key in GuideId]: GuideConfig; }; - -export interface GuidedOnboardingState { - activeGuide: UseCase | 'unset'; - activeStep: string | 'unset' | 'completed'; -} - -export interface ClientConfigType { - ui: boolean; -} diff --git a/src/plugins/guided_onboarding/server/routes/index.ts b/src/plugins/guided_onboarding/server/routes/index.ts index e4e4fcaae5054..cce5aad08b1e5 100755 --- a/src/plugins/guided_onboarding/server/routes/index.ts +++ b/src/plugins/guided_onboarding/server/routes/index.ts @@ -7,92 +7,154 @@ */ import { schema } from '@kbn/config-schema'; -import { IRouter, SavedObjectsClient } from '@kbn/core/server'; -import { - guidedSetupDefaultState, - guidedSetupSavedObjectsId, - guidedSetupSavedObjectsType, -} from '../saved_objects'; - -const doesGuidedSetupExist = async (savedObjectsClient: SavedObjectsClient): Promise => { - return savedObjectsClient - .find({ type: guidedSetupSavedObjectsType }) - .then((foundSavedObjects) => foundSavedObjects.total > 0); +import type { IRouter, SavedObjectsClient } from '@kbn/core/server'; +import type { GuideState } from '../../common/types'; +import { guidedSetupSavedObjectsType } from '../saved_objects'; + +const findGuideById = async (savedObjectsClient: SavedObjectsClient, guideId: string) => { + return savedObjectsClient.find({ + type: guidedSetupSavedObjectsType, + search: `"${guideId}"`, + searchFields: ['guideId'], + }); +}; + +const findActiveGuide = async (savedObjectsClient: SavedObjectsClient) => { + return savedObjectsClient.find({ + type: guidedSetupSavedObjectsType, + search: 'true', + searchFields: ['isActive'], + }); +}; + +const findAllGuides = async (savedObjectsClient: SavedObjectsClient) => { + return savedObjectsClient.find({ type: guidedSetupSavedObjectsType }); }; export function defineRoutes(router: IRouter) { + // Fetch all guides state; optionally pass the query param ?active=true to only return the active guide router.get( { path: '/api/guided_onboarding/state', - validate: false, + validate: { + query: schema.object({ + active: schema.maybe(schema.boolean()), + }), + }, }, async (context, request, response) => { const coreContext = await context.core; const soClient = coreContext.savedObjects.client as SavedObjectsClient; - const stateExists = await doesGuidedSetupExist(soClient); - if (stateExists) { - const guidedSetupSO = await soClient.get( - guidedSetupSavedObjectsType, - guidedSetupSavedObjectsId - ); + const existingGuides = + request.query.active === true + ? await findActiveGuide(soClient) + : await findAllGuides(soClient); + + if (existingGuides.total > 0) { + const guidesState = existingGuides.saved_objects.map((guide) => guide.attributes); return response.ok({ - body: { state: guidedSetupSO.attributes }, + body: { state: guidesState }, }); } else { + // If no SO exists, we assume state hasn't been stored yet and return an empty array return response.ok({ - body: { state: guidedSetupDefaultState }, + body: { state: [] }, }); } } ); + // Update the guide state for the passed guideId; + // will also check any existing active guides and update them to an "inactive" state router.put( { path: '/api/guided_onboarding/state', validate: { body: schema.object({ - activeGuide: schema.maybe(schema.string()), - activeStep: schema.maybe(schema.string()), + status: schema.string(), + guideId: schema.string(), + isActive: schema.boolean(), + steps: schema.arrayOf( + schema.object({ + status: schema.string(), + id: schema.string(), + }) + ), }), }, }, async (context, request, response) => { - const activeGuide = request.body.activeGuide; - const activeStep = request.body.activeStep; - const attributes = { - activeGuide: activeGuide ?? 'unset', - activeStep: activeStep ?? 'unset', - }; + const updatedGuideState = request.body; + const coreContext = await context.core; - const soClient = coreContext.savedObjects.client as SavedObjectsClient; + const savedObjectsClient = coreContext.savedObjects.client as SavedObjectsClient; - const stateExists = await doesGuidedSetupExist(soClient); + const selectedGuideSO = await findGuideById(savedObjectsClient, updatedGuideState.guideId); + + // If the SO already exists, update it, else create a new SO + if (selectedGuideSO.total > 0) { + const updatedGuides = []; + const selectedGuide = selectedGuideSO.saved_objects[0]; + + updatedGuides.push({ + type: guidedSetupSavedObjectsType, + id: selectedGuide.id, + attributes: { + ...updatedGuideState, + }, + }); + + // If we are activating a new guide, we need to check if there is a different, existing active guide + // If yes, we need to mark it as inactive (only 1 guide can be active at a time) + if (updatedGuideState.isActive) { + const activeGuideSO = await findActiveGuide(savedObjectsClient); + + if (activeGuideSO.total > 0) { + const activeGuide = activeGuideSO.saved_objects[0]; + if (activeGuide.attributes.guideId !== updatedGuideState.guideId) { + updatedGuides.push({ + type: guidedSetupSavedObjectsType, + id: activeGuide.id, + attributes: { + ...activeGuide.attributes, + isActive: false, + }, + }); + } + } + } + + const updatedGuidesResponse = await savedObjectsClient.bulkUpdate(updatedGuides); - if (stateExists) { - const updatedGuidedSetupSO = await soClient.update( - guidedSetupSavedObjectsType, - guidedSetupSavedObjectsId, - attributes - ); return response.ok({ - body: { state: updatedGuidedSetupSO.attributes }, + body: { + state: updatedGuidesResponse, + }, }); } else { - const guidedSetupSO = await soClient.create( - guidedSetupSavedObjectsType, - { - ...guidedSetupDefaultState, - ...attributes, - }, - { - id: guidedSetupSavedObjectsId, + // If we are activating a new guide, we need to check if there is an existing active guide + // If yes, we need to mark it as inactive (only 1 guide can be active at a time) + if (updatedGuideState.isActive) { + const activeGuideSO = await findActiveGuide(savedObjectsClient); + + if (activeGuideSO.total > 0) { + const activeGuide = activeGuideSO.saved_objects[0]; + await savedObjectsClient.update(guidedSetupSavedObjectsType, activeGuide.id, { + ...activeGuide.attributes, + isActive: false, + }); } + } + + const createdGuideResponse = await savedObjectsClient.create( + guidedSetupSavedObjectsType, + updatedGuideState ); return response.ok({ body: { - state: guidedSetupSO.attributes, + state: createdGuideResponse, }, }); } diff --git a/src/plugins/guided_onboarding/server/saved_objects/guided_setup.ts b/src/plugins/guided_onboarding/server/saved_objects/guided_setup.ts index 2576148868597..6fe0a90339f69 100644 --- a/src/plugins/guided_onboarding/server/saved_objects/guided_setup.ts +++ b/src/plugins/guided_onboarding/server/saved_objects/guided_setup.ts @@ -8,12 +8,8 @@ import { SavedObjectsType } from '@kbn/core/server'; -export const guidedSetupSavedObjectsType = 'guided-setup-state'; -export const guidedSetupSavedObjectsId = 'guided-setup-state-id'; -export const guidedSetupDefaultState = { - activeGuide: 'unset', - activeStep: 'unset', -}; +export const guidedSetupSavedObjectsType = 'guided-onboarding-guide-state'; + export const guidedSetupSavedObjects: SavedObjectsType = { name: guidedSetupSavedObjectsType, hidden: false, @@ -22,11 +18,11 @@ export const guidedSetupSavedObjects: SavedObjectsType = { mappings: { dynamic: false, properties: { - activeGuide: { + guideId: { type: 'keyword', }, - activeStep: { - type: 'keyword', + isActive: { + type: 'boolean', }, }, }, diff --git a/src/plugins/guided_onboarding/server/saved_objects/index.ts b/src/plugins/guided_onboarding/server/saved_objects/index.ts index 2fa5366cc2b9e..58195618a0ec4 100644 --- a/src/plugins/guided_onboarding/server/saved_objects/index.ts +++ b/src/plugins/guided_onboarding/server/saved_objects/index.ts @@ -6,9 +6,4 @@ * Side Public License, v 1. */ -export { - guidedSetupSavedObjects, - guidedSetupSavedObjectsType, - guidedSetupSavedObjectsId, - guidedSetupDefaultState, -} from './guided_setup'; +export { guidedSetupSavedObjects, guidedSetupSavedObjectsType } from './guided_setup'; From 3bad88157a06e21753e8d3052f2fd81ca987d615 Mon Sep 17 00:00:00 2001 From: Jiawei Wu <74562234+JiaweiWu@users.noreply.github.com> Date: Mon, 3 Oct 2022 12:53:10 -0700 Subject: [PATCH 38/51] [RAM] Storybook implementation for triggers actions UI shareable components (#139157) * Storybook implementation for triggers actions UI shareable components * Fix storybooks useUiSettings * Fix API renaming and add KPI Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Xavier Mouligneau --- .../action_type_registry.tsx} | 11 +- .../.storybook/context/http.ts | 305 ++++++++++++++++++ .../.storybook/context/rule_type_registry.ts | 31 ++ .../.storybook/decorator.tsx | 124 +++++++ .../.storybook/{main.js => main.ts} | 4 +- .../triggers_actions_ui/.storybook/manager.ts | 20 ++ .../.storybook/preview.tsx | 31 ++ .../rule_event_log_list.stories.tsx | 82 +++++ .../components/rule_event_log_list.test.tsx | 80 +---- .../rule_details/components/test_helpers.ts | 26 ++ .../rule_status_dropdown.stories.tsx | 72 +++++ .../components/rule_tag_badge.stories.tsx | 70 ++++ .../components/rule_tag_filter.stories.tsx | 100 ++++++ .../components/rules_list.stories.tsx | 112 +++++++ .../plugins/triggers_actions_ui/tsconfig.json | 1 + 15 files changed, 986 insertions(+), 83 deletions(-) rename x-pack/plugins/triggers_actions_ui/.storybook/{preview.js => context/action_type_registry.tsx} (63%) create mode 100644 x-pack/plugins/triggers_actions_ui/.storybook/context/http.ts create mode 100644 x-pack/plugins/triggers_actions_ui/.storybook/context/rule_type_registry.ts create mode 100644 x-pack/plugins/triggers_actions_ui/.storybook/decorator.tsx rename x-pack/plugins/triggers_actions_ui/.storybook/{main.js => main.ts} (75%) create mode 100644 x-pack/plugins/triggers_actions_ui/.storybook/manager.ts create mode 100644 x-pack/plugins/triggers_actions_ui/.storybook/preview.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.stories.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.stories.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_badge.stories.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_filter.stories.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.stories.tsx diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/preview.js b/x-pack/plugins/triggers_actions_ui/.storybook/context/action_type_registry.tsx similarity index 63% rename from x-pack/plugins/triggers_actions_ui/.storybook/preview.js rename to x-pack/plugins/triggers_actions_ui/.storybook/context/action_type_registry.tsx index 3200746243d47..73a28b53d0a8b 100644 --- a/x-pack/plugins/triggers_actions_ui/.storybook/preview.js +++ b/x-pack/plugins/triggers_actions_ui/.storybook/context/action_type_registry.tsx @@ -5,6 +5,11 @@ * 2.0. */ -import { EuiThemeProviderDecorator } from '@kbn/kibana-react-plugin/common'; - -export const decorators = [EuiThemeProviderDecorator]; +export const getActionTypeRegistry = () => { + return { + has: () => true, + register: () => {}, + get: () => {}, + list: () => [], + }; +}; diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/context/http.ts b/x-pack/plugins/triggers_actions_ui/.storybook/context/http.ts new file mode 100644 index 0000000000000..dc260578641f8 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/.storybook/context/http.ts @@ -0,0 +1,305 @@ +/* + * 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 uuid from 'uuid'; +import { DecoratorFn } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import type { HttpStart, HttpFetchOptions, HttpHandler } from '@kbn/core/public'; +import { + mockLogResponse, + getMockLogResponse, +} from '../../public/application/sections/rule_details/components/test_helpers'; + +const getMockRule = () => { + const id = uuid.v4(); + return { + id, + name: `test rule - ${id}`, + tags: ['tag1', 'tag2', 'tag3'], + enabled: true, + ruleTypeId: 'test_rule_type', + schedule: { interval: '1s' }, + actions: [], + consumer: 'alerts', + params: { name: 'test rule type name' }, + scheduledTaskId: null, + createdBy: null, + updatedBy: null, + apiKeyOwner: null, + throttle: '1m', + muteAll: false, + mutedInstanceIds: [], + executionStatus: { + status: 'active', + lastDuration: 500, + lastExecutionDate: new Date('2020-08-20T19:23:38Z'), + error: null, + }, + monitoring: { + execution: { + history: [ + { + success: true, + duration: 1000000, + }, + { + success: true, + duration: 200000, + }, + { + success: false, + duration: 300000, + }, + ], + calculated_metrics: { + success_ratio: 0.66, + p50: 200000, + p95: 300000, + p99: 300000, + }, + }, + }, + }; +}; + +const mockRuleTypes = [ + { + id: 'test_rule_type', + name: 'some rule type', + action_groups: [{ id: 'default', name: 'Default' }], + recovery_action_group: { id: 'recovered', name: 'Recovered' }, + action_variables: { context: [], state: [] }, + default_action_group_id: 'default', + producer: 'alerts', + minimum_license_required: 'basic', + enabled_in_license: true, + authorized_consumers: { + alerts: { read: true, all: true }, + }, + rule_task_timeout: '1m', + }, +]; + +const mockConfig = { + minimumScheduleInterval: { + value: '1m', + enforce: false, + }, + isUsingSecurity: true, +}; + +const mockConnectorTypes = [ + { + id: 'test', + name: 'Test', + }, + { + id: 'test2', + name: 'Test2', + }, +]; + +const mockHealth = { + isAlertsAvailable: true, +}; + +const mockAggregation = { + rule_execution_status: { ok: 0, active: 0, error: 0, pending: 0, unknown: 0, warning: 0 }, + rule_enabled_status: { enabled: 0, disabled: 0 }, + rule_muted_status: { muted: 0, unmuted: 0 }, + rule_snoozed_status: { snoozed: 0 }, + rule_tags: ['a', 'b'], +}; + +const mockConnectors: any[] = []; + +const mockRuleSummary = { + id: 'rule-id', + name: 'rule-name', + tags: ['tag-1', 'tag-2'], + rule_type_id: 'test-rule-type-id', + consumer: 'rule-consumer', + status: 'OK', + mute_all: false, + throttle: '', + enabled: true, + error_messages: [], + status_start_date: '2022-03-21T07:40:46-07:00', + status_end_date: '2022-03-25T07:40:46-07:00', + alerts: { + foo: { + status: 'OK', + muted: false, + actionGroupId: 'testActionGroup', + }, + }, + execution_duration: { + average: 100, + valuesWithTimestamp: {}, + }, +}; + +const getMockErrorLog = () => { + return { + id: '66b9c04a-d5d3-4ed4-aa7c-94ddaca3ac1d', + timestamp: '2022-03-31T18:03:33.133Z', + type: 'alerting', + message: + "rule execution failure: .es-query:d87fcbd0-b11b-11ec-88f6-293354dba871: 'Mine' - x_content_parse_exception: [parsing_exception] Reason: unknown query [match_allxxxx] did you mean [match_all]?", + }; +}; + +const baseRulesListGetResponse = (path: string) => { + if (path === '/internal/triggers_actions_ui/_config') { + return mockConfig; + } + if (path === '/internal/triggers_actions_ui/_health') { + return mockHealth; + } + if (path === '/api/actions/connectors') { + return mockConnectors; + } + if (path === '/api/alerting/rule_types') { + return mockRuleTypes; + } + if (path === '/api/actions/connector_types') { + return mockConnectorTypes; + } + if (path === '/internal/alerting/rules/_aggregate') { + return mockAggregation; + } +}; + +const emptyRulesListGetResponse = (path: string) => { + if (path === '/internal/alerting/rules/_find') { + return { + data: [], + page: 1, + per_page: 10, + total: 0, + }; + } + return baseRulesListGetResponse(path); +}; + +const rulesListGetResponse = (path: string) => { + if (path === '/internal/alerting/rules/_find') { + return { + data: [getMockRule(), getMockRule(), getMockRule(), getMockRule()], + page: 1, + per_page: 10, + total: 4, + }; + } + return baseRulesListGetResponse(path); +}; + +const rulesListGetPaginatedResponse = (path: string) => { + if (path === '/internal/alerting/rules/_find') { + return { + data: Array.from(Array(10), () => getMockRule()), + page: 1, + per_page: 10, + total: 50, + }; + } + return baseRulesListGetResponse(path); +}; + +const baseEventLogListGetResponse = (path: string) => { + if (path.endsWith('/_alert_summary')) { + return { + ...mockRuleSummary, + execution_duration: { + ...mockRuleSummary.execution_duration, + valuesWithTimestamp: { + '2022-08-18T23:07:28.662Z': 68, + '2022-08-18T23:07:29.662Z': 59, + '2022-08-18T23:07:30.662Z': 20, + '2022-08-18T23:07:31.662Z': 140, + }, + }, + }; + } + if (path.endsWith('/_action_error_log')) { + return { + errors: Array.from(Array(4), () => getMockErrorLog()), + totalErrors: 4, + }; + } + if (path.endsWith('/_execution_kpi')) { + return { + activeAlerts: 49, + erroredActions: 36, + failure: 30, + newAlerts: 1, + recoveredAlerts: 20, + success: 49, + triggeredActions: 49, + unknown: 10, + }; + } +}; + +const emptyEventLogListGetResponse = (path: string) => { + if (path.endsWith('/_alert_summary')) { + return mockRuleSummary; + } + if (path.endsWith('/_execution_log')) { + return { + data: [], + total: 0, + }; + } + return baseEventLogListGetResponse(path); +}; + +const eventLogListGetResponse = (path: string) => { + if (path.endsWith('/_execution_log')) { + return mockLogResponse; + } + return baseEventLogListGetResponse(path); +}; + +const paginatedEventLogListGetResponse = (path: string) => { + if (path.endsWith('/_execution_log')) { + return { + data: Array.from(Array(10), () => getMockLogResponse()), + total: 500, + }; + } + return baseEventLogListGetResponse(path); +}; + +export const getHttp = (context: Parameters[1]) => { + return { + get: (async (path: string, options: HttpFetchOptions) => { + const { id } = context; + if (id === 'app-ruleslist--empty') { + return emptyRulesListGetResponse(path); + } + if (id === 'app-ruleslist--with-rules') { + return rulesListGetResponse(path); + } + if (id === 'app-ruleslist--with-paginated-rules') { + return rulesListGetPaginatedResponse(path); + } + if (id === 'app-ruleeventloglist--empty') { + return emptyEventLogListGetResponse(path); + } + if (id === 'app-ruleeventloglist--with-events') { + return eventLogListGetResponse(path); + } + if (id === 'app-ruleeventloglist--with-paginated-events') { + return paginatedEventLogListGetResponse(path); + } + }) as HttpHandler, + post: (async (path: string, options: HttpFetchOptions) => { + action('POST')(path, options); + }) as HttpHandler, + } as unknown as HttpStart; +}; diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/context/rule_type_registry.ts b/x-pack/plugins/triggers_actions_ui/.storybook/context/rule_type_registry.ts new file mode 100644 index 0000000000000..f8ddcf6f8def4 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/.storybook/context/rule_type_registry.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +const mockRuleType = { + id: 'test_rule_type', + iconClass: 'test', + description: 'Rule when testing', + documentationUrl: 'https://localhost.local/docs', + validate: () => { + return { errors: {} }; + }, + ruleParamsExpression: () => null, + requiresAppContext: false, +}; + +export const getRuleTypeRegistry = () => { + return { + has: () => true, + register: () => {}, + get: () => { + return mockRuleType; + }, + list: () => { + return [mockRuleType]; + }, + }; +}; diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/decorator.tsx b/x-pack/plugins/triggers_actions_ui/.storybook/decorator.tsx new file mode 100644 index 0000000000000..ed2a1d7b17e14 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/.storybook/decorator.tsx @@ -0,0 +1,124 @@ +/* + * 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 uuid from 'uuid'; +import { action } from '@storybook/addon-actions'; +import { DecoratorFn } from '@storybook/react'; +import { EMPTY, of } from 'rxjs'; +import { I18nProvider } from '@kbn/i18n-react'; +import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; +import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common'; +import type { NotificationsStart, ApplicationStart } from '@kbn/core/public'; +import { KibanaContextProvider } from '../public/common/lib/kibana'; +import { ExperimentalFeaturesService } from '../public/common/experimental_features_service'; +import { getHttp } from './context/http'; +import { getRuleTypeRegistry } from './context/rule_type_registry'; +import { getActionTypeRegistry } from './context/action_type_registry'; + +interface StorybookContextDecoratorProps { + context: Parameters[1]; +} + +const handler = (type: string, ...rest: any[]) => { + action(`${type} Toast`)(rest); + return { id: uuid() }; +}; + +const notifications: NotificationsStart = { + toasts: { + add: (params) => handler('add', params), + addDanger: (params) => handler('danger', params), + addError: (params) => handler('error', params), + addWarning: (params) => handler('warning', params), + addSuccess: (params) => handler('success', params), + addInfo: (params) => handler('info', params), + remove: () => {}, + get$: () => of([]), + }, +}; + +const applications = new Map(); + +const application: ApplicationStart = { + currentAppId$: of('fleet'), + navigateToUrl: async (url: string) => { + action(`Navigate to: ${url}`); + }, + navigateToApp: async (app: string) => { + action(`Navigate to: ${app}`); + }, + getUrlForApp: (url: string) => url, + capabilities: { + actions: { + show: true, + save: true, + execute: true, + delete: true, + }, + catalogue: {}, + management: {}, + navLinks: {}, + fleet: { + read: true, + all: true, + }, + fleetv2: { + read: true, + all: true, + }, + }, + applications$: of(applications), +}; + +export const StorybookContextDecorator: React.FC = (props) => { + const { children, context } = props; + const { globals } = context; + const { euiTheme } = globals; + + const darkMode = ['v8.dark', 'v7.dark'].includes(euiTheme); + ExperimentalFeaturesService.init({ + experimentalFeatures: { + rulesListDatagrid: true, + internalAlertsTable: true, + ruleTagFilter: true, + ruleStatusFilter: true, + rulesDetailLogs: true, + }, + }); + return ( + + + + { + if (context.componentId === 'app-ruleslist') { + return 'format:number:defaultPattern'; + } + }, + get$: () => { + if (context.componentId === 'app-ruleslist') { + return of('format:number:defaultPattern'); + } + }, + }, + application, + http: getHttp(context), + actionTypeRegistry: getActionTypeRegistry(), + ruleTypeRegistry: getRuleTypeRegistry(), + }} + > + {children} + + + + + ); +}; diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/main.js b/x-pack/plugins/triggers_actions_ui/.storybook/main.ts similarity index 75% rename from x-pack/plugins/triggers_actions_ui/.storybook/main.js rename to x-pack/plugins/triggers_actions_ui/.storybook/main.ts index 86b48c32f103e..bf63e08d64c32 100644 --- a/x-pack/plugins/triggers_actions_ui/.storybook/main.js +++ b/x-pack/plugins/triggers_actions_ui/.storybook/main.ts @@ -5,4 +5,6 @@ * 2.0. */ -module.exports = require('@kbn/storybook').defaultConfig; +import { defaultConfig } from '@kbn/storybook'; + +module.exports = defaultConfig; diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/manager.ts b/x-pack/plugins/triggers_actions_ui/.storybook/manager.ts new file mode 100644 index 0000000000000..17fb8fc042000 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/.storybook/manager.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 { addons } from '@storybook/addons'; +import { create } from '@storybook/theming'; +import { PANEL_ID } from '@storybook/addon-actions'; + +addons.setConfig({ + theme: create({ + base: 'light', + brandTitle: 'Triggers Actions UI Storybook', + brandUrl: 'https://github.com/elastic/kibana/tree/main/x-pack/plugins/triggers_actions_ui', + }), + showPanel: true, + selectedPanel: PANEL_ID, +}); diff --git a/x-pack/plugins/triggers_actions_ui/.storybook/preview.tsx b/x-pack/plugins/triggers_actions_ui/.storybook/preview.tsx new file mode 100644 index 0000000000000..8f334c0dc921c --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/.storybook/preview.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { addDecorator, DecoratorFn } from '@storybook/react'; +import { Title, Subtitle, Description, Primary, Stories } from '@storybook/addon-docs'; +import { StorybookContextDecorator } from './decorator'; + +const decorator: DecoratorFn = (story, context) => { + return {story()}; +}; + +addDecorator(decorator); + +export const parameters = { + docs: { + page: () => { + <> + + <Subtitle /> + <Description /> + <Primary /> + <Stories /> + </>; + }, + }, +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.stories.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.stories.tsx new file mode 100644 index 0000000000000..8bf88bed72359 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.stories.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ComponentProps } from 'react'; +import { Meta } from '@storybook/react'; +import { RuleEventLogList, RuleEventLogListProps } from './rule_event_log_list'; +import { mockRule, mockRuleType } from './test_helpers'; + +type Args = ComponentProps<typeof RuleEventLogList>; + +const rule = mockRule({ ruleTypeId: 'test-rule-type-id' }); +const ruleType = mockRuleType(); + +export default { + title: 'app/RuleEventLogList', + component: RuleEventLogList, + argTypes: { + rule: { + control: { + type: 'object', + }, + }, + ruleType: { + control: { + type: 'object', + }, + }, + localStorageKey: { + defaultValue: 'xpack.triggersActionsUI.ruleEventLogList.initialColumns', + control: { + type: 'text', + }, + }, + refreshToken: { + control: { + type: 'number', + }, + }, + requestRefresh: {}, + fetchRuleSummary: { + defaultValue: true, + control: { + type: 'boolean', + }, + }, + ruleSummary: { + control: { + type: 'object', + }, + }, + onChangeDuration: {}, + numberOfExecutions: { + control: { + type: 'number', + }, + }, + isLoadingRuleSummary: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + }, + args: { + rule, + ruleType, + }, +} as Meta<Args>; + +const Template = (args: RuleEventLogListProps) => { + return <RuleEventLogList {...args} />; +}; + +export const Empty = Template.bind({}); + +export const WithEvents = Template.bind({}); + +export const WithPaginatedEvents = Template.bind({}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.test.tsx index 541cf94d1d539..96d9c0013fe4e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/rule_event_log_list.test.tsx @@ -19,7 +19,7 @@ import { RULE_EXECUTION_DEFAULT_INITIAL_VISIBLE_COLUMNS, GLOBAL_EXECUTION_DEFAULT_INITIAL_VISIBLE_COLUMNS, } from '../../../constants'; -import { mockRule, mockRuleType, mockRuleSummary } from './test_helpers'; +import { mockRule, mockRuleType, mockRuleSummary, mockLogResponse } from './test_helpers'; import { RuleType } from '../../../../types'; import { loadActionErrorLog } from '../../../lib/rule_api/load_action_error_log'; @@ -33,84 +33,6 @@ const loadActionErrorLogMock = loadActionErrorLog as unknown as jest.MockedFunct typeof loadActionErrorLog >; -const mockLogResponse: any = { - data: [ - { - id: uuid.v4(), - timestamp: '2022-03-20T07:40:44-07:00', - duration: 5000000, - status: 'success', - message: 'rule execution #1', - version: '8.2.0', - num_active_alerts: 2, - num_new_alerts: 4, - num_recovered_alerts: 3, - num_triggered_actions: 10, - num_succeeded_actions: 0, - num_errored_actions: 4, - total_search_duration: 1000000, - es_search_duration: 1400000, - schedule_delay: 2000000, - timed_out: false, - }, - { - id: uuid.v4(), - timestamp: '2022-03-20T07:40:45-07:00', - duration: 6000000, - status: 'success', - message: 'rule execution #2', - version: '8.2.0', - num_active_alerts: 4, - num_new_alerts: 2, - num_recovered_alerts: 4, - num_triggered_actions: 5, - num_succeeded_actions: 3, - num_errored_actions: 0, - total_search_duration: 300000, - es_search_duration: 300000, - schedule_delay: 300000, - timed_out: false, - }, - { - id: uuid.v4(), - timestamp: '2022-03-20T07:40:46-07:00', - duration: 340000, - status: 'failure', - message: 'rule execution #3', - version: '8.2.0', - num_active_alerts: 8, - num_new_alerts: 5, - num_recovered_alerts: 0, - num_triggered_actions: 1, - num_succeeded_actions: 1, - num_errored_actions: 4, - total_search_duration: 2300000, - es_search_duration: 2300000, - schedule_delay: 2300000, - timed_out: false, - }, - { - id: uuid.v4(), - timestamp: '2022-03-21T07:40:46-07:00', - duration: 3000000, - status: 'unknown', - message: 'rule execution #4', - version: '8.2.0', - num_active_alerts: 4, - num_new_alerts: 4, - num_recovered_alerts: 4, - num_triggered_actions: 4, - num_succeeded_actions: 4, - num_errored_actions: 4, - total_search_duration: 400000, - es_search_duration: 400000, - schedule_delay: 400000, - timed_out: false, - }, - ], - total: 4, -}; - const loadExecutionLogAggregationsMock = jest.fn(); const onChangeDurationMock = jest.fn(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/test_helpers.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/test_helpers.ts index 704410f6265fd..9e96487b167a4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/test_helpers.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rule_details/components/test_helpers.ts @@ -8,6 +8,32 @@ import uuid from 'uuid'; import { Rule, RuleSummary, RuleType } from '../../../../types'; +export const getMockLogResponse = () => { + return { + id: uuid.v4(), + timestamp: '2022-03-20T07:40:44-07:00', + duration: 5000000, + status: 'success', + message: 'rule execution #1', + version: '8.2.0', + num_active_alerts: 2, + num_new_alerts: 4, + num_recovered_alerts: 3, + num_triggered_actions: 10, + num_succeeded_actions: 0, + num_errored_actions: 4, + total_search_duration: 1000000, + es_search_duration: 1400000, + schedule_delay: 2000000, + timed_out: false, + }; +}; + +export const mockLogResponse: any = { + data: [getMockLogResponse(), getMockLogResponse(), getMockLogResponse(), getMockLogResponse()], + total: 4, +}; + export function mockRule(overloads: Partial<Rule> = {}): Rule { return { id: uuid.v4(), diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.stories.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.stories.tsx new file mode 100644 index 0000000000000..401fcaf749fb1 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_status_dropdown.stories.tsx @@ -0,0 +1,72 @@ +/* + * 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, { ComponentProps } from 'react'; +import { Story } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { RuleStatusDropdown } from './rule_status_dropdown'; +import { mockRule } from '../../rule_details/components/test_helpers'; + +type Args = ComponentProps<typeof RuleStatusDropdown>; + +const rule = mockRule({ ruleTypeId: 'test-rule-type-id' }); + +export default { + title: 'app/RuleStatusDropdown', + component: RuleStatusDropdown, + argTypes: { + rule: { + defaultValue: rule, + control: { + type: 'object', + }, + }, + onRuleChanged: {}, + enableRule: {}, + disableRule: {}, + snoozeRule: {}, + unsnoozeRule: {}, + isEditable: { + defaultValue: true, + control: { + type: 'boolean', + }, + }, + direction: { + defaultValue: 'column', + control: { + type: 'text', + }, + }, + hideSnoozeOption: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + }, + args: { + rule, + onRuleChanged: (...args: any) => action('onRuleChanged')(args), + enableRule: (...args: any) => action('enableRule')(args), + disableRule: (...args: any) => action('disableRule')(args), + snoozeRule: (...args: any) => action('snoozeRule')(args), + unsnoozeRule: (...args: any) => action('unsnoozeRule')(args), + }, +}; + +const Template: Story<Args> = (args) => { + return <RuleStatusDropdown {...args} />; +}; + +export const EnabledRule = Template.bind({}); + +export const DisabledRule = Template.bind({}); + +DisabledRule.args = { + rule: mockRule({ enabled: false }), +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_badge.stories.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_badge.stories.tsx new file mode 100644 index 0000000000000..4e5abf410afa1 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_badge.stories.tsx @@ -0,0 +1,70 @@ +/* + * 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, { ComponentProps } from 'react'; +import { Story } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { RuleTagBadge } from './rule_tag_badge'; + +type Args = ComponentProps<typeof RuleTagBadge>; + +export default { + title: 'app/RuleTagBadge', + component: RuleTagBadge, + argTypes: { + isOpen: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + onClick: {}, + onClose: {}, + tagsOutPopover: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + tags: { + defaultValue: ['tag1', 'tag2', 'tag3'], + control: { + type: 'object', + }, + }, + badgeDataTestSubj: { + control: { + type: 'text', + }, + }, + titleDataTestSubj: { + control: { + type: 'text', + }, + }, + tagItemDataTestSubj: { + control: { + type: 'text', + }, + }, + }, + args: { + onClick: () => action('onClick')(), + onClose: () => action('onClose')(), + }, +}; + +const Template: Story<Args> = (args) => { + return <RuleTagBadge {...args} />; +}; + +export const Default = Template.bind({}); + +export const OutPopover = Template.bind({}); +OutPopover.args = { + tagsOutPopover: true, +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_filter.stories.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_filter.stories.tsx new file mode 100644 index 0000000000000..7e3f3f696969e --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_tag_filter.stories.tsx @@ -0,0 +1,100 @@ +/* + * 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, { ComponentProps } from 'react'; +import { Story } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { RuleTagFilter } from './rule_tag_filter'; + +type Args = ComponentProps<typeof RuleTagFilter>; + +export default { + title: 'app/RuleTagFilter', + component: RuleTagFilter, + argTypes: { + tags: { + defaultValue: ['tag1', 'tag2', 'tag3'], + control: { + type: 'object', + }, + }, + selectedTags: { + defaultValue: [], + control: { + type: 'object', + }, + }, + isGrouped: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + isLoading: { + defaultValue: false, + control: { + type: 'boolean', + }, + }, + loadingMessage: { + control: { + type: 'text', + }, + }, + noMatchesMessage: { + control: { + type: 'text', + }, + }, + emptyMessage: { + control: { + type: 'text', + }, + }, + errorMessage: { + control: { + type: 'text', + }, + }, + dataTestSubj: { + control: { + type: 'text', + }, + }, + selectableDataTestSubj: { + control: { + type: 'text', + }, + }, + optionDataTestSubj: { + control: { + type: 'text', + }, + }, + buttonDataTestSubj: { + control: { + type: 'text', + }, + }, + onChange: {}, + }, + args: { + onChange: (...args: any) => action('onChange')(args), + }, +}; + +const Template: Story<Args> = (args) => { + return <RuleTagFilter {...args} />; +}; + +export const Default = Template.bind({}); + +export const Selected = Template.bind({}); + +Selected.args = { + selectedTags: ['tag1'], +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.stories.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.stories.tsx new file mode 100644 index 0000000000000..487da3e973653 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rules_list.stories.tsx @@ -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 React, { ComponentProps, useEffect } from 'react'; +import { Meta } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import { MemoryRouter, useLocation } from 'react-router-dom'; +import { RulesList, RulesListProps } from './rules_list'; + +type Args = ComponentProps<typeof RulesList>; + +export default { + title: 'app/RulesList', + component: RulesList, + decorators: [ + (StoryComponent) => { + return ( + <MemoryRouter> + <StoryComponent /> + </MemoryRouter> + ); + }, + ], + argTypes: { + filteredRuleTypes: { + defaultValue: [], + control: { + type: 'object', + }, + }, + showActionFilter: { + defaultValue: true, + control: { + type: 'boolean', + }, + }, + showCreateRuleButton: { + defaultValue: true, + control: { + type: 'boolean', + }, + }, + ruleDetailsRoute: { + control: { + type: 'text', + }, + }, + statusFilter: { + defaultValue: [], + control: { + type: 'object', + }, + }, + lastResponseFilter: { + defaultValue: [], + control: { + type: 'object', + }, + }, + onStatusFilterChange: { + action: 'onStatusFilterChange', + }, + onLastResponseFilterChange: { + action: 'onLastResponseFilterChange', + }, + refresh: { + control: { + type: 'date', + }, + }, + rulesListKey: { + control: { + type: 'text', + }, + }, + visibleColumns: { + defaultValue: [ + 'ruleName', + 'ruleTags', + 'ruleExecutionStatusLastDate', + 'ruleSnoozeNotify', + 'ruleScheduleInterval', + 'ruleExecutionStatusLastDuration', + 'ruleExecutionPercentile', + 'ruleExecutionSuccessRatio', + 'ruleExecutionStatus', + 'ruleExecutionState', + ], + control: { + type: 'object', + }, + }, + }, +} as Meta<Args>; + +const Template = (args: RulesListProps) => { + const location = useLocation(); + useEffect(() => { + action('location')(location); + }, [location]); + return <RulesList {...args} />; +}; + +export const Empty = Template.bind({}); + +export const WithRules = Template.bind({}); + +export const WithPaginatedRules = Template.bind({}); diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json index 8618be6c9c285..c98e5f1dfd511 100644 --- a/x-pack/plugins/triggers_actions_ui/tsconfig.json +++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json @@ -7,6 +7,7 @@ "declarationMap": true }, "include": [ + ".storybook/**/*", "server/**/*", "public/**/*", "common/**/*", From 392f49020baa191a7ac5eb84ae2ba2d60d38385c Mon Sep 17 00:00:00 2001 From: Lola <omolola.akinleye@elastic.co> Date: Mon, 3 Oct 2022 16:07:49 -0400 Subject: [PATCH 39/51] fix: missing metadata info from text-ouput events (#142392) --- .../public/components/session_view_detail_panel/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/session_view/public/components/session_view_detail_panel/index.tsx b/x-pack/plugins/session_view/public/components/session_view_detail_panel/index.tsx index 947af14db0d2f..7eb01bfb5223f 100644 --- a/x-pack/plugins/session_view/public/components/session_view_detail_panel/index.tsx +++ b/x-pack/plugins/session_view/public/components/session_view_detail_panel/index.tsx @@ -66,10 +66,10 @@ export const SessionViewDetailPanel = ({ }), content: ( <DetailPanelMetadataTab - processHost={selectedProcess?.events[0]?.host} - processContainer={selectedProcess?.events[0]?.container} - processOrchestrator={selectedProcess?.events[0]?.orchestrator} - processCloud={selectedProcess?.events[0]?.cloud} + processHost={selectedProcess?.getDetails()?.host} + processContainer={selectedProcess?.getDetails()?.container} + processOrchestrator={selectedProcess?.getDetails()?.orchestrator} + processCloud={selectedProcess?.getDetails()?.cloud} /> ), }, From fdba8d3a560fde90082c639f0e1f3ff27443c7ce Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Mon, 3 Oct 2022 16:20:39 -0500 Subject: [PATCH 40/51] [ML] Fix Index data visualizer doc count when time field is not defined (#142409) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../requests/get_document_stats.ts | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts index e6ef6f2d77831..7b2ef96ba2b72 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_document_stats.ts @@ -121,7 +121,7 @@ export const getDocumentCountStats = async ( }, }); - const getSearchParams = (aggregations: unknown) => ({ + const getSearchParams = (aggregations: unknown, trackTotalHits = false) => ({ index, body: { query, @@ -133,13 +133,17 @@ export const getDocumentCountStats = async ( : {}), ...(isPopulatedObject(runtimeFieldMap) ? { runtime_mappings: runtimeFieldMap } : {}), }, - track_total_hits: false, + track_total_hits: trackTotalHits, size: 0, }); const firstResp = await search .search( { - params: getSearchParams(getAggsWithRandomSampling(initialDefaultProbability)), + params: getSearchParams( + getAggsWithRandomSampling(initialDefaultProbability), + // Track total hits if time field is not defined + timeFieldName === undefined + ), }, searchOptions ) @@ -152,6 +156,22 @@ export const getDocumentCountStats = async ( )}` ); } + + // If time field is not defined, no need to show the document count chart + // Just need to return the tracked total hits + if (timeFieldName === undefined) { + const trackedTotalHits = + typeof firstResp.rawResponse.hits.total === 'number' + ? firstResp.rawResponse.hits.total + : firstResp.rawResponse.hits.total?.value; + return { + ...result, + randomlySampled: false, + took: firstResp.rawResponse.took, + totalCount: trackedTotalHits ?? 0, + }; + } + if (isDefined(probability)) { return { ...result, From 44d028fdf871292e74948ac8cd6650d1418e0929 Mon Sep 17 00:00:00 2001 From: Kevin Logan <56395104+kevinlog@users.noreply.github.com> Date: Mon, 3 Oct 2022 17:53:07 -0400 Subject: [PATCH 41/51] [Security Solution] Trusted Apps about text updated to add new docs link (#142467) --- packages/kbn-doc-links/src/get_doc_links.ts | 1 + packages/kbn-doc-links/src/types.ts | 1 + .../artifact_list_page/artifact_list_page.tsx | 23 ++++++++++- .../components/no_data_empty_state.tsx | 16 +++++++- .../view/components/artifacts_docs_link.tsx | 40 +++++++++++++++++++ .../trusted_apps/view/components/form.tsx | 11 ++++- .../pages/trusted_apps/view/translations.ts | 2 +- .../trusted_apps/view/trusted_apps_list.tsx | 6 ++- 8 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/artifacts_docs_link.tsx diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 3a0b89c1f0d1b..8ef5a68a3f98c 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -363,6 +363,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { eventFilters: `${SECURITY_SOLUTION_DOCS}event-filters.html`, blocklist: `${SECURITY_SOLUTION_DOCS}blocklist.html`, threatIntelInt: `${SECURITY_SOLUTION_DOCS}es-threat-intel-integrations.html`, + endpointArtifacts: `${SECURITY_SOLUTION_DOCS}endpoint-artifacts.html`, policyResponseTroubleshooting: { full_disk_access: `${SECURITY_SOLUTION_DOCS}deploy-elastic-endpoint.html#enable-fda-endpoint`, macos_system_ext: `${SECURITY_SOLUTION_DOCS}deploy-elastic-endpoint.html#system-extension-endpoint`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 7cd785ee194fa..aed1b552bdb30 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -265,6 +265,7 @@ export interface DocLinks { readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; + readonly endpointArtifacts: string; readonly policyResponseTroubleshooting: { full_disk_access: string; macos_system_ext: string; diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.tsx b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.tsx index 0586034d15550..344dbd6cd8349 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.tsx +++ b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/artifact_list_page.tsx @@ -74,6 +74,7 @@ export interface ArtifactListPageProps { allowCardEditAction?: boolean; allowCardDeleteAction?: boolean; allowCardCreateAction?: boolean; + secondaryPageInfo?: React.ReactNode; } export const ArtifactListPage = memo<ArtifactListPageProps>( @@ -82,6 +83,7 @@ export const ArtifactListPage = memo<ArtifactListPageProps>( ArtifactFormComponent, searchableFields = DEFAULT_EXCEPTION_LIST_ITEM_SEARCHABLE_FIELDS, labels: _labels = {}, + secondaryPageInfo, onFormSubmit, flyoutSize, 'data-test-subj': dataTestSubj, @@ -240,6 +242,24 @@ export const ArtifactListPage = memo<ArtifactListPageProps>( setSelectedItemForEdit(undefined); }, []); + const description = useMemo(() => { + const subtitleText = labels.pageAboutInfo ? ( + <span data-test-subj="header-panel-subtitle">{labels.pageAboutInfo}</span> + ) : undefined; + const detailedPageInfoElement = secondaryPageInfo ? ( + <> + <EuiSpacer size="m" /> + {secondaryPageInfo} + </> + ) : undefined; + return ( + <> + {subtitleText} + {detailedPageInfoElement} + </> + ); + }, [labels.pageAboutInfo, secondaryPageInfo]); + if (isPageInitializing) { return <ManagementPageLoader data-test-subj={getTestId('pageLoader')} />; } @@ -249,7 +269,7 @@ export const ArtifactListPage = memo<ArtifactListPageProps>( headerBackComponent={backButtonHeaderComponent} hideHeader={!doesDataExist} title={labels.pageTitle} - subtitle={labels.pageAboutInfo} + subtitle={description} actions={ allowCardCreateAction && ( <EuiButton @@ -300,6 +320,7 @@ export const ArtifactListPage = memo<ArtifactListPageProps>( primaryButtonLabel={labels.emptyStatePrimaryButtonLabel} backComponent={backButtonEmptyComponent} data-test-subj={getTestId('emptyState')} + secondaryAboutInfo={secondaryPageInfo} /> ) : ( <> diff --git a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/no_data_empty_state.tsx b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/no_data_empty_state.tsx index e2dfd992f0e80..87fb9414b894a 100644 --- a/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/no_data_empty_state.tsx +++ b/x-pack/plugins/security_solution/public/management/components/artifact_list_page/components/no_data_empty_state.tsx @@ -7,7 +7,7 @@ import React, { memo } from 'react'; import styled, { css } from 'styled-components'; -import { EuiButton, EuiEmptyPrompt } from '@elastic/eui'; +import { EuiButton, EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; import { ManagementEmptyStateWrapper } from '../../management_empty_state_wrapper'; import { useTestIdGenerator } from '../../../hooks/use_test_id_generator'; @@ -25,6 +25,7 @@ export const NoDataEmptyState = memo<{ /** Should the Add button be disabled */ isAddDisabled?: boolean; backComponent?: React.ReactNode; + secondaryAboutInfo?: React.ReactNode; 'data-test-subj'?: string; }>( ({ @@ -35,6 +36,7 @@ export const NoDataEmptyState = memo<{ titleLabel, aboutInfo, primaryButtonLabel, + secondaryAboutInfo, }) => { const getTestId = useTestIdGenerator(dataTestSubj); @@ -44,7 +46,17 @@ export const NoDataEmptyState = memo<{ data-test-subj={dataTestSubj} iconType="plusInCircle" title={<h2 data-test-subj={getTestId('title')}>{titleLabel}</h2>} - body={<div data-test-subj={getTestId('aboutInfo')}>{aboutInfo}</div>} + body={ + <div data-test-subj={getTestId('aboutInfo')}> + {aboutInfo} + {secondaryAboutInfo ? ( + <> + <EuiSpacer size="m" /> + {secondaryAboutInfo} + </> + ) : undefined} + </div> + } actions={[ <EuiButton fill diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/artifacts_docs_link.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/artifacts_docs_link.tsx new file mode 100644 index 0000000000000..aed23a9f1e30e --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/artifacts_docs_link.tsx @@ -0,0 +1,40 @@ +/* + * 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, { memo } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiLink } from '@elastic/eui'; +import { useKibana } from '../../../../../common/lib/kibana'; + +export const TrustedAppsArtifactsDocsLink = memo(() => { + const { + docLinks: { + links: { securitySolution }, + }, + } = useKibana().services; + + return ( + <> + <FormattedMessage + id="xpack.securitySolution.trustedApps.docsLinkInfoStart" + defaultMessage="Have too many alerts? Add an " + /> + <EuiLink target="_blank" href={`${securitySolution.endpointArtifacts}`}> + <FormattedMessage + id="xpack.securitySolution.trustedApps.docsLinkText" + defaultMessage="endpoint alert exception" + /> + </EuiLink> + <FormattedMessage + id="xpack.securitySolution.trustedApps.docsLinkInfoEnd" + defaultMessage=" instead." + /> + </> + ); +}); + +TrustedAppsArtifactsDocsLink.displayName = 'TrustedAppsArtifactsDocsLink'; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/form.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/form.tsx index 333e0da92cceb..90e1dcc1c0c89 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/form.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/form.tsx @@ -71,6 +71,7 @@ import { } from '../../../../../../common/endpoint/service/artifacts/constants'; import type { ArtifactFormComponentProps } from '../../../../components/artifact_list_page'; import { isGlobalPolicyEffected } from '../../../../components/effected_policy_select/utils'; +import { TrustedAppsArtifactsDocsLink } from './artifacts_docs_link'; interface FieldValidationState { /** If this fields state is invalid. Drives display of errors on the UI */ @@ -419,7 +420,15 @@ export const TrustedAppsForm = memo<ArtifactFormComponentProps>( <EuiSpacer size="xs" /> {mode === 'create' && ( <EuiText size="s" data-test-subj={getTestId('about')}> - <p>{DETAILS_HEADER_DESCRIPTION}</p> + <p> + {DETAILS_HEADER_DESCRIPTION} + { + <> + <EuiSpacer size="m" /> + <TrustedAppsArtifactsDocsLink /> + </> + } + </p> </EuiText> )} <EuiSpacer size="m" /> diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts index c19b3c78d0f8c..02ada2533f9b8 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/translations.ts @@ -25,7 +25,7 @@ export const DETAILS_HEADER_DESCRIPTION = i18n.translate( 'xpack.securitySolution.trustedApps.details.header.description', { defaultMessage: - 'Trusted applications improve performance or alleviate conflicts with other applications running on your hosts.', + 'Add a trusted application to improve performance or alleviate conflicts with other applications running on your hosts. Trusted applications may still generate alerts in some cases.', } ); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx index acb4c4ae13bce..33912a5b795c4 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_list.tsx @@ -17,6 +17,7 @@ import { ArtifactListPage } from '../../../components/artifact_list_page'; import { TrustedAppsApiClient } from '../service'; import { TrustedAppsForm } from './components/form'; import { SEARCHABLE_FIELDS } from '../constants'; +import { TrustedAppsArtifactsDocsLink } from './components/artifacts_docs_link'; const TRUSTED_APPS_PAGE_LABELS: ArtifactListPageProps['labels'] = { pageTitle: i18n.translate('xpack.securitySolution.trustedApps.pageTitle', { @@ -24,7 +25,7 @@ const TRUSTED_APPS_PAGE_LABELS: ArtifactListPageProps['labels'] = { }), pageAboutInfo: i18n.translate('xpack.securitySolution.trustedApps.pageAboutInfo', { defaultMessage: - 'Trusted applications improve performance or alleviate conflicts with other applications running on your hosts.', + 'Add a trusted application to improve performance or alleviate conflicts with other applications running on your hosts. Trusted applications may still generate alerts in some cases.', }), pageAddButtonTitle: i18n.translate('xpack.securitySolution.trustedApps.pageAddButtonTitle', { defaultMessage: 'Add trusted application', @@ -92,7 +93,7 @@ const TRUSTED_APPS_PAGE_LABELS: ArtifactListPageProps['labels'] = { }), emptyStateInfo: i18n.translate('xpack.securitySolution.trustedApps.emptyStateInfo', { defaultMessage: - 'Add a trusted application to improve performance or alleviate conflicts with other applications running on your hosts.', + 'Add a trusted application to improve performance or alleviate conflicts with other applications running on your hosts. Trusted applications may still generate alerts in some cases.', }), emptyStatePrimaryButtonLabel: i18n.translate( 'xpack.securitySolution.trustedApps.emptyStatePrimaryButtonLabel', @@ -117,6 +118,7 @@ export const TrustedAppsList = memo(() => { labels={TRUSTED_APPS_PAGE_LABELS} data-test-subj="trustedAppsListPage" searchableFields={SEARCHABLE_FIELDS} + secondaryPageInfo={<TrustedAppsArtifactsDocsLink />} /> ); }); From 9a8008b00b5cd4f68c7a39a681a69e940094f8ad Mon Sep 17 00:00:00 2001 From: Rodney Norris <rodney.norris@elastic.co> Date: Mon, 3 Oct 2022 16:54:22 -0500 Subject: [PATCH 42/51] [Enterprise Search] pipelines copy tweaks (#142406) Updated copy on the pipelines tab and modal when using an API-based index to explicitly call-out required actions in API requests to run the ingest pipeline. --- .../pipelines/ingest_pipeline_modal.tsx | 53 ++++++++++++----- .../search_index/pipelines/pipelines.tsx | 59 ++++++++++++++----- 2 files changed, 83 insertions(+), 29 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ingest_pipeline_modal.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ingest_pipeline_modal.tsx index b60da157ebf1f..a245c5db97882 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ingest_pipeline_modal.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ingest_pipeline_modal.tsx @@ -25,6 +25,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; import { DEFAULT_PIPELINE_NAME } from '../../../../../../common/constants'; @@ -91,21 +92,43 @@ export const IngestPipelineModal: React.FC<IngestPipelineModalProps> = ({ <EuiFlexGroup direction="column" gutterSize="none"> <EuiFlexItem> <EuiText color="subdued" size="s"> - {displayOnly - ? i18n.translate( - 'xpack.enterpriseSearch.content.index.pipelines.ingestModal.modalBodyAPIText', - { - defaultMessage: - 'This pipeline runs automatically on all Crawler and Connector indices created through Enterprise Search. To use this configuration on API-based indices you can use the sample cURL request below.', - } - ) - : i18n.translate( - 'xpack.enterpriseSearch.content.index.pipelines.ingestModal.modalBodyConnectorText', - { - defaultMessage: - 'This pipeline runs automatically on all Crawler and Connector indices created through Enterprise Search.', - } - )} + {displayOnly ? ( + <> + <p> + <FormattedMessage + id="xpack.enterpriseSearch.content.index.pipelines.ingestModal.modalBodyAPIText" + defaultMessage="{apiIndex} Changes made to the settings below are for reference only. These settings will not be persisted to your index or pipeline." + values={{ + apiIndex: ( + <strong> + {i18n.translate( + 'xpack.enterpriseSearch.content.index.pipelines.ingestModal.apiIndex', + { defaultMessage: 'This is an API-based index.' } + )} + </strong> + ), + }} + /> + </p> + <p> + {i18n.translate( + 'xpack.enterpriseSearch.content.index.pipelines.ingestModal.modalBodyAPITextCont', + { + defaultMessage: + "In order to use this pipeline on your API-based indices you'll need to explicitly reference it in your API requests.", + } + )} + </p> + </> + ) : ( + i18n.translate( + 'xpack.enterpriseSearch.content.index.pipelines.ingestModal.modalBodyConnectorText', + { + defaultMessage: + 'This pipeline runs automatically on all Crawler and Connector indices created through Enterprise Search.', + } + ) + )} </EuiText> </EuiFlexItem> <EuiSpacer /> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx index 949e9610954c1..07be63b54f3b5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines.tsx @@ -15,6 +15,7 @@ import { i18n } from '@kbn/i18n'; import { DataPanel } from '../../../../shared/data_panel/data_panel'; import { docLinks } from '../../../../shared/doc_links'; +import { isApiIndex } from '../../../utils/indices'; import { IngestPipelinesCard } from './ingest_pipelines_card'; import { AddMLInferencePipelineButton } from './ml_inference/add_ml_inference_button'; @@ -23,9 +24,15 @@ import { MlInferencePipelineProcessorsCard } from './ml_inference_pipeline_proce import { PipelinesLogic } from './pipelines_logic'; export const SearchIndexPipelines: React.FC = () => { - const { showAddMlInferencePipelineModal } = useValues(PipelinesLogic); + const { + showAddMlInferencePipelineModal, + hasIndexIngestionPipeline, + index, + pipelineState: { name: pipelineName }, + } = useValues(PipelinesLogic); const { closeAddMlInferencePipelineModal, openAddMlInferencePipelineModal } = useActions(PipelinesLogic); + const apiIndex = isApiIndex(index); return ( <> @@ -54,12 +61,23 @@ export const SearchIndexPipelines: React.FC = () => { )} </h2> } - subtitle={i18n.translate( - 'xpack.enterpriseSearch.content.indices.pipelines.ingestionPipeline.subtitle', - { - defaultMessage: 'Ingest pipelines optimize your index for search applications', - } - )} + subtitle={ + apiIndex + ? i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.ingestionPipeline.apiIndexSubtitle', + { + defaultMessage: + "Ingest pipelines optimize your index for search applications. If you'd like to use these pipelines in your API-based index, you'll need to reference them explicitly in your API requests.", + } + ) + : i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.ingestionPipeline.subtitle', + { + defaultMessage: + 'Ingest pipelines optimize your index for search applications', + } + ) + } iconType="logstashInput" > <IngestPipelinesCard /> @@ -88,13 +106,26 @@ export const SearchIndexPipelines: React.FC = () => { )} </h2> } - subtitle={i18n.translate( - 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.subtitle', - { - defaultMessage: - 'Inference pipelines will be run as processors from the Enterprise Search Ingest Pipeline', - } - )} + subtitle={ + apiIndex && hasIndexIngestionPipeline + ? i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.subtitleAPIindex', + { + defaultMessage: + "Inference pipelines will be run as processors from the Enterprise Search Ingest Pipeline. In order to use these pipeline on API-based indices you'll need to reference the {pipelineName} pipeline in your API requests.", + values: { + pipelineName, + }, + } + ) + : i18n.translate( + 'xpack.enterpriseSearch.content.indices.pipelines.mlInferencePipelines.subtitle', + { + defaultMessage: + 'Inference pipelines will be run as processors from the Enterprise Search Ingest Pipeline', + } + ) + } iconType="compute" action={ <AddMLInferencePipelineButton onClick={() => openAddMlInferencePipelineModal()} /> From 01113b265bd1d90f086c0c2e1286201f201b1365 Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski <tomasz.ciecierski@elastic.co> Date: Tue, 4 Oct 2022 02:47:29 +0200 Subject: [PATCH 43/51] [Osquery] Another batch of small fixes (#142193) Co-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../cypress/e2e/roles/alert_test.cy.ts | 104 ++++++++++++------ .../cypress/e2e/roles/t1_analyst.cy.ts | 2 +- .../fixtures/saved_objects/rule.ndjson | 3 +- x-pack/plugins/osquery/kibana.json | 1 + .../osquery/public/actions/actions_table.tsx | 41 ++++++- .../public/common/schemas/ecs/v8.4.0.json | 1 - .../public/common/schemas/ecs/v8.5.0.json | 1 + .../public/live_queries/form/index.tsx | 25 +++-- .../osquery/public/live_queries/index.tsx | 5 +- .../osquery/public/packs/packs_table.tsx | 17 ++- .../queries/ecs_mapping_editor_field.tsx | 55 ++++----- .../public/packs/queries/query_flyout.tsx | 4 +- .../public/routes/saved_queries/edit/form.tsx | 4 +- .../routes/saved_queries/list/index.tsx | 56 ++++++---- .../public/routes/saved_queries/new/form.tsx | 4 +- .../scripts/roles_users/t1_analyst/role.json | 10 ++ .../scripts/schema_formatter/ecs_formatter.ts | 2 +- .../lib/osquery_app_context_services.ts | 8 ++ x-pack/plugins/osquery/server/plugin.ts | 1 + .../live_query/create_live_query_route.ts | 42 ++++++- .../routes/live_query/osquery_parser.ts | 77 +++++++++++++ x-pack/plugins/osquery/server/types.ts | 2 + .../markdown_editor/plugins/osquery/index.tsx | 3 +- .../timeline_actions/alert_context_menu.tsx | 8 +- .../event_details/flyout/footer.tsx | 7 +- 25 files changed, 365 insertions(+), 118 deletions(-) delete mode 100644 x-pack/plugins/osquery/public/common/schemas/ecs/v8.4.0.json create mode 100644 x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json create mode 100644 x-pack/plugins/osquery/server/routes/live_query/osquery_parser.ts diff --git a/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts b/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts index 5d25b6599b13c..3adffecd77848 100644 --- a/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/roles/alert_test.cy.ts @@ -8,7 +8,12 @@ import { ROLES } from '../../test'; import { ArchiverMethod, runKbnArchiverScript } from '../../tasks/archiver'; import { login } from '../../tasks/login'; -import { findAndClickButton, findFormFieldByRowsLabelAndType } from '../../tasks/live_query'; +import { + checkResults, + findAndClickButton, + findFormFieldByRowsLabelAndType, + submitQuery, +} from '../../tasks/live_query'; import { preparePack } from '../../tasks/packs'; import { closeModalIfVisible } from '../../tasks/integrations'; import { navigateTo } from '../../tasks/navigation'; @@ -18,43 +23,76 @@ describe('Alert_Test', () => { runKbnArchiverScript(ArchiverMethod.LOAD, 'pack'); runKbnArchiverScript(ArchiverMethod.LOAD, 'rule'); }); - beforeEach(() => { - login(ROLES.alert_test); - }); after(() => { runKbnArchiverScript(ArchiverMethod.UNLOAD, 'pack'); runKbnArchiverScript(ArchiverMethod.UNLOAD, 'rule'); }); - it('should be able to run live query', () => { - const PACK_NAME = 'testpack'; - const RULE_NAME = 'Test-rule'; - navigateTo('/app/osquery'); - preparePack(PACK_NAME); - findAndClickButton('Edit'); - cy.contains(`Edit ${PACK_NAME}`); - findFormFieldByRowsLabelAndType( - 'Scheduled agent policies (optional)', - 'fleet server {downArrow}{enter}' - ); - findAndClickButton('Update pack'); - closeModalIfVisible(); - cy.contains(PACK_NAME); - cy.visit('/app/security/rules'); - cy.contains(RULE_NAME).click(); - cy.wait(2000); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); - cy.getBySel('ruleSwitch').click(); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'false'); - cy.getBySel('ruleSwitch').click(); - cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); - cy.visit('/app/security/alerts'); - cy.getBySel('expand-event').first().click(); - cy.getBySel('take-action-dropdown-btn').click(); - cy.getBySel('osquery-action-item').click(); - - cy.contains('Run Osquery'); - cy.contains('Permission denied'); + describe('alert_test role', () => { + it('should not be able to run live query', () => { + login(ROLES.alert_test); + + const PACK_NAME = 'testpack'; + const RULE_NAME = 'Test-rule'; + navigateTo('/app/osquery'); + preparePack(PACK_NAME); + findAndClickButton('Edit'); + cy.contains(`Edit ${PACK_NAME}`); + findFormFieldByRowsLabelAndType( + 'Scheduled agent policies (optional)', + 'fleet server {downArrow}{enter}' + ); + findAndClickButton('Update pack'); + closeModalIfVisible(); + cy.contains(PACK_NAME); + cy.visit('/app/security/rules'); + cy.contains(RULE_NAME).click(); + cy.wait(2000); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); + cy.getBySel('ruleSwitch').click(); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'false'); + cy.getBySel('ruleSwitch').click(); + cy.getBySel('ruleSwitch').should('have.attr', 'aria-checked', 'true'); + cy.visit('/app/security/alerts'); + cy.getBySel('expand-event').first().click(); + cy.getBySel('take-action-dropdown-btn').click(); + cy.getBySel('osquery-action-item').click(); + + cy.contains('Run Osquery'); + cy.contains('Permission denied'); + }); + }); + + describe('t1_analyst role', () => { + it('should be able to run rule investigation guide query', () => { + login(ROLES.t1_analyst); + + navigateTo('/app/osquery'); + + cy.visit('/app/security/alerts'); + cy.getBySel('expand-event').first().click(); + + cy.contains('Get processes').click(); + submitQuery(); + checkResults(); + }); + + it('should not be able to run custom query', () => { + login(ROLES.t1_analyst); + + navigateTo('/app/osquery'); + + cy.visit('/app/security/alerts'); + cy.getBySel('expand-event').first().click(); + + cy.contains('Get processes').click(); + + cy.intercept('POST', '/api/osquery/live_queries', (req) => { + req.body.query = 'select * from processes limit 10'; + }); + submitQuery(); + cy.contains('Forbidden'); + }); }); }); diff --git a/x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts b/x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts index 8cd90d200bca7..2df197f5f63ce 100644 --- a/x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/roles/t1_analyst.cy.ts @@ -50,7 +50,7 @@ describe('T1 Analyst - READ + runSavedQueries ', () => { cy.contains('New live query').should('not.be.disabled'); cy.contains('select * from uptime'); cy.wait(1000); - cy.react('EuiTableBody').first().react('DefaultItemAction').first().click(); + cy.react('EuiTableBody').first().react('CustomItemAction').first().click(); cy.contains(SAVED_QUERY_ID); submitQuery(); checkResults(); diff --git a/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson b/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson index f688dc0731c7f..d1804c3aafec6 100644 --- a/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson +++ b/x-pack/plugins/osquery/cypress/fixtures/saved_objects/rule.ndjson @@ -47,7 +47,8 @@ "winlogbeat-*" ], "query": "_id:*", - "filters": [] + "filters": [], + "note": "!{osquery{\"query\":\"SELECT * FROM processes;\",\"label\":\"Get processes\",\"ecs_mapping\":{\"process.pid\":{\"field\":\"pid\"},\"process.name\":{\"field\":\"name\"},\"process.executable\":{\"field\":\"path\"},\"process.args\":{\"field\":\"cmdline\"},\"process.working_directory\":{\"field\":\"cwd\"},\"user.id\":{\"field\":\"uid\"},\"group.id\":{\"field\":\"gid\"},\"process.parent.pid\":{\"field\":\"parent\"},\"process.pgid\":{\"field\":\"pgroup\"}}}}\n\n!{osquery{\"query\":\"select * from users;\",\"label\":\"Get users\"}}" }, "schedule": { "interval": "5m" diff --git a/x-pack/plugins/osquery/kibana.json b/x-pack/plugins/osquery/kibana.json index 63e7718368ce1..ec5443abd6fb1 100644 --- a/x-pack/plugins/osquery/kibana.json +++ b/x-pack/plugins/osquery/kibana.json @@ -19,6 +19,7 @@ "navigation", "taskManager", "triggersActionsUi", + "ruleRegistry", "security" ], "server": true, diff --git a/x-pack/plugins/osquery/public/actions/actions_table.tsx b/x-pack/plugins/osquery/public/actions/actions_table.tsx index f34a775edf8f1..51eadd954cc4d 100644 --- a/x-pack/plugins/osquery/public/actions/actions_table.tsx +++ b/x-pack/plugins/osquery/public/actions/actions_table.tsx @@ -15,6 +15,7 @@ import { EuiIcon, EuiFlexItem, EuiFlexGroup, + EuiToolTip, } from '@elastic/eui'; import React, { useState, useCallback, useMemo } from 'react'; import { useHistory } from 'react-router-dom'; @@ -34,7 +35,18 @@ interface ActionTableResultsButtonProps { const ActionTableResultsButton: React.FC<ActionTableResultsButtonProps> = ({ actionId }) => { const navProps = useRouterNavigate(`live_queries/${actionId}`); - return <EuiButtonIcon iconType="visTable" {...navProps} />; + const detailsText = i18n.translate( + 'xpack.osquery.liveQueryActions.table.viewDetailsActionButton', + { + defaultMessage: 'Details', + } + ); + + return ( + <EuiToolTip position="top" content={detailsText}> + <EuiButtonIcon iconType="visTable" {...navProps} aria-label={detailsText} /> + </EuiToolTip> + ); }; ActionTableResultsButton.displayName = 'ActionTableResultsButton'; @@ -100,7 +112,7 @@ const ActionsTableComponent = () => { ); const handlePlayClick = useCallback( - (item) => { + (item) => () => { const packId = item._source.pack_id; if (packId) { @@ -139,6 +151,25 @@ const ActionsTableComponent = () => { }, [push] ); + const renderPlayButton = useCallback( + (item, enabled) => { + const playText = i18n.translate('xpack.osquery.liveQueryActions.table.runActionAriaLabel', { + defaultMessage: 'Run query', + }); + + return ( + <EuiToolTip position="top" content={playText}> + <EuiButtonIcon + iconType="play" + onClick={handlePlayClick(item)} + isDisabled={!enabled} + aria-label={playText} + /> + </EuiToolTip> + ); + }, + [handlePlayClick] + ); const existingPackIds = useMemo(() => map(packsData?.data ?? [], 'id'), [packsData]); @@ -197,10 +228,8 @@ const ActionsTableComponent = () => { }), actions: [ { - type: 'icon', - icon: 'play', - onClick: handlePlayClick, available: isPlayButtonAvailable, + render: renderPlayButton, }, { render: renderActionsColumn, @@ -209,11 +238,11 @@ const ActionsTableComponent = () => { }, ], [ - handlePlayClick, isPlayButtonAvailable, renderActionsColumn, renderAgentsColumn, renderCreatedByColumn, + renderPlayButton, renderQueryColumn, renderTimestampColumn, ] diff --git a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.4.0.json b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.4.0.json deleted file mode 100644 index 212a0f6b44b23..0000000000000 --- a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.4.0.json +++ /dev/null @@ -1 +0,0 @@ -[{"field":"labels","type":"object","normalization":"","example":{"application":"foo-bar","env":"production"},"description":"Custom key/value pairs."},{"field":"message","type":"match_only_text","normalization":"","example":"Hello World","description":"Log message optimized for viewing in a log viewer."},{"field":"tags","type":"keyword","normalization":"array","example":["production","env2"],"description":"List of keywords used to tag each event."},{"field":"agent.build.original","type":"keyword","normalization":"","example":"metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC]","description":"Extended build information for the agent."},{"field":"client.address","type":"keyword","normalization":"","example":"","description":"Client network address."},{"field":"client.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"client.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the client to the server."},{"field":"client.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the client."},{"field":"client.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"client.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"client.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"client.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"client.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"client.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"client.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"client.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"client.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"client.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"client.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"client.ip","type":"ip","normalization":"","example":"","description":"IP address of the client."},{"field":"client.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the client."},{"field":"client.nat.ip","type":"ip","normalization":"","example":"","description":"Client NAT ip address"},{"field":"client.nat.port","type":"long","normalization":"","example":"","description":"Client NAT port"},{"field":"client.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the client to the server."},{"field":"client.port","type":"long","normalization":"","example":"","description":"Port of the client."},{"field":"client.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered client domain, stripped of the subdomain."},{"field":"client.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"client.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"client.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"client.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"client.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"client.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"client.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"client.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"client.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"client.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"cloud.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.origin.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.origin.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.origin.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.origin.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.origin.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.origin.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.origin.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.origin.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.origin.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.target.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.target.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.target.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.target.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.target.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.target.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.target.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.target.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.target.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.target.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.target.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"container.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"container.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"container.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"container.id","type":"keyword","normalization":"","example":"","description":"Unique container id."},{"field":"container.image.hash.all","type":"keyword","normalization":"array","example":"[sha256:f8fefc80e3273dc756f288a63945820d6476ad64883892c771b5e2ece6bf1b26]","description":"An array of digests of the image the container was built on."},{"field":"container.image.name","type":"keyword","normalization":"","example":"","description":"Name of the image the container was built on."},{"field":"container.image.tag","type":"keyword","normalization":"array","example":"","description":"Container image tags."},{"field":"container.labels","type":"object","normalization":"","example":"","description":"Image labels."},{"field":"container.memory.usage","type":"scaled_float","normalization":"","example":"","description":"Percent memory used, between 0 and 1."},{"field":"container.name","type":"keyword","normalization":"","example":"","description":"Container name."},{"field":"container.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"container.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"container.runtime","type":"keyword","normalization":"","example":"docker","description":"Runtime managing this container."},{"field":"data_stream.dataset","type":"constant_keyword","normalization":"","example":"nginx.access","description":"The field can contain anything that makes sense to signify the source of the data."},{"field":"data_stream.namespace","type":"constant_keyword","normalization":"","example":"production","description":"A user defined namespace. Namespaces are useful to allow grouping of data."},{"field":"data_stream.type","type":"constant_keyword","normalization":"","example":"logs","description":"An overarching type for the data stream."},{"field":"destination.address","type":"keyword","normalization":"","example":"","description":"Destination network address."},{"field":"destination.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"destination.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the destination to the source."},{"field":"destination.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the destination."},{"field":"destination.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"destination.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"destination.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"destination.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"destination.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"destination.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"destination.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"destination.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"destination.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"destination.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"destination.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"destination.ip","type":"ip","normalization":"","example":"","description":"IP address of the destination."},{"field":"destination.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the destination."},{"field":"destination.nat.ip","type":"ip","normalization":"","example":"","description":"Destination NAT ip"},{"field":"destination.nat.port","type":"long","normalization":"","example":"","description":"Destination NAT Port"},{"field":"destination.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the destination to the source."},{"field":"destination.port","type":"long","normalization":"","example":"","description":"Port of the destination."},{"field":"destination.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered destination domain, stripped of the subdomain."},{"field":"destination.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"destination.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"destination.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"destination.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"destination.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"destination.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"destination.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"destination.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"destination.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"destination.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"dll.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"dll.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"dll.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"dll.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"dll.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"dll.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"dll.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"dll.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"dll.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"dll.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"dll.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"dll.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"dll.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"dll.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"dll.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"dll.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"dll.name","type":"keyword","normalization":"","example":"kernel32.dll","description":"Name of the library."},{"field":"dll.path","type":"keyword","normalization":"","example":"C:\\Windows\\System32\\kernel32.dll","description":"Full file path of the library."},{"field":"dll.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"dll.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"dll.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"dll.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"dll.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"dll.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"dll.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"dll.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"dns.answers","type":"object","normalization":"array","example":"","description":"Array of DNS answers."},{"field":"dns.answers.class","type":"keyword","normalization":"","example":"IN","description":"The class of DNS data contained in this resource record."},{"field":"dns.answers.data","type":"keyword","normalization":"","example":"10.10.10.10","description":"The data describing the resource."},{"field":"dns.answers.name","type":"keyword","normalization":"","example":"www.example.com","description":"The domain name to which this resource record pertains."},{"field":"dns.answers.ttl","type":"long","normalization":"","example":180,"description":"The time interval in seconds that this resource record may be cached before it should be discarded."},{"field":"dns.answers.type","type":"keyword","normalization":"","example":"CNAME","description":"The type of data contained in this resource record."},{"field":"dns.header_flags","type":"keyword","normalization":"array","example":["RD","RA"],"description":"Array of DNS header flags."},{"field":"dns.id","type":"keyword","normalization":"","example":62111,"description":"The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response."},{"field":"dns.op_code","type":"keyword","normalization":"","example":"QUERY","description":"The DNS operation code that specifies the kind of query in the message."},{"field":"dns.question.class","type":"keyword","normalization":"","example":"IN","description":"The class of records being queried."},{"field":"dns.question.name","type":"keyword","normalization":"","example":"www.example.com","description":"The name being queried."},{"field":"dns.question.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered domain, stripped of the subdomain."},{"field":"dns.question.subdomain","type":"keyword","normalization":"","example":"www","description":"The subdomain of the domain."},{"field":"dns.question.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"dns.question.type","type":"keyword","normalization":"","example":"AAAA","description":"The type of record being queried."},{"field":"dns.resolved_ip","type":"ip","normalization":"array","example":["10.10.10.10","10.10.10.11"],"description":"Array containing all IPs seen in answers.data"},{"field":"dns.response_code","type":"keyword","normalization":"","example":"NOERROR","description":"The DNS response code."},{"field":"dns.type","type":"keyword","normalization":"","example":"answer","description":"The type of DNS event captured, query or answer."},{"field":"email.attachments","type":"nested","normalization":"array","example":"","description":"List of objects describing the attachments."},{"field":"email.attachments.file.extension","type":"keyword","normalization":"","example":"txt","description":"Attachment file extension."},{"field":"email.attachments.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"email.attachments.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"email.attachments.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"email.attachments.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"email.attachments.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"email.attachments.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"email.attachments.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"email.attachments.file.mime_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the attachment file."},{"field":"email.attachments.file.name","type":"keyword","normalization":"","example":"attachment.txt","description":"Name of the attachment file."},{"field":"email.attachments.file.size","type":"long","normalization":"","example":64329,"description":"Attachment file size."},{"field":"email.bcc.address","type":"keyword","normalization":"array","example":"bcc.user1@example.com","description":"Email address of BCC recipient"},{"field":"email.cc.address","type":"keyword","normalization":"array","example":"cc.user1@example.com","description":"Email address of CC recipient"},{"field":"email.content_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the email message."},{"field":"email.delivery_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time when message was delivered."},{"field":"email.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the message."},{"field":"email.from.address","type":"keyword","normalization":"array","example":"sender@example.com","description":"The sender's email address."},{"field":"email.local_id","type":"keyword","normalization":"","example":"c26dbea0-80d5-463b-b93c-4e8b708219ce","description":"Unique identifier given by the source."},{"field":"email.message_id","type":"wildcard","normalization":"","example":"81ce15$8r2j59@mail01.example.com","description":"Value from the Message-ID header."},{"field":"email.origination_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time the email was composed."},{"field":"email.reply_to.address","type":"keyword","normalization":"array","example":"reply.here@example.com","description":"Address replies should be delivered to."},{"field":"email.sender.address","type":"keyword","normalization":"","example":"","description":"Address of the message sender."},{"field":"email.subject","type":"keyword","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.subject.text","type":"match_only_text","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.to.address","type":"keyword","normalization":"array","example":"user1@example.com","description":"Email address of recipient"},{"field":"email.x_mailer","type":"keyword","normalization":"","example":"Spambot v2.5","description":"Application that drafted email."},{"field":"error.code","type":"keyword","normalization":"","example":"","description":"Error code describing the error."},{"field":"error.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the error."},{"field":"error.message","type":"match_only_text","normalization":"","example":"","description":"Error message."},{"field":"error.stack_trace","type":"wildcard","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.stack_trace.text","type":"match_only_text","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.type","type":"keyword","normalization":"","example":"java.lang.NullPointerException","description":"The type of the error, for example the class name of the exception."},{"field":"event.action","type":"keyword","normalization":"","example":"user-password-change","description":"The action captured by the event."},{"field":"event.category","type":"keyword","normalization":"array","example":"authentication","description":"Event category. The second categorization field in the hierarchy."},{"field":"event.code","type":"keyword","normalization":"","example":4648,"description":"Identification code for this event."},{"field":"event.created","type":"date","normalization":"","example":"2016-05-23T08:05:34.857Z","description":"Time when the event was first read by an agent or by your pipeline."},{"field":"event.dataset","type":"keyword","normalization":"","example":"apache.access","description":"Name of the dataset."},{"field":"event.duration","type":"long","normalization":"","example":"","description":"Duration of the event in nanoseconds."},{"field":"event.end","type":"date","normalization":"","example":"","description":"event.end contains the date when the event ended or when the activity was last observed."},{"field":"event.hash","type":"keyword","normalization":"","example":"123456789012345678901234567890ABCD","description":"Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity."},{"field":"event.id","type":"keyword","normalization":"","example":"8a4f500d","description":"Unique ID to describe the event."},{"field":"event.kind","type":"keyword","normalization":"","example":"alert","description":"The kind of the event. The highest categorization field in the hierarchy."},{"field":"event.original","type":"keyword","normalization":"","example":"Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232","description":"Raw text message of entire event."},{"field":"event.outcome","type":"keyword","normalization":"","example":"success","description":"The outcome of the event. The lowest level categorization field in the hierarchy."},{"field":"event.provider","type":"keyword","normalization":"","example":"kernel","description":"Source of the event."},{"field":"event.reason","type":"keyword","normalization":"","example":"Terminated an unexpected process","description":"Reason why this event happened, according to the source"},{"field":"event.reference","type":"keyword","normalization":"","example":"https://system.example.com/event/#0001234","description":"Event reference URL"},{"field":"event.risk_score","type":"float","normalization":"","example":"","description":"Risk score or priority of the event (e.g. security solutions). Use your system's original value here."},{"field":"event.risk_score_norm","type":"float","normalization":"","example":"","description":"Normalized risk score or priority of the event (0-100)."},{"field":"event.sequence","type":"long","normalization":"","example":"","description":"Sequence number of the event."},{"field":"event.severity","type":"long","normalization":"","example":7,"description":"Numeric severity of the event."},{"field":"event.start","type":"date","normalization":"","example":"","description":"event.start contains the date when the event started or when the activity was first observed."},{"field":"event.timezone","type":"keyword","normalization":"","example":"","description":"Event time zone."},{"field":"event.type","type":"keyword","normalization":"array","example":"","description":"Event type. The third categorization field in the hierarchy."},{"field":"event.url","type":"keyword","normalization":"","example":"https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe","description":"Event investigation URL"},{"field":"faas.coldstart","type":"boolean","normalization":"","example":"","description":"Boolean value indicating a cold start of a function."},{"field":"faas.execution","type":"keyword","normalization":"","example":"af9d5aa4-a685-4c5f-a22b-444f80b3cc28","description":"The execution ID of the current function execution."},{"field":"faas.id","type":"keyword","normalization":"","example":"arn:aws:lambda:us-west-2:123456789012:function:my-function","description":"The unique identifier of a serverless function."},{"field":"faas.name","type":"keyword","normalization":"","example":"my-function","description":"The name of a serverless function."},{"field":"faas.trigger","type":"nested","normalization":"","example":"","description":"Details about the function trigger."},{"field":"faas.trigger.request_id","type":"keyword","normalization":"","example":123456789,"description":"The ID of the trigger request , message, event, etc."},{"field":"faas.trigger.type","type":"keyword","normalization":"","example":"http","description":"The trigger for the function execution."},{"field":"faas.version","type":"keyword","normalization":"","example":123,"description":"The version of a serverless function."},{"field":"file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"host.boot.id","type":"keyword","normalization":"","example":"88a1f0ed-5ae5-41ee-af6b-41921c311872","description":"Linux boot uuid taken from /proc/sys/kernel/random/boot_id"},{"field":"host.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"host.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"host.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"host.domain","type":"keyword","normalization":"","example":"CONTOSO","description":"Name of the directory the group is a member of."},{"field":"host.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"host.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"host.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"host.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"host.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"host.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"host.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"host.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"host.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"host.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"host.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"host.name","type":"keyword","normalization":"","example":"","description":"Name of the host."},{"field":"host.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"host.network.egress.packets","type":"long","normalization":"","example":"","description":"The number of packets sent on all network interfaces."},{"field":"host.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"host.network.ingress.packets","type":"long","normalization":"","example":"","description":"The number of packets received on all network interfaces."},{"field":"host.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"host.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"host.pid_ns_ino","type":"keyword","normalization":"","example":256383,"description":"Pid namespace inode"},{"field":"host.type","type":"keyword","normalization":"","example":"","description":"Type of host."},{"field":"host.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the host has been up."},{"field":"http.request.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the request body."},{"field":"http.request.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the request (body and headers)."},{"field":"http.request.id","type":"keyword","normalization":"","example":"123e4567-e89b-12d3-a456-426614174000","description":"HTTP request ID."},{"field":"http.request.method","type":"keyword","normalization":"","example":"POST","description":"HTTP request method."},{"field":"http.request.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the request."},{"field":"http.request.referrer","type":"keyword","normalization":"","example":"https://blog.example.com/","description":"Referrer for this HTTP request."},{"field":"http.response.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the response body."},{"field":"http.response.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the response (body and headers)."},{"field":"http.response.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the response."},{"field":"http.response.status_code","type":"long","normalization":"","example":404,"description":"HTTP response status code."},{"field":"http.version","type":"keyword","normalization":"","example":1.1,"description":"HTTP version."},{"field":"log.file.path","type":"keyword","normalization":"","example":"/var/log/fun-times.log","description":"Full path to the log file this event came from."},{"field":"log.level","type":"keyword","normalization":"","example":"error","description":"Log level of the log event."},{"field":"log.logger","type":"keyword","normalization":"","example":"org.elasticsearch.bootstrap.Bootstrap","description":"Name of the logger."},{"field":"log.origin.file.line","type":"long","normalization":"","example":42,"description":"The line number of the file which originated the log event."},{"field":"log.origin.file.name","type":"keyword","normalization":"","example":"Bootstrap.java","description":"The code file which originated the log event."},{"field":"log.origin.function","type":"keyword","normalization":"","example":"init","description":"The function which originated the log event."},{"field":"log.syslog","type":"object","normalization":"","example":"","description":"Syslog metadata"},{"field":"log.syslog.appname","type":"keyword","normalization":"","example":"sshd","description":"The device or application that originated the Syslog message."},{"field":"log.syslog.facility.code","type":"long","normalization":"","example":23,"description":"Syslog numeric facility of the event."},{"field":"log.syslog.facility.name","type":"keyword","normalization":"","example":"local7","description":"Syslog text-based facility of the event."},{"field":"log.syslog.hostname","type":"keyword","normalization":"","example":"example-host","description":"The host that originated the Syslog message."},{"field":"log.syslog.msgid","type":"keyword","normalization":"","example":"ID47","description":"An identifier for the type of Syslog message."},{"field":"log.syslog.priority","type":"long","normalization":"","example":135,"description":"Syslog priority of the event."},{"field":"log.syslog.procid","type":"keyword","normalization":"","example":12345,"description":"The process name or ID that originated the Syslog message."},{"field":"log.syslog.severity.code","type":"long","normalization":"","example":3,"description":"Syslog numeric severity of the event."},{"field":"log.syslog.severity.name","type":"keyword","normalization":"","example":"Error","description":"Syslog text-based severity of the event."},{"field":"log.syslog.structured_data","type":"flattened","normalization":"","example":"","description":"Structured data expressed in RFC 5424 messages."},{"field":"log.syslog.version","type":"keyword","normalization":"","example":1,"description":"Syslog protocol version."},{"field":"network.application","type":"keyword","normalization":"","example":"aim","description":"Application level protocol name."},{"field":"network.bytes","type":"long","normalization":"","example":368,"description":"Total bytes transferred in both directions."},{"field":"network.community_id","type":"keyword","normalization":"","example":"1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0=","description":"A hash of source and destination IPs and ports."},{"field":"network.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the network traffic."},{"field":"network.forwarded_ip","type":"ip","normalization":"","example":"192.1.1.2","description":"Host IP address when the source IP address is the proxy."},{"field":"network.iana_number","type":"keyword","normalization":"","example":6,"description":"IANA Protocol Number."},{"field":"network.inner","type":"object","normalization":"","example":"","description":"Inner VLAN tag information"},{"field":"network.inner.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.inner.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"network.name","type":"keyword","normalization":"","example":"Guest Wifi","description":"Name given by operators to sections of their network."},{"field":"network.packets","type":"long","normalization":"","example":24,"description":"Total packets transferred in both directions."},{"field":"network.protocol","type":"keyword","normalization":"","example":"http","description":"Application protocol name."},{"field":"network.transport","type":"keyword","normalization":"","example":"tcp","description":"Protocol Name corresponding to the field `iana_number`."},{"field":"network.type","type":"keyword","normalization":"","example":"ipv4","description":"In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc"},{"field":"network.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress","type":"object","normalization":"","example":"","description":"Object field for egress information"},{"field":"observer.egress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.egress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.egress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.egress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.egress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress.zone","type":"keyword","normalization":"","example":"Public_Internet","description":"Observer Egress zone"},{"field":"observer.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"observer.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"observer.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"observer.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"observer.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"observer.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"observer.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"observer.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"observer.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"observer.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"observer.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"observer.hostname","type":"keyword","normalization":"","example":"","description":"Hostname of the observer."},{"field":"observer.ingress","type":"object","normalization":"","example":"","description":"Object field for ingress information"},{"field":"observer.ingress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.ingress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.ingress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.ingress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.ingress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.ingress.zone","type":"keyword","normalization":"","example":"DMZ","description":"Observer ingress zone"},{"field":"observer.ip","type":"ip","normalization":"array","example":"","description":"IP addresses of the observer."},{"field":"observer.mac","type":"keyword","normalization":"array","example":["00-00-5E-00-53-23","00-00-5E-00-53-24"],"description":"MAC addresses of the observer."},{"field":"observer.name","type":"keyword","normalization":"","example":"1_proxySG","description":"Custom name of the observer."},{"field":"observer.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"observer.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"observer.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"observer.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix or windows)."},{"field":"observer.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"observer.product","type":"keyword","normalization":"","example":"s200","description":"The product name of the observer."},{"field":"observer.serial_number","type":"keyword","normalization":"","example":"","description":"Observer serial number."},{"field":"observer.type","type":"keyword","normalization":"","example":"firewall","description":"The type of the observer the data is coming from."},{"field":"observer.vendor","type":"keyword","normalization":"","example":"Symantec","description":"Vendor name of the observer."},{"field":"observer.version","type":"keyword","normalization":"","example":"","description":"Observer version."},{"field":"orchestrator.api_version","type":"keyword","normalization":"","example":"v1beta1","description":"API version being used to carry out the action"},{"field":"orchestrator.cluster.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the cluster."},{"field":"orchestrator.cluster.name","type":"keyword","normalization":"","example":"","description":"Name of the cluster."},{"field":"orchestrator.cluster.url","type":"keyword","normalization":"","example":"","description":"URL of the API used to manage the cluster."},{"field":"orchestrator.cluster.version","type":"keyword","normalization":"","example":"","description":"The version of the cluster."},{"field":"orchestrator.namespace","type":"keyword","normalization":"","example":"kube-system","description":"Namespace in which the action is taking place."},{"field":"orchestrator.organization","type":"keyword","normalization":"","example":"elastic","description":"Organization affected by the event (for multi-tenant orchestrator setups)."},{"field":"orchestrator.resource.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the resource being acted upon."},{"field":"orchestrator.resource.ip","type":"ip","normalization":"array","example":"","description":"IP address assigned to the resource associated with the event being observed."},{"field":"orchestrator.resource.name","type":"keyword","normalization":"","example":"test-pod-cdcws","description":"Name of the resource being acted upon."},{"field":"orchestrator.resource.parent.type","type":"keyword","normalization":"","example":"DaemonSet","description":"Type or kind of the parent resource associated with the event being observed."},{"field":"orchestrator.resource.type","type":"keyword","normalization":"","example":"service","description":"Type of resource being acted upon."},{"field":"orchestrator.type","type":"keyword","normalization":"","example":"kubernetes","description":"Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry)."},{"field":"organization.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the organization."},{"field":"organization.name","type":"keyword","normalization":"","example":"","description":"Organization name."},{"field":"organization.name.text","type":"match_only_text","normalization":"","example":"","description":"Organization name."},{"field":"package.architecture","type":"keyword","normalization":"","example":"x86_64","description":"Package architecture."},{"field":"package.build_version","type":"keyword","normalization":"","example":"36f4f7e89dd61b0988b12ee000b98966867710cd","description":"Build version information"},{"field":"package.checksum","type":"keyword","normalization":"","example":"68b329da9893e34099c7d8ad5cb9c940","description":"Checksum of the installed package for verification."},{"field":"package.description","type":"keyword","normalization":"","example":"Open source programming language to build simple/reliable/efficient software.","description":"Description of the package."},{"field":"package.install_scope","type":"keyword","normalization":"","example":"global","description":"Indicating how the package was installed, e.g. user-local, global."},{"field":"package.installed","type":"date","normalization":"","example":"","description":"Time when package was installed."},{"field":"package.license","type":"keyword","normalization":"","example":"Apache License 2.0","description":"Package license"},{"field":"package.name","type":"keyword","normalization":"","example":"go","description":"Package name"},{"field":"package.path","type":"keyword","normalization":"","example":"/usr/local/Cellar/go/1.12.9/","description":"Path where the package is installed."},{"field":"package.reference","type":"keyword","normalization":"","example":"https://golang.org","description":"Package home page or reference URL"},{"field":"package.size","type":"long","normalization":"","example":62231,"description":"Package size in bytes."},{"field":"package.type","type":"keyword","normalization":"","example":"rpm","description":"Package type"},{"field":"package.version","type":"keyword","normalization":"","example":"1.12.9","description":"Package version"},{"field":"process.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.entry_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.entry_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.entry_meta.source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"process.entry_leader.entry_meta.type","type":"keyword","normalization":"","example":"","description":"The entry type for the entry session leader."},{"field":"process.entry_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.entry_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.entry_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.entry_leader.tty.char_device.major","type":"long","normalization":"","example":1,"description":"The TTY character device's major number."},{"field":"process.entry_leader.tty.char_device.minor","type":"long","normalization":"","example":128,"description":"The TTY character device's minor number."},{"field":"process.entry_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.entry_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.env_vars","type":"object","normalization":"","example":{"USER":"elastic","LANG":"en_US.UTF-8","HOME":"/home/elastic"},"description":"Environment variables set at the time of the event."},{"field":"process.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.group_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.group_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.group_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.group_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.group_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.group_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.group_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.group_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.group_leader.tty.char_device.major","type":"long","normalization":"","example":1,"description":"The TTY character device's major number."},{"field":"process.group_leader.tty.char_device.minor","type":"long","normalization":"","example":128,"description":"The TTY character device's minor number."},{"field":"process.group_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.group_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.parent.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.parent.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.parent.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.parent.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.parent.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.parent.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.parent.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.parent.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.parent.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.parent.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.parent.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.parent.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.parent.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.parent.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.parent.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.parent.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.parent.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.parent.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.parent.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.parent.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.parent.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.parent.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.parent.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.parent.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.parent.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.parent.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.parent.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.parent.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.parent.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.parent.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.parent.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.parent.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.parent.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.parent.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.parent.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.parent.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.parent.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.parent.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.parent.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.parent.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.parent.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.parent.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.parent.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.parent.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.parent.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.parent.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.parent.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.parent.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.parent.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.parent.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.parent.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.parent.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.parent.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.parent.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.parent.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.parent.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.parent.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.parent.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.parent.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.parent.tty.char_device.major","type":"long","normalization":"","example":1,"description":"The TTY character device's major number."},{"field":"process.parent.tty.char_device.minor","type":"long","normalization":"","example":128,"description":"The TTY character device's minor number."},{"field":"process.parent.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.parent.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.parent.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.previous.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.previous.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.previous.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.previous.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.session_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.session_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.session_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.session_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.session_leader.tty.char_device.major","type":"long","normalization":"","example":1,"description":"The TTY character device's major number."},{"field":"process.session_leader.tty.char_device.minor","type":"long","normalization":"","example":128,"description":"The TTY character device's minor number."},{"field":"process.session_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.session_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.tty.char_device.major","type":"long","normalization":"","example":1,"description":"The TTY character device's major number."},{"field":"process.tty.char_device.minor","type":"long","normalization":"","example":128,"description":"The TTY character device's minor number."},{"field":"process.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"related.hash","type":"keyword","normalization":"array","example":"","description":"All the hashes seen on your event."},{"field":"related.hosts","type":"keyword","normalization":"array","example":"","description":"All the host identifiers seen on your event."},{"field":"related.ip","type":"ip","normalization":"array","example":"","description":"All of the IPs seen on your event."},{"field":"related.user","type":"keyword","normalization":"array","example":"","description":"All the user names or other user identifiers seen on the event."},{"field":"rule.author","type":"keyword","normalization":"array","example":["Star-Lord"],"description":"Rule author"},{"field":"rule.category","type":"keyword","normalization":"","example":"Attempted Information Leak","description":"Rule category"},{"field":"rule.description","type":"keyword","normalization":"","example":"Block requests to public DNS over HTTPS / TLS protocols","description":"Rule description"},{"field":"rule.id","type":"keyword","normalization":"","example":101,"description":"Rule ID"},{"field":"rule.license","type":"keyword","normalization":"","example":"Apache 2.0","description":"Rule license"},{"field":"rule.name","type":"keyword","normalization":"","example":"BLOCK_DNS_over_TLS","description":"Rule name"},{"field":"rule.reference","type":"keyword","normalization":"","example":"https://en.wikipedia.org/wiki/DNS_over_TLS","description":"Rule reference URL"},{"field":"rule.ruleset","type":"keyword","normalization":"","example":"Standard_Protocol_Filters","description":"Rule ruleset"},{"field":"rule.uuid","type":"keyword","normalization":"","example":1100110011,"description":"Rule UUID"},{"field":"rule.version","type":"keyword","normalization":"","example":1.1,"description":"Rule version"},{"field":"server.address","type":"keyword","normalization":"","example":"","description":"Server network address."},{"field":"server.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"server.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the server to the client."},{"field":"server.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the server."},{"field":"server.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"server.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"server.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"server.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"server.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"server.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"server.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"server.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"server.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"server.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"server.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"server.ip","type":"ip","normalization":"","example":"","description":"IP address of the server."},{"field":"server.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the server."},{"field":"server.nat.ip","type":"ip","normalization":"","example":"","description":"Server NAT ip"},{"field":"server.nat.port","type":"long","normalization":"","example":"","description":"Server NAT port"},{"field":"server.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the server to the client."},{"field":"server.port","type":"long","normalization":"","example":"","description":"Port of the server."},{"field":"server.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered server domain, stripped of the subdomain."},{"field":"server.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"server.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"server.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"server.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"server.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"server.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"server.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"server.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"server.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"server.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"service.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.origin.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.origin.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.origin.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.origin.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.origin.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.origin.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.origin.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.origin.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.origin.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.target.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.target.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.target.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.target.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.target.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.target.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.target.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.target.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.target.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"source.address","type":"keyword","normalization":"","example":"","description":"Source network address."},{"field":"source.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"source.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the source to the destination."},{"field":"source.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the source."},{"field":"source.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"source.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"source.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"source.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"source.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"source.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"source.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"source.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"source.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"source.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"source.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"source.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the source."},{"field":"source.nat.ip","type":"ip","normalization":"","example":"","description":"Source NAT ip"},{"field":"source.nat.port","type":"long","normalization":"","example":"","description":"Source NAT port"},{"field":"source.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the source to the destination."},{"field":"source.port","type":"long","normalization":"","example":"","description":"Port of the source."},{"field":"source.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered source domain, stripped of the subdomain."},{"field":"source.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"source.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"source.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"source.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"source.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"source.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"source.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"source.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"source.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"source.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"span.id","type":"keyword","normalization":"","example":"3ff9a8981b7ccd5a","description":"Unique identifier of the span within the scope of its trace."},{"field":"threat.enrichments","type":"nested","normalization":"array","example":"","description":"List of objects containing indicators enriching the event."},{"field":"threat.enrichments.indicator","type":"object","normalization":"","example":"","description":"Object containing indicators enriching the event."},{"field":"threat.enrichments.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.enrichments.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.enrichments.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.enrichments.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.enrichments.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.enrichments.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.enrichments.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.enrichments.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.enrichments.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.enrichments.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.enrichments.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.enrichments.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.enrichments.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.enrichments.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.enrichments.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.enrichments.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.enrichments.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.enrichments.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.enrichments.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.enrichments.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.enrichments.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.enrichments.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.enrichments.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.enrichments.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.enrichments.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.enrichments.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.enrichments.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.enrichments.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.enrichments.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.enrichments.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.enrichments.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.enrichments.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.enrichments.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.enrichments.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.enrichments.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.enrichments.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.enrichments.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.enrichments.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.enrichments.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.enrichments.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.enrichments.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.enrichments.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.enrichments.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.enrichments.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.enrichments.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.enrichments.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.enrichments.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.enrichments.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.enrichments.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.enrichments.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.enrichments.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.enrichments.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.enrichments.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.enrichments.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.enrichments.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.enrichments.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.enrichments.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.enrichments.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.enrichments.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.enrichments.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.enrichments.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.enrichments.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.enrichments.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.enrichments.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.enrichments.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.enrichments.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.enrichments.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.enrichments.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.enrichments.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.enrichments.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.enrichments.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.enrichments.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.enrichments.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.enrichments.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.enrichments.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.enrichments.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.enrichments.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.enrichments.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.enrichments.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.enrichments.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.enrichments.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.enrichments.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.enrichments.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.enrichments.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.enrichments.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.enrichments.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.enrichments.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.enrichments.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.enrichments.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.enrichments.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.enrichments.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.enrichments.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.enrichments.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.enrichments.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.enrichments.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.enrichments.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.enrichments.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.matched.atomic","type":"keyword","normalization":"","example":"bad-domain.com","description":"Matched indicator value"},{"field":"threat.enrichments.matched.field","type":"keyword","normalization":"","example":"file.hash.sha256","description":"Matched indicator field"},{"field":"threat.enrichments.matched.id","type":"keyword","normalization":"","example":"ff93aee5-86a1-4a61-b0e6-0cdc313d01b5","description":"Matched indicator identifier"},{"field":"threat.enrichments.matched.index","type":"keyword","normalization":"","example":"filebeat-8.0.0-2021.05.23-000011","description":"Matched indicator index"},{"field":"threat.enrichments.matched.occurred","type":"date","normalization":"","example":"2021-10-05T17:00:58.326Z","description":"Date of match"},{"field":"threat.enrichments.matched.type","type":"keyword","normalization":"","example":"indicator_match_rule","description":"Type of indicator match"},{"field":"threat.feed.dashboard_id","type":"keyword","normalization":"","example":"5ba16340-72e6-11eb-a3e3-b3cc7c78a70f","description":"Feed dashboard ID."},{"field":"threat.feed.description","type":"keyword","normalization":"","example":"Threat feed from the AlienVault Open Threat eXchange network.","description":"Description of the threat feed."},{"field":"threat.feed.name","type":"keyword","normalization":"","example":"AlienVault OTX","description":"Name of the threat feed."},{"field":"threat.feed.reference","type":"keyword","normalization":"","example":"https://otx.alienvault.com","description":"Reference for the threat feed."},{"field":"threat.framework","type":"keyword","normalization":"","example":"MITRE ATT&CK","description":"Threat classification framework."},{"field":"threat.group.alias","type":"keyword","normalization":"array","example":["Magecart Group 6"],"description":"Alias of the group."},{"field":"threat.group.id","type":"keyword","normalization":"","example":"G0037","description":"ID of the group."},{"field":"threat.group.name","type":"keyword","normalization":"","example":"FIN6","description":"Name of the group."},{"field":"threat.group.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/groups/G0037/","description":"Reference URL of the group."},{"field":"threat.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.software.alias","type":"keyword","normalization":"array","example":["X-Agent"],"description":"Alias of the software"},{"field":"threat.software.id","type":"keyword","normalization":"","example":"S0552","description":"ID of the software"},{"field":"threat.software.name","type":"keyword","normalization":"","example":"AdFind","description":"Name of the software."},{"field":"threat.software.platforms","type":"keyword","normalization":"array","example":["Windows"],"description":"Platforms of the software."},{"field":"threat.software.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/software/S0552/","description":"Software reference URL."},{"field":"threat.software.type","type":"keyword","normalization":"","example":"Tool","description":"Software type."},{"field":"threat.tactic.id","type":"keyword","normalization":"array","example":"TA0002","description":"Threat tactic id."},{"field":"threat.tactic.name","type":"keyword","normalization":"array","example":"Execution","description":"Threat tactic."},{"field":"threat.tactic.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/tactics/TA0002/","description":"Threat tactic URL reference."},{"field":"threat.technique.id","type":"keyword","normalization":"array","example":"T1059","description":"Threat technique id."},{"field":"threat.technique.name","type":"keyword","normalization":"array","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.name.text","type":"match_only_text","normalization":"","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/","description":"Threat technique URL reference."},{"field":"threat.technique.subtechnique.id","type":"keyword","normalization":"array","example":"T1059.001","description":"Threat subtechnique id."},{"field":"threat.technique.subtechnique.name","type":"keyword","normalization":"array","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.name.text","type":"match_only_text","normalization":"","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/001/","description":"Threat subtechnique URL reference."},{"field":"tls.cipher","type":"keyword","normalization":"","example":"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","description":"String indicating the cipher used during the current connection."},{"field":"tls.client.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the client."},{"field":"tls.client.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the client."},{"field":"tls.client.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Distinguished name of subject of the issuer of the x.509 certificate presented by the client."},{"field":"tls.client.ja3","type":"keyword","normalization":"","example":"d4e5b18d6b55c71272893221c96ba240","description":"A hash that identifies clients based on how they perform an SSL/TLS handshake."},{"field":"tls.client.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is no longer considered valid."},{"field":"tls.client.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is first considered valid."},{"field":"tls.client.server_name","type":"keyword","normalization":"","example":"www.elastic.co","description":"Hostname the client is trying to connect to. Also called the SNI."},{"field":"tls.client.subject","type":"keyword","normalization":"","example":"CN=myclient, OU=Documentation Team, DC=example, DC=com","description":"Distinguished name of subject of the x.509 certificate presented by the client."},{"field":"tls.client.supported_ciphers","type":"keyword","normalization":"array","example":["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","..."],"description":"Array of ciphers offered by the client during the client hello."},{"field":"tls.client.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.client.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.client.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.client.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.client.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.client.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.client.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.client.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.client.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.client.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.client.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.client.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.client.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.client.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.client.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.client.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.client.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.client.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.client.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.client.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.curve","type":"keyword","normalization":"","example":"secp256r1","description":"String indicating the curve used for the given cipher, when applicable."},{"field":"tls.established","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel."},{"field":"tls.next_protocol","type":"keyword","normalization":"","example":"http/1.1","description":"String indicating the protocol being tunneled."},{"field":"tls.resumed","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation."},{"field":"tls.server.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the server."},{"field":"tls.server.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the server."},{"field":"tls.server.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the issuer of the x.509 certificate presented by the server."},{"field":"tls.server.ja3s","type":"keyword","normalization":"","example":"394441ab65754e2207b1e1b457b3641d","description":"A hash that identifies servers based on how they perform an SSL/TLS handshake."},{"field":"tls.server.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is no longer considered valid."},{"field":"tls.server.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is first considered valid."},{"field":"tls.server.subject","type":"keyword","normalization":"","example":"CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the x.509 certificate presented by the server."},{"field":"tls.server.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.server.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.server.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.server.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.server.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.server.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.server.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.server.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.server.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.server.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.server.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.server.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.server.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.server.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.server.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.server.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.server.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.server.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.server.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.server.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.version","type":"keyword","normalization":"","example":1.2,"description":"Numeric part of the version parsed from the original string."},{"field":"tls.version_protocol","type":"keyword","normalization":"","example":"tls","description":"Normalized lowercase protocol name parsed from original string."},{"field":"trace.id","type":"keyword","normalization":"","example":"4bf92f3577b34da6a3ce929d0e0e4736","description":"Unique identifier of the trace."},{"field":"transaction.id","type":"keyword","normalization":"","example":"00f067aa0ba902b7","description":"Unique identifier of the transaction within the scope of its trace."},{"field":"url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"user.changes.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.changes.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.changes.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.changes.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.changes.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.changes.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.changes.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.changes.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.effective.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.effective.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.effective.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.effective.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.effective.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.effective.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.target.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.target.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.target.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.target.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.target.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.target.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.target.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.target.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user_agent.device.name","type":"keyword","normalization":"","example":"iPhone","description":"Name of the device."},{"field":"user_agent.name","type":"keyword","normalization":"","example":"Safari","description":"Name of the user agent."},{"field":"user_agent.original","type":"keyword","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.original.text","type":"match_only_text","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"user_agent.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"user_agent.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"user_agent.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix or windows)."},{"field":"user_agent.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"user_agent.version","type":"keyword","normalization":"","example":12,"description":"Version of the user agent."},{"field":"vulnerability.category","type":"keyword","normalization":"array","example":["Firewall"],"description":"Category of a vulnerability."},{"field":"vulnerability.classification","type":"keyword","normalization":"","example":"CVSS","description":"Classification of the vulnerability."},{"field":"vulnerability.description","type":"keyword","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.description.text","type":"match_only_text","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.enumeration","type":"keyword","normalization":"","example":"CVE","description":"Identifier of the vulnerability."},{"field":"vulnerability.id","type":"keyword","normalization":"","example":"CVE-2019-00001","description":"ID of the vulnerability."},{"field":"vulnerability.reference","type":"keyword","normalization":"","example":"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111","description":"Reference of the vulnerability."},{"field":"vulnerability.report_id","type":"keyword","normalization":"","example":20191018.0001,"description":"Scan identification number."},{"field":"vulnerability.scanner.vendor","type":"keyword","normalization":"","example":"Tenable","description":"Name of the scanner vendor."},{"field":"vulnerability.score.base","type":"float","normalization":"","example":5.5,"description":"Vulnerability Base score."},{"field":"vulnerability.score.environmental","type":"float","normalization":"","example":5.5,"description":"Vulnerability Environmental score."},{"field":"vulnerability.score.temporal","type":"float","normalization":"","example":"","description":"Vulnerability Temporal score."},{"field":"vulnerability.score.version","type":"keyword","normalization":"","example":2,"description":"CVSS version."},{"field":"vulnerability.severity","type":"keyword","normalization":"","example":"Critical","description":"Severity of the vulnerability."}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json new file mode 100644 index 0000000000000..5fe03a8130fd0 --- /dev/null +++ b/x-pack/plugins/osquery/public/common/schemas/ecs/v8.5.0.json @@ -0,0 +1 @@ +[{"field":"labels","type":"object","normalization":"","example":{"application":"foo-bar","env":"production"},"description":"Custom key/value pairs."},{"field":"message","type":"match_only_text","normalization":"","example":"Hello World","description":"Log message optimized for viewing in a log viewer."},{"field":"tags","type":"keyword","normalization":"array","example":["production","env2"],"description":"List of keywords used to tag each event."},{"field":"agent.build.original","type":"keyword","normalization":"","example":"metricbeat version 7.6.0 (amd64), libbeat 7.6.0 [6a23e8f8f30f5001ba344e4e54d8d9cb82cb107c built 2020-02-05 23:10:10 +0000 UTC]","description":"Extended build information for the agent."},{"field":"client.address","type":"keyword","normalization":"","example":"","description":"Client network address."},{"field":"client.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"client.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"client.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the client to the server."},{"field":"client.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the client."},{"field":"client.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"client.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"client.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"client.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"client.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"client.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"client.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"client.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"client.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"client.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"client.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"client.ip","type":"ip","normalization":"","example":"","description":"IP address of the client."},{"field":"client.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the client."},{"field":"client.nat.ip","type":"ip","normalization":"","example":"","description":"Client NAT ip address"},{"field":"client.nat.port","type":"long","normalization":"","example":"","description":"Client NAT port"},{"field":"client.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the client to the server."},{"field":"client.port","type":"long","normalization":"","example":"","description":"Port of the client."},{"field":"client.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered client domain, stripped of the subdomain."},{"field":"client.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"client.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"client.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"client.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"client.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"client.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"client.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"client.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"client.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"client.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"client.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"client.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"cloud.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.origin.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.origin.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.origin.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.origin.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.origin.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.origin.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.origin.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.origin.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.origin.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.origin.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"cloud.target.account.id","type":"keyword","normalization":"","example":666777888999,"description":"The cloud account or organization id."},{"field":"cloud.target.account.name","type":"keyword","normalization":"","example":"elastic-dev","description":"The cloud account name."},{"field":"cloud.target.availability_zone","type":"keyword","normalization":"","example":"us-east-1c","description":"Availability zone in which this host, resource, or service is located."},{"field":"cloud.target.instance.id","type":"keyword","normalization":"","example":"i-1234567890abcdef0","description":"Instance ID of the host machine."},{"field":"cloud.target.instance.name","type":"keyword","normalization":"","example":"","description":"Instance name of the host machine."},{"field":"cloud.target.machine.type","type":"keyword","normalization":"","example":"t2.medium","description":"Machine type of the host machine."},{"field":"cloud.target.project.id","type":"keyword","normalization":"","example":"my-project","description":"The cloud project id."},{"field":"cloud.target.project.name","type":"keyword","normalization":"","example":"my project","description":"The cloud project name."},{"field":"cloud.target.provider","type":"keyword","normalization":"","example":"aws","description":"Name of the cloud provider."},{"field":"cloud.target.region","type":"keyword","normalization":"","example":"us-east-1","description":"Region in which this host, resource, or service is located."},{"field":"cloud.target.service.name","type":"keyword","normalization":"","example":"lambda","description":"The cloud service name."},{"field":"container.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"container.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"container.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"container.id","type":"keyword","normalization":"","example":"","description":"Unique container id."},{"field":"container.image.hash.all","type":"keyword","normalization":"array","example":"[sha256:f8fefc80e3273dc756f288a63945820d6476ad64883892c771b5e2ece6bf1b26]","description":"An array of digests of the image the container was built on."},{"field":"container.image.name","type":"keyword","normalization":"","example":"","description":"Name of the image the container was built on."},{"field":"container.image.tag","type":"keyword","normalization":"array","example":"","description":"Container image tags."},{"field":"container.labels","type":"object","normalization":"","example":"","description":"Image labels."},{"field":"container.memory.usage","type":"scaled_float","normalization":"","example":"","description":"Percent memory used, between 0 and 1."},{"field":"container.name","type":"keyword","normalization":"","example":"","description":"Container name."},{"field":"container.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"container.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"container.runtime","type":"keyword","normalization":"","example":"docker","description":"Runtime managing this container."},{"field":"data_stream.dataset","type":"constant_keyword","normalization":"","example":"nginx.access","description":"The field can contain anything that makes sense to signify the source of the data."},{"field":"data_stream.namespace","type":"constant_keyword","normalization":"","example":"production","description":"A user defined namespace. Namespaces are useful to allow grouping of data."},{"field":"data_stream.type","type":"constant_keyword","normalization":"","example":"logs","description":"An overarching type for the data stream."},{"field":"destination.address","type":"keyword","normalization":"","example":"","description":"Destination network address."},{"field":"destination.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"destination.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"destination.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the destination to the source."},{"field":"destination.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the destination."},{"field":"destination.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"destination.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"destination.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"destination.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"destination.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"destination.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"destination.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"destination.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"destination.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"destination.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"destination.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"destination.ip","type":"ip","normalization":"","example":"","description":"IP address of the destination."},{"field":"destination.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the destination."},{"field":"destination.nat.ip","type":"ip","normalization":"","example":"","description":"Destination NAT ip"},{"field":"destination.nat.port","type":"long","normalization":"","example":"","description":"Destination NAT Port"},{"field":"destination.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the destination to the source."},{"field":"destination.port","type":"long","normalization":"","example":"","description":"Port of the destination."},{"field":"destination.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered destination domain, stripped of the subdomain."},{"field":"destination.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"destination.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"destination.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"destination.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"destination.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"destination.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"destination.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"destination.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"destination.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"destination.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"destination.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"destination.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"dll.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"dll.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"dll.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"dll.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"dll.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"dll.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"dll.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"dll.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"dll.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"dll.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"dll.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"dll.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"dll.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"dll.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"dll.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"dll.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"dll.name","type":"keyword","normalization":"","example":"kernel32.dll","description":"Name of the library."},{"field":"dll.path","type":"keyword","normalization":"","example":"C:\\Windows\\System32\\kernel32.dll","description":"Full file path of the library."},{"field":"dll.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"dll.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"dll.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"dll.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"dll.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"dll.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"dll.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"dll.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"dns.answers","type":"object","normalization":"array","example":"","description":"Array of DNS answers."},{"field":"dns.answers.class","type":"keyword","normalization":"","example":"IN","description":"The class of DNS data contained in this resource record."},{"field":"dns.answers.data","type":"keyword","normalization":"","example":"10.10.10.10","description":"The data describing the resource."},{"field":"dns.answers.name","type":"keyword","normalization":"","example":"www.example.com","description":"The domain name to which this resource record pertains."},{"field":"dns.answers.ttl","type":"long","normalization":"","example":180,"description":"The time interval in seconds that this resource record may be cached before it should be discarded."},{"field":"dns.answers.type","type":"keyword","normalization":"","example":"CNAME","description":"The type of data contained in this resource record."},{"field":"dns.header_flags","type":"keyword","normalization":"array","example":["RD","RA"],"description":"Array of DNS header flags."},{"field":"dns.id","type":"keyword","normalization":"","example":62111,"description":"The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response."},{"field":"dns.op_code","type":"keyword","normalization":"","example":"QUERY","description":"The DNS operation code that specifies the kind of query in the message."},{"field":"dns.question.class","type":"keyword","normalization":"","example":"IN","description":"The class of records being queried."},{"field":"dns.question.name","type":"keyword","normalization":"","example":"www.example.com","description":"The name being queried."},{"field":"dns.question.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered domain, stripped of the subdomain."},{"field":"dns.question.subdomain","type":"keyword","normalization":"","example":"www","description":"The subdomain of the domain."},{"field":"dns.question.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"dns.question.type","type":"keyword","normalization":"","example":"AAAA","description":"The type of record being queried."},{"field":"dns.resolved_ip","type":"ip","normalization":"array","example":["10.10.10.10","10.10.10.11"],"description":"Array containing all IPs seen in answers.data"},{"field":"dns.response_code","type":"keyword","normalization":"","example":"NOERROR","description":"The DNS response code."},{"field":"dns.type","type":"keyword","normalization":"","example":"answer","description":"The type of DNS event captured, query or answer."},{"field":"email.attachments","type":"nested","normalization":"array","example":"","description":"List of objects describing the attachments."},{"field":"email.attachments.file.extension","type":"keyword","normalization":"","example":"txt","description":"Attachment file extension."},{"field":"email.attachments.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"email.attachments.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"email.attachments.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"email.attachments.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"email.attachments.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"email.attachments.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"email.attachments.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"email.attachments.file.mime_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the attachment file."},{"field":"email.attachments.file.name","type":"keyword","normalization":"","example":"attachment.txt","description":"Name of the attachment file."},{"field":"email.attachments.file.size","type":"long","normalization":"","example":64329,"description":"Attachment file size."},{"field":"email.bcc.address","type":"keyword","normalization":"array","example":"bcc.user1@example.com","description":"Email address of BCC recipient"},{"field":"email.cc.address","type":"keyword","normalization":"array","example":"cc.user1@example.com","description":"Email address of CC recipient"},{"field":"email.content_type","type":"keyword","normalization":"","example":"text/plain","description":"MIME type of the email message."},{"field":"email.delivery_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time when message was delivered."},{"field":"email.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the message."},{"field":"email.from.address","type":"keyword","normalization":"array","example":"sender@example.com","description":"The sender's email address."},{"field":"email.local_id","type":"keyword","normalization":"","example":"c26dbea0-80d5-463b-b93c-4e8b708219ce","description":"Unique identifier given by the source."},{"field":"email.message_id","type":"wildcard","normalization":"","example":"81ce15$8r2j59@mail01.example.com","description":"Value from the Message-ID header."},{"field":"email.origination_timestamp","type":"date","normalization":"","example":"2020-11-10T22:12:34.8196921Z","description":"Date and time the email was composed."},{"field":"email.reply_to.address","type":"keyword","normalization":"array","example":"reply.here@example.com","description":"Address replies should be delivered to."},{"field":"email.sender.address","type":"keyword","normalization":"","example":"","description":"Address of the message sender."},{"field":"email.subject","type":"keyword","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.subject.text","type":"match_only_text","normalization":"","example":"Please see this important message.","description":"The subject of the email message."},{"field":"email.to.address","type":"keyword","normalization":"array","example":"user1@example.com","description":"Email address of recipient"},{"field":"email.x_mailer","type":"keyword","normalization":"","example":"Spambot v2.5","description":"Application that drafted email."},{"field":"error.code","type":"keyword","normalization":"","example":"","description":"Error code describing the error."},{"field":"error.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the error."},{"field":"error.message","type":"match_only_text","normalization":"","example":"","description":"Error message."},{"field":"error.stack_trace","type":"wildcard","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.stack_trace.text","type":"match_only_text","normalization":"","example":"","description":"The stack trace of this error in plain text."},{"field":"error.type","type":"keyword","normalization":"","example":"java.lang.NullPointerException","description":"The type of the error, for example the class name of the exception."},{"field":"event.action","type":"keyword","normalization":"","example":"user-password-change","description":"The action captured by the event."},{"field":"event.category","type":"keyword","normalization":"array","example":"authentication","description":"Event category. The second categorization field in the hierarchy."},{"field":"event.code","type":"keyword","normalization":"","example":4648,"description":"Identification code for this event."},{"field":"event.created","type":"date","normalization":"","example":"2016-05-23T08:05:34.857Z","description":"Time when the event was first read by an agent or by your pipeline."},{"field":"event.dataset","type":"keyword","normalization":"","example":"apache.access","description":"Name of the dataset."},{"field":"event.duration","type":"long","normalization":"","example":"","description":"Duration of the event in nanoseconds."},{"field":"event.end","type":"date","normalization":"","example":"","description":"event.end contains the date when the event ended or when the activity was last observed."},{"field":"event.hash","type":"keyword","normalization":"","example":"123456789012345678901234567890ABCD","description":"Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity."},{"field":"event.id","type":"keyword","normalization":"","example":"8a4f500d","description":"Unique ID to describe the event."},{"field":"event.kind","type":"keyword","normalization":"","example":"alert","description":"The kind of the event. The highest categorization field in the hierarchy."},{"field":"event.original","type":"keyword","normalization":"","example":"Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232","description":"Raw text message of entire event."},{"field":"event.outcome","type":"keyword","normalization":"","example":"success","description":"The outcome of the event. The lowest level categorization field in the hierarchy."},{"field":"event.provider","type":"keyword","normalization":"","example":"kernel","description":"Source of the event."},{"field":"event.reason","type":"keyword","normalization":"","example":"Terminated an unexpected process","description":"Reason why this event happened, according to the source"},{"field":"event.reference","type":"keyword","normalization":"","example":"https://system.example.com/event/#0001234","description":"Event reference URL"},{"field":"event.risk_score","type":"float","normalization":"","example":"","description":"Risk score or priority of the event (e.g. security solutions). Use your system's original value here."},{"field":"event.risk_score_norm","type":"float","normalization":"","example":"","description":"Normalized risk score or priority of the event (0-100)."},{"field":"event.sequence","type":"long","normalization":"","example":"","description":"Sequence number of the event."},{"field":"event.severity","type":"long","normalization":"","example":7,"description":"Numeric severity of the event."},{"field":"event.start","type":"date","normalization":"","example":"","description":"event.start contains the date when the event started or when the activity was first observed."},{"field":"event.timezone","type":"keyword","normalization":"","example":"","description":"Event time zone."},{"field":"event.type","type":"keyword","normalization":"array","example":"","description":"Event type. The third categorization field in the hierarchy."},{"field":"event.url","type":"keyword","normalization":"","example":"https://mysystem.example.com/alert/5271dedb-f5b0-4218-87f0-4ac4870a38fe","description":"Event investigation URL"},{"field":"faas.coldstart","type":"boolean","normalization":"","example":"","description":"Boolean value indicating a cold start of a function."},{"field":"faas.execution","type":"keyword","normalization":"","example":"af9d5aa4-a685-4c5f-a22b-444f80b3cc28","description":"The execution ID of the current function execution."},{"field":"faas.id","type":"keyword","normalization":"","example":"arn:aws:lambda:us-west-2:123456789012:function:my-function","description":"The unique identifier of a serverless function."},{"field":"faas.name","type":"keyword","normalization":"","example":"my-function","description":"The name of a serverless function."},{"field":"faas.trigger","type":"nested","normalization":"","example":"","description":"Details about the function trigger."},{"field":"faas.trigger.request_id","type":"keyword","normalization":"","example":123456789,"description":"The ID of the trigger request , message, event, etc."},{"field":"faas.trigger.type","type":"keyword","normalization":"","example":"http","description":"The trigger for the function execution."},{"field":"faas.version","type":"keyword","normalization":"","example":123,"description":"The version of a serverless function."},{"field":"file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"host.boot.id","type":"keyword","normalization":"","example":"88a1f0ed-5ae5-41ee-af6b-41921c311872","description":"Linux boot uuid taken from /proc/sys/kernel/random/boot_id"},{"field":"host.cpu.usage","type":"scaled_float","normalization":"","example":"","description":"Percent CPU used, between 0 and 1."},{"field":"host.disk.read.bytes","type":"long","normalization":"","example":"","description":"The number of bytes read by all disks."},{"field":"host.disk.write.bytes","type":"long","normalization":"","example":"","description":"The number of bytes written on all disks."},{"field":"host.domain","type":"keyword","normalization":"","example":"CONTOSO","description":"Name of the directory the group is a member of."},{"field":"host.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"host.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"host.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"host.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"host.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"host.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"host.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"host.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"host.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"host.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"host.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"host.name","type":"keyword","normalization":"","example":"","description":"Name of the host."},{"field":"host.network.egress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes sent on all network interfaces."},{"field":"host.network.egress.packets","type":"long","normalization":"","example":"","description":"The number of packets sent on all network interfaces."},{"field":"host.network.ingress.bytes","type":"long","normalization":"","example":"","description":"The number of bytes received on all network interfaces."},{"field":"host.network.ingress.packets","type":"long","normalization":"","example":"","description":"The number of packets received on all network interfaces."},{"field":"host.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"host.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"host.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"host.pid_ns_ino","type":"keyword","normalization":"","example":256383,"description":"Pid namespace inode"},{"field":"host.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"host.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"host.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"host.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"host.type","type":"keyword","normalization":"","example":"","description":"Type of host."},{"field":"host.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the host has been up."},{"field":"http.request.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the request body."},{"field":"http.request.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP request body."},{"field":"http.request.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the request (body and headers)."},{"field":"http.request.id","type":"keyword","normalization":"","example":"123e4567-e89b-12d3-a456-426614174000","description":"HTTP request ID."},{"field":"http.request.method","type":"keyword","normalization":"","example":"POST","description":"HTTP request method."},{"field":"http.request.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the request."},{"field":"http.request.referrer","type":"keyword","normalization":"","example":"https://blog.example.com/","description":"Referrer for this HTTP request."},{"field":"http.response.body.bytes","type":"long","normalization":"","example":887,"description":"Size in bytes of the response body."},{"field":"http.response.body.content","type":"wildcard","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.body.content.text","type":"match_only_text","normalization":"","example":"Hello world","description":"The full HTTP response body."},{"field":"http.response.bytes","type":"long","normalization":"","example":1437,"description":"Total size in bytes of the response (body and headers)."},{"field":"http.response.mime_type","type":"keyword","normalization":"","example":"image/gif","description":"Mime type of the body of the response."},{"field":"http.response.status_code","type":"long","normalization":"","example":404,"description":"HTTP response status code."},{"field":"http.version","type":"keyword","normalization":"","example":1.1,"description":"HTTP version."},{"field":"log.file.path","type":"keyword","normalization":"","example":"/var/log/fun-times.log","description":"Full path to the log file this event came from."},{"field":"log.level","type":"keyword","normalization":"","example":"error","description":"Log level of the log event."},{"field":"log.logger","type":"keyword","normalization":"","example":"org.elasticsearch.bootstrap.Bootstrap","description":"Name of the logger."},{"field":"log.origin.file.line","type":"long","normalization":"","example":42,"description":"The line number of the file which originated the log event."},{"field":"log.origin.file.name","type":"keyword","normalization":"","example":"Bootstrap.java","description":"The code file which originated the log event."},{"field":"log.origin.function","type":"keyword","normalization":"","example":"init","description":"The function which originated the log event."},{"field":"log.syslog","type":"object","normalization":"","example":"","description":"Syslog metadata"},{"field":"log.syslog.appname","type":"keyword","normalization":"","example":"sshd","description":"The device or application that originated the Syslog message."},{"field":"log.syslog.facility.code","type":"long","normalization":"","example":23,"description":"Syslog numeric facility of the event."},{"field":"log.syslog.facility.name","type":"keyword","normalization":"","example":"local7","description":"Syslog text-based facility of the event."},{"field":"log.syslog.hostname","type":"keyword","normalization":"","example":"example-host","description":"The host that originated the Syslog message."},{"field":"log.syslog.msgid","type":"keyword","normalization":"","example":"ID47","description":"An identifier for the type of Syslog message."},{"field":"log.syslog.priority","type":"long","normalization":"","example":135,"description":"Syslog priority of the event."},{"field":"log.syslog.procid","type":"keyword","normalization":"","example":12345,"description":"The process name or ID that originated the Syslog message."},{"field":"log.syslog.severity.code","type":"long","normalization":"","example":3,"description":"Syslog numeric severity of the event."},{"field":"log.syslog.severity.name","type":"keyword","normalization":"","example":"Error","description":"Syslog text-based severity of the event."},{"field":"log.syslog.structured_data","type":"flattened","normalization":"","example":"","description":"Structured data expressed in RFC 5424 messages."},{"field":"log.syslog.version","type":"keyword","normalization":"","example":1,"description":"Syslog protocol version."},{"field":"network.application","type":"keyword","normalization":"","example":"aim","description":"Application level protocol name."},{"field":"network.bytes","type":"long","normalization":"","example":368,"description":"Total bytes transferred in both directions."},{"field":"network.community_id","type":"keyword","normalization":"","example":"1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0=","description":"A hash of source and destination IPs and ports."},{"field":"network.direction","type":"keyword","normalization":"","example":"inbound","description":"Direction of the network traffic."},{"field":"network.forwarded_ip","type":"ip","normalization":"","example":"192.1.1.2","description":"Host IP address when the source IP address is the proxy."},{"field":"network.iana_number","type":"keyword","normalization":"","example":6,"description":"IANA Protocol Number."},{"field":"network.inner","type":"object","normalization":"","example":"","description":"Inner VLAN tag information"},{"field":"network.inner.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.inner.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"network.name","type":"keyword","normalization":"","example":"Guest Wifi","description":"Name given by operators to sections of their network."},{"field":"network.packets","type":"long","normalization":"","example":24,"description":"Total packets transferred in both directions."},{"field":"network.protocol","type":"keyword","normalization":"","example":"http","description":"Application protocol name."},{"field":"network.transport","type":"keyword","normalization":"","example":"tcp","description":"Protocol Name corresponding to the field `iana_number`."},{"field":"network.type","type":"keyword","normalization":"","example":"ipv4","description":"In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc"},{"field":"network.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"network.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress","type":"object","normalization":"","example":"","description":"Object field for egress information"},{"field":"observer.egress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.egress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.egress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.egress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.egress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.egress.zone","type":"keyword","normalization":"","example":"Public_Internet","description":"Observer Egress zone"},{"field":"observer.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"observer.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"observer.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"observer.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"observer.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"observer.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"observer.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"observer.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"observer.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"observer.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"observer.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"observer.hostname","type":"keyword","normalization":"","example":"","description":"Hostname of the observer."},{"field":"observer.ingress","type":"object","normalization":"","example":"","description":"Object field for ingress information"},{"field":"observer.ingress.interface.alias","type":"keyword","normalization":"","example":"outside","description":"Interface alias"},{"field":"observer.ingress.interface.id","type":"keyword","normalization":"","example":10,"description":"Interface ID"},{"field":"observer.ingress.interface.name","type":"keyword","normalization":"","example":"eth0","description":"Interface name"},{"field":"observer.ingress.vlan.id","type":"keyword","normalization":"","example":10,"description":"VLAN ID as reported by the observer."},{"field":"observer.ingress.vlan.name","type":"keyword","normalization":"","example":"outside","description":"Optional VLAN name as reported by the observer."},{"field":"observer.ingress.zone","type":"keyword","normalization":"","example":"DMZ","description":"Observer ingress zone"},{"field":"observer.ip","type":"ip","normalization":"array","example":"","description":"IP addresses of the observer."},{"field":"observer.mac","type":"keyword","normalization":"array","example":["00-00-5E-00-53-23","00-00-5E-00-53-24"],"description":"MAC addresses of the observer."},{"field":"observer.name","type":"keyword","normalization":"","example":"1_proxySG","description":"Custom name of the observer."},{"field":"observer.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"observer.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"observer.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"observer.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"observer.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"observer.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"observer.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"observer.product","type":"keyword","normalization":"","example":"s200","description":"The product name of the observer."},{"field":"observer.serial_number","type":"keyword","normalization":"","example":"","description":"Observer serial number."},{"field":"observer.type","type":"keyword","normalization":"","example":"firewall","description":"The type of the observer the data is coming from."},{"field":"observer.vendor","type":"keyword","normalization":"","example":"Symantec","description":"Vendor name of the observer."},{"field":"observer.version","type":"keyword","normalization":"","example":"","description":"Observer version."},{"field":"orchestrator.api_version","type":"keyword","normalization":"","example":"v1beta1","description":"API version being used to carry out the action"},{"field":"orchestrator.cluster.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the cluster."},{"field":"orchestrator.cluster.name","type":"keyword","normalization":"","example":"","description":"Name of the cluster."},{"field":"orchestrator.cluster.url","type":"keyword","normalization":"","example":"","description":"URL of the API used to manage the cluster."},{"field":"orchestrator.cluster.version","type":"keyword","normalization":"","example":"","description":"The version of the cluster."},{"field":"orchestrator.namespace","type":"keyword","normalization":"","example":"kube-system","description":"Namespace in which the action is taking place."},{"field":"orchestrator.organization","type":"keyword","normalization":"","example":"elastic","description":"Organization affected by the event (for multi-tenant orchestrator setups)."},{"field":"orchestrator.resource.id","type":"keyword","normalization":"","example":"","description":"Unique ID of the resource being acted upon."},{"field":"orchestrator.resource.ip","type":"ip","normalization":"array","example":"","description":"IP address assigned to the resource associated with the event being observed."},{"field":"orchestrator.resource.name","type":"keyword","normalization":"","example":"test-pod-cdcws","description":"Name of the resource being acted upon."},{"field":"orchestrator.resource.parent.type","type":"keyword","normalization":"","example":"DaemonSet","description":"Type or kind of the parent resource associated with the event being observed."},{"field":"orchestrator.resource.type","type":"keyword","normalization":"","example":"service","description":"Type of resource being acted upon."},{"field":"orchestrator.type","type":"keyword","normalization":"","example":"kubernetes","description":"Orchestrator cluster type (e.g. kubernetes, nomad or cloudfoundry)."},{"field":"organization.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the organization."},{"field":"organization.name","type":"keyword","normalization":"","example":"","description":"Organization name."},{"field":"organization.name.text","type":"match_only_text","normalization":"","example":"","description":"Organization name."},{"field":"package.architecture","type":"keyword","normalization":"","example":"x86_64","description":"Package architecture."},{"field":"package.build_version","type":"keyword","normalization":"","example":"36f4f7e89dd61b0988b12ee000b98966867710cd","description":"Build version information"},{"field":"package.checksum","type":"keyword","normalization":"","example":"68b329da9893e34099c7d8ad5cb9c940","description":"Checksum of the installed package for verification."},{"field":"package.description","type":"keyword","normalization":"","example":"Open source programming language to build simple/reliable/efficient software.","description":"Description of the package."},{"field":"package.install_scope","type":"keyword","normalization":"","example":"global","description":"Indicating how the package was installed, e.g. user-local, global."},{"field":"package.installed","type":"date","normalization":"","example":"","description":"Time when package was installed."},{"field":"package.license","type":"keyword","normalization":"","example":"Apache License 2.0","description":"Package license"},{"field":"package.name","type":"keyword","normalization":"","example":"go","description":"Package name"},{"field":"package.path","type":"keyword","normalization":"","example":"/usr/local/Cellar/go/1.12.9/","description":"Path where the package is installed."},{"field":"package.reference","type":"keyword","normalization":"","example":"https://golang.org","description":"Package home page or reference URL"},{"field":"package.size","type":"long","normalization":"","example":62231,"description":"Package size in bytes."},{"field":"package.type","type":"keyword","normalization":"","example":"rpm","description":"Package type"},{"field":"package.version","type":"keyword","normalization":"","example":"1.12.9","description":"Package version"},{"field":"process.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.entry_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.entry_leader.attested_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.attested_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.attested_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.attested_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.entry_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.entry_meta.source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"process.entry_leader.entry_meta.type","type":"keyword","normalization":"","example":"","description":"The entry type for the entry session leader."},{"field":"process.entry_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.entry_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.entry_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.entry_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.entry_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.entry_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.entry_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.entry_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.entry_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.entry_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.entry_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.entry_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.entry_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.entry_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.entry_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.entry_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.env_vars","type":"keyword","normalization":"array","example":["PATH=/usr/local/bin:/usr/bin","USER=ubuntu"],"description":"Array of environment variable bindings."},{"field":"process.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.group_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.group_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.group_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.group_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.group_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.group_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.group_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.group_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.group_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.group_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.group_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.group_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.group_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.group_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.group_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.group_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.group_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.parent.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.parent.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"process.parent.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"process.parent.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"process.parent.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"process.parent.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"process.parent.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"process.parent.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"process.parent.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"process.parent.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"process.parent.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.parent.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"process.parent.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"process.parent.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"process.parent.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"process.parent.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"process.parent.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"process.parent.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"process.parent.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"process.parent.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"process.parent.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"process.parent.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"process.parent.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"process.parent.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"process.parent.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"process.parent.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"process.parent.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"process.parent.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"process.parent.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"process.parent.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"process.parent.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"process.parent.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"process.parent.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"process.parent.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"process.parent.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"process.parent.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"process.parent.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"process.parent.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"process.parent.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"process.parent.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"process.parent.end","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process ended."},{"field":"process.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.parent.exit_code","type":"long","normalization":"","example":137,"description":"The exit code of the process."},{"field":"process.parent.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.group_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.parent.group_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.group_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"process.parent.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"process.parent.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"process.parent.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"process.parent.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"process.parent.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"process.parent.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"process.parent.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.parent.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.parent.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.parent.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.parent.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.parent.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.parent.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.parent.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.parent.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.parent.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.parent.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.parent.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.parent.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.parent.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.parent.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.parent.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.parent.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.parent.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.parent.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.parent.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.parent.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.parent.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.parent.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.parent.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.parent.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.parent.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"process.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"process.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"process.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"process.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"process.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"process.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"process.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"process.pgid","type":"long","normalization":"","example":"","description":"Deprecated identifier of the group of processes the process belongs to."},{"field":"process.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.previous.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.previous.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.previous.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.previous.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.args","type":"keyword","normalization":"array","example":["/usr/bin/ssh","-l","user","10.0.0.16"],"description":"Array of process arguments."},{"field":"process.session_leader.args_count","type":"long","normalization":"","example":4,"description":"Length of the process.args array."},{"field":"process.session_leader.command_line","type":"wildcard","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.command_line.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh -l user 10.0.0.16","description":"Full command line that started the process."},{"field":"process.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.executable","type":"keyword","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.executable.text","type":"match_only_text","normalization":"","example":"/usr/bin/ssh","description":"Absolute path to the process executable."},{"field":"process.session_leader.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.interactive","type":"boolean","normalization":"","example":"True","description":"Whether the process is connected to an interactive shell."},{"field":"process.session_leader.name","type":"keyword","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.name.text","type":"match_only_text","normalization":"","example":"ssh","description":"Process name."},{"field":"process.session_leader.parent.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.entity_id","type":"keyword","normalization":"","example":"c2c455d9f99375d","description":"Unique identifier for the process."},{"field":"process.session_leader.parent.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.parent.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.parent.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.pid","type":"long","normalization":"","example":4242,"description":"Process id."},{"field":"process.session_leader.real_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.real_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.real_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.real_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.real_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.same_as_process","type":"boolean","normalization":"","example":"True","description":"This boolean is used to identify if a leader process is the same as the top level process."},{"field":"process.session_leader.saved_group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.saved_group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.saved_user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.saved_user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.saved_user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.session_leader.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.session_leader.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.session_leader.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.session_leader.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.session_leader.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.session_leader.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.session_leader.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.session_leader.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.session_leader.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.start","type":"date","normalization":"","example":"2016-05-23T08:05:34.853Z","description":"The time the process started."},{"field":"process.supplemental_groups.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"process.supplemental_groups.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"process.thread.id","type":"long","normalization":"","example":4242,"description":"Thread ID."},{"field":"process.thread.name","type":"keyword","normalization":"","example":"thread-0","description":"Thread name."},{"field":"process.title","type":"keyword","normalization":"","example":"","description":"Process title."},{"field":"process.title.text","type":"match_only_text","normalization":"","example":"","description":"Process title."},{"field":"process.tty","type":"object","normalization":"","example":"","description":"Information about the controlling TTY device."},{"field":"process.tty.char_device.major","type":"long","normalization":"","example":4,"description":"The TTY character device's major number."},{"field":"process.tty.char_device.minor","type":"long","normalization":"","example":1,"description":"The TTY character device's minor number."},{"field":"process.tty.columns","type":"long","normalization":"","example":80,"description":"The number of character columns per line. e.g terminal width"},{"field":"process.tty.rows","type":"long","normalization":"","example":24,"description":"The number of character rows in the terminal. e.g terminal height"},{"field":"process.uptime","type":"long","normalization":"","example":1325,"description":"Seconds the process has been up."},{"field":"process.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"process.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"process.working_directory","type":"keyword","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"process.working_directory.text","type":"match_only_text","normalization":"","example":"/home/alice","description":"The working directory of the process."},{"field":"registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"related.hash","type":"keyword","normalization":"array","example":"","description":"All the hashes seen on your event."},{"field":"related.hosts","type":"keyword","normalization":"array","example":"","description":"All the host identifiers seen on your event."},{"field":"related.ip","type":"ip","normalization":"array","example":"","description":"All of the IPs seen on your event."},{"field":"related.user","type":"keyword","normalization":"array","example":"","description":"All the user names or other user identifiers seen on the event."},{"field":"rule.author","type":"keyword","normalization":"array","example":["Star-Lord"],"description":"Rule author"},{"field":"rule.category","type":"keyword","normalization":"","example":"Attempted Information Leak","description":"Rule category"},{"field":"rule.description","type":"keyword","normalization":"","example":"Block requests to public DNS over HTTPS / TLS protocols","description":"Rule description"},{"field":"rule.id","type":"keyword","normalization":"","example":101,"description":"Rule ID"},{"field":"rule.license","type":"keyword","normalization":"","example":"Apache 2.0","description":"Rule license"},{"field":"rule.name","type":"keyword","normalization":"","example":"BLOCK_DNS_over_TLS","description":"Rule name"},{"field":"rule.reference","type":"keyword","normalization":"","example":"https://en.wikipedia.org/wiki/DNS_over_TLS","description":"Rule reference URL"},{"field":"rule.ruleset","type":"keyword","normalization":"","example":"Standard_Protocol_Filters","description":"Rule ruleset"},{"field":"rule.uuid","type":"keyword","normalization":"","example":1100110011,"description":"Rule UUID"},{"field":"rule.version","type":"keyword","normalization":"","example":1.1,"description":"Rule version"},{"field":"server.address","type":"keyword","normalization":"","example":"","description":"Server network address."},{"field":"server.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"server.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"server.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the server to the client."},{"field":"server.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the server."},{"field":"server.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"server.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"server.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"server.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"server.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"server.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"server.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"server.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"server.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"server.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"server.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"server.ip","type":"ip","normalization":"","example":"","description":"IP address of the server."},{"field":"server.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the server."},{"field":"server.nat.ip","type":"ip","normalization":"","example":"","description":"Server NAT ip"},{"field":"server.nat.port","type":"long","normalization":"","example":"","description":"Server NAT port"},{"field":"server.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the server to the client."},{"field":"server.port","type":"long","normalization":"","example":"","description":"Port of the server."},{"field":"server.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered server domain, stripped of the subdomain."},{"field":"server.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"server.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"server.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"server.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"server.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"server.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"server.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"server.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"server.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"server.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"server.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"server.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"service.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.origin.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.origin.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.origin.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.origin.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.origin.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.origin.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.origin.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.origin.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.origin.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.origin.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.address","type":"keyword","normalization":"","example":"172.26.0.2:5432","description":"Address of this service."},{"field":"service.target.environment","type":"keyword","normalization":"","example":"production","description":"Environment of the service."},{"field":"service.target.ephemeral_id","type":"keyword","normalization":"","example":"8a4f500f","description":"Ephemeral identifier of this service."},{"field":"service.target.id","type":"keyword","normalization":"","example":"d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6","description":"Unique identifier of the running service."},{"field":"service.target.name","type":"keyword","normalization":"","example":"elasticsearch-metrics","description":"Name of the service."},{"field":"service.target.node.name","type":"keyword","normalization":"","example":"instance-0000000016","description":"Name of the service node."},{"field":"service.target.node.role","type":"keyword","normalization":"","example":"background_tasks","description":"Deprecated role (singular) of the service node."},{"field":"service.target.node.roles","type":"keyword","normalization":"array","example":["ui","background_tasks"],"description":"Roles of the service node."},{"field":"service.target.state","type":"keyword","normalization":"","example":"","description":"Current state of the service."},{"field":"service.target.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.target.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"service.type","type":"keyword","normalization":"","example":"elasticsearch","description":"The type of the service."},{"field":"service.version","type":"keyword","normalization":"","example":"3.2.4","description":"Version of the service."},{"field":"source.address","type":"keyword","normalization":"","example":"","description":"Source network address."},{"field":"source.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"source.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"source.bytes","type":"long","normalization":"","example":184,"description":"Bytes sent from the source to the destination."},{"field":"source.domain","type":"keyword","normalization":"","example":"foo.example.com","description":"The domain name of the source."},{"field":"source.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"source.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"source.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"source.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"source.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"source.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"source.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"source.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"source.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"source.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"source.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"source.ip","type":"ip","normalization":"","example":"","description":"IP address of the source."},{"field":"source.mac","type":"keyword","normalization":"","example":"00-00-5E-00-53-23","description":"MAC address of the source."},{"field":"source.nat.ip","type":"ip","normalization":"","example":"","description":"Source NAT ip"},{"field":"source.nat.port","type":"long","normalization":"","example":"","description":"Source NAT port"},{"field":"source.packets","type":"long","normalization":"","example":12,"description":"Packets sent from the source to the destination."},{"field":"source.port","type":"long","normalization":"","example":"","description":"Port of the source."},{"field":"source.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered source domain, stripped of the subdomain."},{"field":"source.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"source.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"source.user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"source.user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"source.user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"source.user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"source.user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"source.user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"source.user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"source.user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"source.user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"source.user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"span.id","type":"keyword","normalization":"","example":"3ff9a8981b7ccd5a","description":"Unique identifier of the span within the scope of its trace."},{"field":"threat.enrichments","type":"nested","normalization":"array","example":"","description":"List of objects containing indicators enriching the event."},{"field":"threat.enrichments.indicator","type":"object","normalization":"","example":"","description":"Object containing indicators enriching the event."},{"field":"threat.enrichments.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.enrichments.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.enrichments.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.enrichments.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.enrichments.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.enrichments.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.enrichments.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.enrichments.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.enrichments.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.enrichments.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.enrichments.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.enrichments.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.enrichments.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.enrichments.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.enrichments.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.enrichments.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.enrichments.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.enrichments.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.enrichments.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.enrichments.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.enrichments.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.enrichments.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.enrichments.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.enrichments.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.enrichments.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.enrichments.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.enrichments.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.enrichments.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.enrichments.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.enrichments.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.enrichments.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.enrichments.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.enrichments.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.enrichments.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.enrichments.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.enrichments.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.enrichments.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.enrichments.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.enrichments.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.enrichments.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.enrichments.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.enrichments.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.enrichments.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.enrichments.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.enrichments.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.enrichments.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.enrichments.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.enrichments.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.enrichments.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.enrichments.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.enrichments.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.enrichments.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.enrichments.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.enrichments.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.enrichments.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.enrichments.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.enrichments.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.enrichments.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.enrichments.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.enrichments.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.enrichments.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.enrichments.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.enrichments.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.enrichments.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.enrichments.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.enrichments.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.enrichments.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.enrichments.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.enrichments.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.enrichments.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.enrichments.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.enrichments.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.enrichments.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.enrichments.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.enrichments.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.enrichments.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.enrichments.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.enrichments.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.enrichments.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.enrichments.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.enrichments.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.enrichments.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.enrichments.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.enrichments.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.enrichments.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.enrichments.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.enrichments.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.enrichments.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.enrichments.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.enrichments.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.enrichments.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.enrichments.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.enrichments.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.enrichments.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.enrichments.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.enrichments.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.enrichments.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.enrichments.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.enrichments.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.enrichments.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.enrichments.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.enrichments.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.enrichments.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.enrichments.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.enrichments.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.enrichments.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.enrichments.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.enrichments.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.enrichments.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.enrichments.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.enrichments.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.enrichments.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.enrichments.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.enrichments.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.enrichments.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.enrichments.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.enrichments.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.enrichments.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.enrichments.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.enrichments.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.enrichments.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.enrichments.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.enrichments.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.enrichments.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.enrichments.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.enrichments.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.enrichments.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.enrichments.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.enrichments.matched.atomic","type":"keyword","normalization":"","example":"bad-domain.com","description":"Matched indicator value"},{"field":"threat.enrichments.matched.field","type":"keyword","normalization":"","example":"file.hash.sha256","description":"Matched indicator field"},{"field":"threat.enrichments.matched.id","type":"keyword","normalization":"","example":"ff93aee5-86a1-4a61-b0e6-0cdc313d01b5","description":"Matched indicator identifier"},{"field":"threat.enrichments.matched.index","type":"keyword","normalization":"","example":"filebeat-8.0.0-2021.05.23-000011","description":"Matched indicator index"},{"field":"threat.enrichments.matched.occurred","type":"date","normalization":"","example":"2021-10-05T17:00:58.326Z","description":"Date of match"},{"field":"threat.enrichments.matched.type","type":"keyword","normalization":"","example":"indicator_match_rule","description":"Type of indicator match"},{"field":"threat.feed.dashboard_id","type":"keyword","normalization":"","example":"5ba16340-72e6-11eb-a3e3-b3cc7c78a70f","description":"Feed dashboard ID."},{"field":"threat.feed.description","type":"keyword","normalization":"","example":"Threat feed from the AlienVault Open Threat eXchange network.","description":"Description of the threat feed."},{"field":"threat.feed.name","type":"keyword","normalization":"","example":"AlienVault OTX","description":"Name of the threat feed."},{"field":"threat.feed.reference","type":"keyword","normalization":"","example":"https://otx.alienvault.com","description":"Reference for the threat feed."},{"field":"threat.framework","type":"keyword","normalization":"","example":"MITRE ATT&CK","description":"Threat classification framework."},{"field":"threat.group.alias","type":"keyword","normalization":"array","example":["Magecart Group 6"],"description":"Alias of the group."},{"field":"threat.group.id","type":"keyword","normalization":"","example":"G0037","description":"ID of the group."},{"field":"threat.group.name","type":"keyword","normalization":"","example":"FIN6","description":"Name of the group."},{"field":"threat.group.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/groups/G0037/","description":"Reference URL of the group."},{"field":"threat.indicator.as.number","type":"long","normalization":"","example":15169,"description":"Unique number allocated to the autonomous system."},{"field":"threat.indicator.as.organization.name","type":"keyword","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.as.organization.name.text","type":"match_only_text","normalization":"","example":"Google LLC","description":"Organization name."},{"field":"threat.indicator.confidence","type":"keyword","normalization":"","example":"Medium","description":"Indicator confidence rating"},{"field":"threat.indicator.description","type":"keyword","normalization":"","example":"IP x.x.x.x was observed delivering the Angler EK.","description":"Indicator description"},{"field":"threat.indicator.email.address","type":"keyword","normalization":"","example":"phish@example.com","description":"Indicator email address"},{"field":"threat.indicator.file.accessed","type":"date","normalization":"","example":"","description":"Last time the file was accessed."},{"field":"threat.indicator.file.attributes","type":"keyword","normalization":"array","example":["readonly","system"],"description":"Array of file attributes."},{"field":"threat.indicator.file.code_signature.digest_algorithm","type":"keyword","normalization":"","example":"sha256","description":"Hashing algorithm used to sign the process."},{"field":"threat.indicator.file.code_signature.exists","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if a signature is present."},{"field":"threat.indicator.file.code_signature.signing_id","type":"keyword","normalization":"","example":"com.apple.xpc.proxy","description":"The identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.status","type":"keyword","normalization":"","example":"ERROR_UNTRUSTED_ROOT","description":"Additional information about the certificate status."},{"field":"threat.indicator.file.code_signature.subject_name","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Subject name of the code signer"},{"field":"threat.indicator.file.code_signature.team_id","type":"keyword","normalization":"","example":"EQHXZ8M8AV","description":"The team identifier used to sign the process."},{"field":"threat.indicator.file.code_signature.timestamp","type":"date","normalization":"","example":"2021-01-01T12:10:30Z","description":"When the signature was generated and signed."},{"field":"threat.indicator.file.code_signature.trusted","type":"boolean","normalization":"","example":true,"description":"Stores the trust status of the certificate chain."},{"field":"threat.indicator.file.code_signature.valid","type":"boolean","normalization":"","example":true,"description":"Boolean to capture if the digital signature is verified against the binary content."},{"field":"threat.indicator.file.created","type":"date","normalization":"","example":"","description":"File creation time."},{"field":"threat.indicator.file.ctime","type":"date","normalization":"","example":"","description":"Last time the file attributes or metadata changed."},{"field":"threat.indicator.file.device","type":"keyword","normalization":"","example":"sda","description":"Device that is the source of the file."},{"field":"threat.indicator.file.directory","type":"keyword","normalization":"","example":"/home/alice","description":"Directory where the file is located."},{"field":"threat.indicator.file.drive_letter","type":"keyword","normalization":"","example":"C","description":"Drive letter where the file is located."},{"field":"threat.indicator.file.elf.architecture","type":"keyword","normalization":"","example":"x86-64","description":"Machine architecture of the ELF file."},{"field":"threat.indicator.file.elf.byte_order","type":"keyword","normalization":"","example":"Little Endian","description":"Byte sequence of ELF file."},{"field":"threat.indicator.file.elf.cpu_type","type":"keyword","normalization":"","example":"Intel","description":"CPU type of the ELF file."},{"field":"threat.indicator.file.elf.creation_date","type":"date","normalization":"","example":"","description":"Build or compile date."},{"field":"threat.indicator.file.elf.exports","type":"flattened","normalization":"array","example":"","description":"List of exported element names and types."},{"field":"threat.indicator.file.elf.header.abi_version","type":"keyword","normalization":"","example":"","description":"Version of the ELF Application Binary Interface (ABI)."},{"field":"threat.indicator.file.elf.header.class","type":"keyword","normalization":"","example":"","description":"Header class of the ELF file."},{"field":"threat.indicator.file.elf.header.data","type":"keyword","normalization":"","example":"","description":"Data table of the ELF header."},{"field":"threat.indicator.file.elf.header.entrypoint","type":"long","normalization":"","example":"","description":"Header entrypoint of the ELF file."},{"field":"threat.indicator.file.elf.header.object_version","type":"keyword","normalization":"","example":"","description":"0x1\" for original ELF files."},{"field":"threat.indicator.file.elf.header.os_abi","type":"keyword","normalization":"","example":"","description":"Application Binary Interface (ABI) of the Linux OS."},{"field":"threat.indicator.file.elf.header.type","type":"keyword","normalization":"","example":"","description":"Header type of the ELF file."},{"field":"threat.indicator.file.elf.header.version","type":"keyword","normalization":"","example":"","description":"Version of the ELF header."},{"field":"threat.indicator.file.elf.imports","type":"flattened","normalization":"array","example":"","description":"List of imported element names and types."},{"field":"threat.indicator.file.elf.sections","type":"nested","normalization":"array","example":"","description":"Section information of the ELF file."},{"field":"threat.indicator.file.elf.sections.chi2","type":"long","normalization":"","example":"","description":"Chi-square probability distribution of the section."},{"field":"threat.indicator.file.elf.sections.entropy","type":"long","normalization":"","example":"","description":"Shannon entropy calculation from the section."},{"field":"threat.indicator.file.elf.sections.flags","type":"keyword","normalization":"","example":"","description":"ELF Section List flags."},{"field":"threat.indicator.file.elf.sections.name","type":"keyword","normalization":"","example":"","description":"ELF Section List name."},{"field":"threat.indicator.file.elf.sections.physical_offset","type":"keyword","normalization":"","example":"","description":"ELF Section List offset."},{"field":"threat.indicator.file.elf.sections.physical_size","type":"long","normalization":"","example":"","description":"ELF Section List physical size."},{"field":"threat.indicator.file.elf.sections.type","type":"keyword","normalization":"","example":"","description":"ELF Section List type."},{"field":"threat.indicator.file.elf.sections.virtual_address","type":"long","normalization":"","example":"","description":"ELF Section List virtual address."},{"field":"threat.indicator.file.elf.sections.virtual_size","type":"long","normalization":"","example":"","description":"ELF Section List virtual size."},{"field":"threat.indicator.file.elf.segments","type":"nested","normalization":"array","example":"","description":"ELF object segment list."},{"field":"threat.indicator.file.elf.segments.sections","type":"keyword","normalization":"","example":"","description":"ELF object segment sections."},{"field":"threat.indicator.file.elf.segments.type","type":"keyword","normalization":"","example":"","description":"ELF object segment type."},{"field":"threat.indicator.file.elf.shared_libraries","type":"keyword","normalization":"array","example":"","description":"List of shared libraries used by this ELF object."},{"field":"threat.indicator.file.elf.telfhash","type":"keyword","normalization":"","example":"","description":"telfhash hash for ELF file."},{"field":"threat.indicator.file.extension","type":"keyword","normalization":"","example":"png","description":"File extension, excluding the leading dot."},{"field":"threat.indicator.file.fork_name","type":"keyword","normalization":"","example":"Zone.Identifer","description":"A fork is additional data associated with a filesystem object."},{"field":"threat.indicator.file.gid","type":"keyword","normalization":"","example":1001,"description":"Primary group ID (GID) of the file."},{"field":"threat.indicator.file.group","type":"keyword","normalization":"","example":"alice","description":"Primary group name of the file."},{"field":"threat.indicator.file.hash.md5","type":"keyword","normalization":"","example":"","description":"MD5 hash."},{"field":"threat.indicator.file.hash.sha1","type":"keyword","normalization":"","example":"","description":"SHA1 hash."},{"field":"threat.indicator.file.hash.sha256","type":"keyword","normalization":"","example":"","description":"SHA256 hash."},{"field":"threat.indicator.file.hash.sha384","type":"keyword","normalization":"","example":"","description":"SHA384 hash."},{"field":"threat.indicator.file.hash.sha512","type":"keyword","normalization":"","example":"","description":"SHA512 hash."},{"field":"threat.indicator.file.hash.ssdeep","type":"keyword","normalization":"","example":"","description":"SSDEEP hash."},{"field":"threat.indicator.file.hash.tlsh","type":"keyword","normalization":"","example":"","description":"TLSH hash."},{"field":"threat.indicator.file.inode","type":"keyword","normalization":"","example":256383,"description":"Inode representing the file in the filesystem."},{"field":"threat.indicator.file.mime_type","type":"keyword","normalization":"","example":"","description":"Media type of file, document, or arrangement of bytes."},{"field":"threat.indicator.file.mode","type":"keyword","normalization":"","example":"0640","description":"Mode of the file in octal representation."},{"field":"threat.indicator.file.mtime","type":"date","normalization":"","example":"","description":"Last time the file content was modified."},{"field":"threat.indicator.file.name","type":"keyword","normalization":"","example":"example.png","description":"Name of the file including the extension, without the directory."},{"field":"threat.indicator.file.owner","type":"keyword","normalization":"","example":"alice","description":"File owner's username."},{"field":"threat.indicator.file.path","type":"keyword","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.path.text","type":"match_only_text","normalization":"","example":"/home/alice/example.png","description":"Full path to the file, including the file name."},{"field":"threat.indicator.file.pe.architecture","type":"keyword","normalization":"","example":"x64","description":"CPU architecture target for the file."},{"field":"threat.indicator.file.pe.company","type":"keyword","normalization":"","example":"Microsoft Corporation","description":"Internal company name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.description","type":"keyword","normalization":"","example":"Paint","description":"Internal description of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.file_version","type":"keyword","normalization":"","example":"6.3.9600.17415","description":"Process name."},{"field":"threat.indicator.file.pe.imphash","type":"keyword","normalization":"","example":"0c6803c4e922103c4dca5963aad36ddf","description":"A hash of the imports in a PE file."},{"field":"threat.indicator.file.pe.original_file_name","type":"keyword","normalization":"","example":"MSPAINT.EXE","description":"Internal name of the file, provided at compile-time."},{"field":"threat.indicator.file.pe.pehash","type":"keyword","normalization":"","example":"73ff189b63cd6be375a7ff25179a38d347651975","description":"A hash of the PE header and data from one or more PE sections."},{"field":"threat.indicator.file.pe.product","type":"keyword","normalization":"","example":"Microsoft® Windows® Operating System","description":"Internal product name of the file, provided at compile-time."},{"field":"threat.indicator.file.size","type":"long","normalization":"","example":16384,"description":"File size in bytes."},{"field":"threat.indicator.file.target_path","type":"keyword","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.target_path.text","type":"match_only_text","normalization":"","example":"","description":"Target path for symlinks."},{"field":"threat.indicator.file.type","type":"keyword","normalization":"","example":"file","description":"File type (file, dir, or symlink)."},{"field":"threat.indicator.file.uid","type":"keyword","normalization":"","example":1001,"description":"The user ID (UID) or security identifier (SID) of the file owner."},{"field":"threat.indicator.file.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.file.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.file.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.file.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.file.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.file.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.file.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.file.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.file.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.file.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.file.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.file.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.file.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.file.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.file.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.file.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.file.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.file.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.indicator.first_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was first reported."},{"field":"threat.indicator.geo.city_name","type":"keyword","normalization":"","example":"Montreal","description":"City name."},{"field":"threat.indicator.geo.continent_code","type":"keyword","normalization":"","example":"NA","description":"Continent code."},{"field":"threat.indicator.geo.continent_name","type":"keyword","normalization":"","example":"North America","description":"Name of the continent."},{"field":"threat.indicator.geo.country_iso_code","type":"keyword","normalization":"","example":"CA","description":"Country ISO code."},{"field":"threat.indicator.geo.country_name","type":"keyword","normalization":"","example":"Canada","description":"Country name."},{"field":"threat.indicator.geo.location","type":"geo_point","normalization":"","example":{"lon":-73.61483,"lat":45.505918},"description":"Longitude and latitude."},{"field":"threat.indicator.geo.name","type":"keyword","normalization":"","example":"boston-dc","description":"User-defined description of a location."},{"field":"threat.indicator.geo.postal_code","type":"keyword","normalization":"","example":94040,"description":"Postal code."},{"field":"threat.indicator.geo.region_iso_code","type":"keyword","normalization":"","example":"CA-QC","description":"Region ISO code."},{"field":"threat.indicator.geo.region_name","type":"keyword","normalization":"","example":"Quebec","description":"Region name."},{"field":"threat.indicator.geo.timezone","type":"keyword","normalization":"","example":"America/Argentina/Buenos_Aires","description":"Time zone."},{"field":"threat.indicator.ip","type":"ip","normalization":"","example":"1.2.3.4","description":"Indicator IP address"},{"field":"threat.indicator.last_seen","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last reported."},{"field":"threat.indicator.marking.tlp","type":"keyword","normalization":"","example":"WHITE","description":"Indicator TLP marking"},{"field":"threat.indicator.modified_at","type":"date","normalization":"","example":"2020-11-05T17:25:47.000Z","description":"Date/time indicator was last updated."},{"field":"threat.indicator.port","type":"long","normalization":"","example":443,"description":"Indicator port"},{"field":"threat.indicator.provider","type":"keyword","normalization":"","example":"lrz_urlhaus","description":"Indicator provider"},{"field":"threat.indicator.reference","type":"keyword","normalization":"","example":"https://system.example.com/indicator/0001234","description":"Indicator reference URL"},{"field":"threat.indicator.registry.data.bytes","type":"keyword","normalization":"","example":"ZQBuAC0AVQBTAAAAZQBuAAAAAAA=","description":"Original bytes written with base64 encoding."},{"field":"threat.indicator.registry.data.strings","type":"wildcard","normalization":"array","example":"[\"C:\\rta\\red_ttp\\bin\\myapp.exe\"]","description":"List of strings representing what was written to the registry."},{"field":"threat.indicator.registry.data.type","type":"keyword","normalization":"","example":"REG_SZ","description":"Standard registry type for encoding contents"},{"field":"threat.indicator.registry.hive","type":"keyword","normalization":"","example":"HKLM","description":"Abbreviated name for the hive."},{"field":"threat.indicator.registry.key","type":"keyword","normalization":"","example":"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe","description":"Hive-relative path of keys."},{"field":"threat.indicator.registry.path","type":"keyword","normalization":"","example":"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\winword.exe\\Debugger","description":"Full path, including hive, key and value"},{"field":"threat.indicator.registry.value","type":"keyword","normalization":"","example":"Debugger","description":"Name of the value written."},{"field":"threat.indicator.scanner_stats","type":"long","normalization":"","example":4,"description":"Scanner statistics"},{"field":"threat.indicator.sightings","type":"long","normalization":"","example":20,"description":"Number of times indicator observed"},{"field":"threat.indicator.type","type":"keyword","normalization":"","example":"ipv4-addr","description":"Type of indicator"},{"field":"threat.indicator.url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"threat.indicator.url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"threat.indicator.url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"threat.indicator.url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"threat.indicator.url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"threat.indicator.url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"threat.indicator.url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"threat.indicator.url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"threat.indicator.url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"threat.indicator.url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"threat.indicator.url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"threat.indicator.url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"threat.indicator.url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"threat.indicator.url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"threat.indicator.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"threat.indicator.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"threat.indicator.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"threat.indicator.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"threat.indicator.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"threat.indicator.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"threat.indicator.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"threat.indicator.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"threat.indicator.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"threat.indicator.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"threat.indicator.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"threat.indicator.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"threat.indicator.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"threat.indicator.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"threat.indicator.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"threat.indicator.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"threat.indicator.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"threat.indicator.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"threat.indicator.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"threat.software.alias","type":"keyword","normalization":"array","example":["X-Agent"],"description":"Alias of the software"},{"field":"threat.software.id","type":"keyword","normalization":"","example":"S0552","description":"ID of the software"},{"field":"threat.software.name","type":"keyword","normalization":"","example":"AdFind","description":"Name of the software."},{"field":"threat.software.platforms","type":"keyword","normalization":"array","example":["Windows"],"description":"Platforms of the software."},{"field":"threat.software.reference","type":"keyword","normalization":"","example":"https://attack.mitre.org/software/S0552/","description":"Software reference URL."},{"field":"threat.software.type","type":"keyword","normalization":"","example":"Tool","description":"Software type."},{"field":"threat.tactic.id","type":"keyword","normalization":"array","example":"TA0002","description":"Threat tactic id."},{"field":"threat.tactic.name","type":"keyword","normalization":"array","example":"Execution","description":"Threat tactic."},{"field":"threat.tactic.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/tactics/TA0002/","description":"Threat tactic URL reference."},{"field":"threat.technique.id","type":"keyword","normalization":"array","example":"T1059","description":"Threat technique id."},{"field":"threat.technique.name","type":"keyword","normalization":"array","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.name.text","type":"match_only_text","normalization":"","example":"Command and Scripting Interpreter","description":"Threat technique name."},{"field":"threat.technique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/","description":"Threat technique URL reference."},{"field":"threat.technique.subtechnique.id","type":"keyword","normalization":"array","example":"T1059.001","description":"Threat subtechnique id."},{"field":"threat.technique.subtechnique.name","type":"keyword","normalization":"array","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.name.text","type":"match_only_text","normalization":"","example":"PowerShell","description":"Threat subtechnique name."},{"field":"threat.technique.subtechnique.reference","type":"keyword","normalization":"array","example":"https://attack.mitre.org/techniques/T1059/001/","description":"Threat subtechnique URL reference."},{"field":"tls.cipher","type":"keyword","normalization":"","example":"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256","description":"String indicating the cipher used during the current connection."},{"field":"tls.client.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the client."},{"field":"tls.client.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the client."},{"field":"tls.client.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client."},{"field":"tls.client.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Distinguished name of subject of the issuer of the x.509 certificate presented by the client."},{"field":"tls.client.ja3","type":"keyword","normalization":"","example":"d4e5b18d6b55c71272893221c96ba240","description":"A hash that identifies clients based on how they perform an SSL/TLS handshake."},{"field":"tls.client.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is no longer considered valid."},{"field":"tls.client.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Date/Time indicating when client certificate is first considered valid."},{"field":"tls.client.server_name","type":"keyword","normalization":"","example":"www.elastic.co","description":"Hostname the client is trying to connect to. Also called the SNI."},{"field":"tls.client.subject","type":"keyword","normalization":"","example":"CN=myclient, OU=Documentation Team, DC=example, DC=com","description":"Distinguished name of subject of the x.509 certificate presented by the client."},{"field":"tls.client.supported_ciphers","type":"keyword","normalization":"array","example":["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","..."],"description":"Array of ciphers offered by the client during the client hello."},{"field":"tls.client.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.client.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.client.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.client.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.client.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.client.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.client.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.client.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.client.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.client.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.client.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.client.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.client.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.client.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.client.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.client.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.client.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.client.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.client.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.client.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.client.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.client.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.curve","type":"keyword","normalization":"","example":"secp256r1","description":"String indicating the curve used for the given cipher, when applicable."},{"field":"tls.established","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel."},{"field":"tls.next_protocol","type":"keyword","normalization":"","example":"http/1.1","description":"String indicating the protocol being tunneled."},{"field":"tls.resumed","type":"boolean","normalization":"","example":"","description":"Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation."},{"field":"tls.server.certificate","type":"keyword","normalization":"","example":"MII...","description":"PEM-encoded stand-alone certificate offered by the server."},{"field":"tls.server.certificate_chain","type":"keyword","normalization":"array","example":["MII...","MII..."],"description":"Array of PEM-encoded certificates that make up the certificate chain offered by the server."},{"field":"tls.server.hash.md5","type":"keyword","normalization":"","example":"0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC","description":"Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha1","type":"keyword","normalization":"","example":"9E393D93138888D288266C2D915214D1D1CCEB2A","description":"Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.hash.sha256","type":"keyword","normalization":"","example":"0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0","description":"Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server."},{"field":"tls.server.issuer","type":"keyword","normalization":"","example":"CN=Example Root CA, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the issuer of the x.509 certificate presented by the server."},{"field":"tls.server.ja3s","type":"keyword","normalization":"","example":"394441ab65754e2207b1e1b457b3641d","description":"A hash that identifies servers based on how they perform an SSL/TLS handshake."},{"field":"tls.server.not_after","type":"date","normalization":"","example":"2021-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is no longer considered valid."},{"field":"tls.server.not_before","type":"date","normalization":"","example":"1970-01-01T00:00:00.000Z","description":"Timestamp indicating when server certificate is first considered valid."},{"field":"tls.server.subject","type":"keyword","normalization":"","example":"CN=www.example.com, OU=Infrastructure Team, DC=example, DC=com","description":"Subject of the x.509 certificate presented by the server."},{"field":"tls.server.x509.alternative_names","type":"keyword","normalization":"array","example":"*.elastic.co","description":"List of subject alternative names (SAN)."},{"field":"tls.server.x509.issuer.common_name","type":"keyword","normalization":"array","example":"Example SHA2 High Assurance Server CA","description":"List of common name (CN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) codes"},{"field":"tls.server.x509.issuer.distinguished_name","type":"keyword","normalization":"","example":"C=US, O=Example Inc, OU=www.example.com, CN=Example SHA2 High Assurance Server CA","description":"Distinguished name (DN) of issuing certificate authority."},{"field":"tls.server.x509.issuer.locality","type":"keyword","normalization":"array","example":"Mountain View","description":"List of locality names (L)"},{"field":"tls.server.x509.issuer.organization","type":"keyword","normalization":"array","example":"Example Inc","description":"List of organizations (O) of issuing certificate authority."},{"field":"tls.server.x509.issuer.organizational_unit","type":"keyword","normalization":"array","example":"www.example.com","description":"List of organizational units (OU) of issuing certificate authority."},{"field":"tls.server.x509.issuer.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.not_after","type":"date","normalization":"","example":"2020-07-16T03:15:39Z","description":"Time at which the certificate is no longer considered valid."},{"field":"tls.server.x509.not_before","type":"date","normalization":"","example":"2019-08-16T01:40:25Z","description":"Time at which the certificate is first considered valid."},{"field":"tls.server.x509.public_key_algorithm","type":"keyword","normalization":"","example":"RSA","description":"Algorithm used to generate the public key."},{"field":"tls.server.x509.public_key_curve","type":"keyword","normalization":"","example":"nistp521","description":"The curve used by the elliptic curve public key algorithm. This is algorithm specific."},{"field":"tls.server.x509.public_key_exponent","type":"long","normalization":"","example":65537,"description":"Exponent used to derive the public key. This is algorithm specific."},{"field":"tls.server.x509.public_key_size","type":"long","normalization":"","example":2048,"description":"The size of the public key space in bits."},{"field":"tls.server.x509.serial_number","type":"keyword","normalization":"","example":"55FBB9C7DEBF09809D12CCAA","description":"Unique serial number issued by the certificate authority."},{"field":"tls.server.x509.signature_algorithm","type":"keyword","normalization":"","example":"SHA256-RSA","description":"Identifier for certificate signature algorithm."},{"field":"tls.server.x509.subject.common_name","type":"keyword","normalization":"array","example":"shared.global.example.net","description":"List of common names (CN) of subject."},{"field":"tls.server.x509.subject.country","type":"keyword","normalization":"array","example":"US","description":"List of country \\(C) code"},{"field":"tls.server.x509.subject.distinguished_name","type":"keyword","normalization":"","example":"C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net","description":"Distinguished name (DN) of the certificate subject entity."},{"field":"tls.server.x509.subject.locality","type":"keyword","normalization":"array","example":"San Francisco","description":"List of locality names (L)"},{"field":"tls.server.x509.subject.organization","type":"keyword","normalization":"array","example":"Example, Inc.","description":"List of organizations (O) of subject."},{"field":"tls.server.x509.subject.organizational_unit","type":"keyword","normalization":"array","example":"","description":"List of organizational units (OU) of subject."},{"field":"tls.server.x509.subject.state_or_province","type":"keyword","normalization":"array","example":"California","description":"List of state or province names (ST, S, or P)"},{"field":"tls.server.x509.version_number","type":"keyword","normalization":"","example":3,"description":"Version of x509 format."},{"field":"tls.version","type":"keyword","normalization":"","example":1.2,"description":"Numeric part of the version parsed from the original string."},{"field":"tls.version_protocol","type":"keyword","normalization":"","example":"tls","description":"Normalized lowercase protocol name parsed from original string."},{"field":"trace.id","type":"keyword","normalization":"","example":"4bf92f3577b34da6a3ce929d0e0e4736","description":"Unique identifier of the trace."},{"field":"transaction.id","type":"keyword","normalization":"","example":"00f067aa0ba902b7","description":"Unique identifier of the transaction within the scope of its trace."},{"field":"url.domain","type":"keyword","normalization":"","example":"www.elastic.co","description":"Domain of the url."},{"field":"url.extension","type":"keyword","normalization":"","example":"png","description":"File extension from the request url, excluding the leading dot."},{"field":"url.fragment","type":"keyword","normalization":"","example":"","description":"Portion of the url after the `#`."},{"field":"url.full","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.full.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top","description":"Full unparsed URL."},{"field":"url.original","type":"wildcard","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.original.text","type":"match_only_text","normalization":"","example":"https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch","description":"Unmodified original url as seen in the event source."},{"field":"url.password","type":"keyword","normalization":"","example":"","description":"Password of the request."},{"field":"url.path","type":"wildcard","normalization":"","example":"","description":"Path of the request, such as \"/search\"."},{"field":"url.port","type":"long","normalization":"","example":443,"description":"Port of the request, such as 443."},{"field":"url.query","type":"keyword","normalization":"","example":"","description":"Query string of the request."},{"field":"url.registered_domain","type":"keyword","normalization":"","example":"example.com","description":"The highest registered url domain, stripped of the subdomain."},{"field":"url.scheme","type":"keyword","normalization":"","example":"https","description":"Scheme of the url."},{"field":"url.subdomain","type":"keyword","normalization":"","example":"east","description":"The subdomain of the domain."},{"field":"url.top_level_domain","type":"keyword","normalization":"","example":"co.uk","description":"The effective top level domain (com, org, net, co.uk)."},{"field":"url.username","type":"keyword","normalization":"","example":"","description":"Username of the request."},{"field":"user.changes.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.changes.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.changes.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.changes.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.changes.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.changes.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.changes.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.changes.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.changes.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.changes.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.effective.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.effective.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.effective.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.effective.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.effective.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.effective.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.effective.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.effective.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.effective.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.risk.calculated_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score","type":"float","normalization":"","example":880.73,"description":"A risk classification score calculated by an internal system as part of entity analytics and entity risk scoring."},{"field":"user.risk.calculated_score_norm","type":"float","normalization":"","example":88.73,"description":"A normalized risk score calculated by an internal system."},{"field":"user.risk.static_level","type":"keyword","normalization":"","example":"High","description":"A risk classification level obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score","type":"float","normalization":"","example":830,"description":"A risk classification score obtained from outside the system, such as from some external Threat Intelligence Platform."},{"field":"user.risk.static_score_norm","type":"float","normalization":"","example":83,"description":"A normalized risk score calculated by an external system."},{"field":"user.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user.target.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the user is a member of."},{"field":"user.target.email","type":"keyword","normalization":"","example":"","description":"User email address."},{"field":"user.target.full_name","type":"keyword","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.full_name.text","type":"match_only_text","normalization":"","example":"Albert Einstein","description":"User's full name, if available."},{"field":"user.target.group.domain","type":"keyword","normalization":"","example":"","description":"Name of the directory the group is a member of."},{"field":"user.target.group.id","type":"keyword","normalization":"","example":"","description":"Unique identifier for the group on the system/platform."},{"field":"user.target.group.name","type":"keyword","normalization":"","example":"","description":"Name of the group."},{"field":"user.target.hash","type":"keyword","normalization":"","example":"","description":"Unique user hash to correlate information for a user in anonymized form."},{"field":"user.target.id","type":"keyword","normalization":"","example":"S-1-5-21-202424912787-2692429404-2351956786-1000","description":"Unique identifier of the user."},{"field":"user.target.name","type":"keyword","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.name.text","type":"match_only_text","normalization":"","example":"a.einstein","description":"Short name or login of the user."},{"field":"user.target.roles","type":"keyword","normalization":"array","example":["kibana_admin","reporting_user"],"description":"Array of user roles at the time of the event."},{"field":"user_agent.device.name","type":"keyword","normalization":"","example":"iPhone","description":"Name of the device."},{"field":"user_agent.name","type":"keyword","normalization":"","example":"Safari","description":"Name of the user agent."},{"field":"user_agent.original","type":"keyword","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.original.text","type":"match_only_text","normalization":"","example":"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1","description":"Unparsed user_agent string."},{"field":"user_agent.os.family","type":"keyword","normalization":"","example":"debian","description":"OS family (such as redhat, debian, freebsd, windows)."},{"field":"user_agent.os.full","type":"keyword","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.full.text","type":"match_only_text","normalization":"","example":"Mac OS Mojave","description":"Operating system name, including the version or code name."},{"field":"user_agent.os.kernel","type":"keyword","normalization":"","example":"4.4.0-112-generic","description":"Operating system kernel version as a raw string."},{"field":"user_agent.os.name","type":"keyword","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.name.text","type":"match_only_text","normalization":"","example":"Mac OS X","description":"Operating system name, without the version."},{"field":"user_agent.os.platform","type":"keyword","normalization":"","example":"darwin","description":"Operating system platform (such centos, ubuntu, windows)."},{"field":"user_agent.os.type","type":"keyword","normalization":"","example":"macos","description":"Which commercial OS family (one of: linux, macos, unix, windows, ios or android)."},{"field":"user_agent.os.version","type":"keyword","normalization":"","example":"10.14.1","description":"Operating system version as a raw string."},{"field":"user_agent.version","type":"keyword","normalization":"","example":12,"description":"Version of the user agent."},{"field":"vulnerability.category","type":"keyword","normalization":"array","example":["Firewall"],"description":"Category of a vulnerability."},{"field":"vulnerability.classification","type":"keyword","normalization":"","example":"CVSS","description":"Classification of the vulnerability."},{"field":"vulnerability.description","type":"keyword","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.description.text","type":"match_only_text","normalization":"","example":"In macOS before 2.12.6, there is a vulnerability in the RPC...","description":"Description of the vulnerability."},{"field":"vulnerability.enumeration","type":"keyword","normalization":"","example":"CVE","description":"Identifier of the vulnerability."},{"field":"vulnerability.id","type":"keyword","normalization":"","example":"CVE-2019-00001","description":"ID of the vulnerability."},{"field":"vulnerability.reference","type":"keyword","normalization":"","example":"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6111","description":"Reference of the vulnerability."},{"field":"vulnerability.report_id","type":"keyword","normalization":"","example":20191018.0001,"description":"Scan identification number."},{"field":"vulnerability.scanner.vendor","type":"keyword","normalization":"","example":"Tenable","description":"Name of the scanner vendor."},{"field":"vulnerability.score.base","type":"float","normalization":"","example":5.5,"description":"Vulnerability Base score."},{"field":"vulnerability.score.environmental","type":"float","normalization":"","example":5.5,"description":"Vulnerability Environmental score."},{"field":"vulnerability.score.temporal","type":"float","normalization":"","example":"","description":"Vulnerability Temporal score."},{"field":"vulnerability.score.version","type":"keyword","normalization":"","example":2,"description":"CVSS version."},{"field":"vulnerability.severity","type":"keyword","normalization":"","example":"Critical","description":"Severity of the vulnerability."}] \ No newline at end of file diff --git a/x-pack/plugins/osquery/public/live_queries/form/index.tsx b/x-pack/plugins/osquery/public/live_queries/form/index.tsx index b870d1385752f..aa3a1bd336607 100644 --- a/x-pack/plugins/osquery/public/live_queries/form/index.tsx +++ b/x-pack/plugins/osquery/public/live_queries/form/index.tsx @@ -29,6 +29,7 @@ import { savedQueryDataSerializer } from '../../saved_queries/form/use_saved_que import { PackFieldWrapper } from '../../shared_components/osquery_response_action_type/pack_field_wrapper'; export interface LiveQueryFormFields { + alertIds?: string[]; query?: string; agentSelection: AgentSelection; savedQueryId?: string | null; @@ -39,6 +40,7 @@ export interface LiveQueryFormFields { interface DefaultLiveQueryFormFields { query?: string; agentSelection?: AgentSelection; + alertIds?: string[]; savedQueryId?: string | null; ecs_mapping?: ECSMapping; packId?: string; @@ -119,6 +121,7 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ useEffect(() => { register('savedQueryId'); + register('alertIds'); }, [register]); const queryStatus = useMemo(() => { @@ -135,19 +138,20 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ ); const onSubmit = useCallback( - (values: LiveQueryFormFields) => { + async (values: LiveQueryFormFields) => { const serializedData = pickBy( { agentSelection: values.agentSelection, saved_query_id: values.savedQueryId, query: values.query, + alert_ids: values.alertIds, pack_id: values?.packId?.length ? values?.packId[0] : undefined, ecs_mapping: values.ecs_mapping, }, (value) => !isEmpty(value) ) as unknown as LiveQueryFormFields; - mutateAsync(serializedData); + await mutateAsync(serializedData); }, [mutateAsync] ); @@ -159,8 +163,6 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ const { data: packsData, isFetched: isPackDataFetched } = usePacks({}); - const handleSubmitForm = useMemo(() => handleSubmit(onSubmit), [handleSubmit, onSubmit]); - const submitButtonContent = useMemo( () => ( <EuiFlexItem> @@ -181,8 +183,9 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ <EuiFlexItem grow={false}> <EuiButton id="submit-button" - disabled={!enabled || isSubmitting} - onClick={handleSubmitForm} + disabled={!enabled} + isLoading={isSubmitting} + onClick={handleSubmit(onSubmit)} > <FormattedMessage id="xpack.osquery.liveQueryForm.form.submitButtonLabel" @@ -201,7 +204,8 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ handleShowSaveQueryFlyout, enabled, isSubmitting, - handleSubmitForm, + handleSubmit, + onSubmit, ] ); @@ -256,6 +260,10 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ setValue('agentSelection', defaultValue.agentSelection); } + if (defaultValue?.alertIds?.length) { + setValue('alertIds', defaultValue.alertIds); + } + if (defaultValue?.packId && canRunPacks) { setQueryType('pack'); @@ -297,6 +305,7 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ resetField('query'); resetField('ecs_mapping'); resetField('savedQueryId'); + resetField('alertIds'); clearErrors(); } }, [queryType, cleanupLiveQuery, resetField, setValue, clearErrors, defaultValue]); @@ -329,7 +338,7 @@ const LiveQueryFormComponent: React.FC<LiveQueryFormProps> = ({ ) : ( <> <EuiFlexItem> - <LiveQueryQueryField handleSubmitForm={handleSubmitForm} /> + <LiveQueryQueryField handleSubmitForm={handleSubmit(onSubmit)} /> </EuiFlexItem> {submitButtonContent} <EuiFlexItem>{resultsStepContent}</EuiFlexItem> diff --git a/x-pack/plugins/osquery/public/live_queries/index.tsx b/x-pack/plugins/osquery/public/live_queries/index.tsx index cdb0dccd1a2eb..67b6194065c81 100644 --- a/x-pack/plugins/osquery/public/live_queries/index.tsx +++ b/x-pack/plugins/osquery/public/live_queries/index.tsx @@ -21,6 +21,7 @@ import type { AgentSelection } from '../agents/types'; interface LiveQueryProps { agentId?: string; agentIds?: string[]; + alertIds?: string[]; agentPolicyIds?: string[]; onSuccess?: () => void; query?: string; @@ -40,6 +41,7 @@ interface LiveQueryProps { const LiveQueryComponent: React.FC<LiveQueryProps> = ({ agentId, agentIds, + alertIds, agentPolicyIds, onSuccess, query, @@ -77,6 +79,7 @@ const LiveQueryComponent: React.FC<LiveQueryProps> = ({ const defaultValue = useMemo(() => { const initialValue = { ...(initialAgentSelection ? { agentSelection: initialAgentSelection } : {}), + alertIds, query, savedQueryId, ecs_mapping, @@ -84,7 +87,7 @@ const LiveQueryComponent: React.FC<LiveQueryProps> = ({ }; return !isEmpty(pickBy(initialValue, (value) => !isEmpty(value))) ? initialValue : undefined; - }, [ecs_mapping, initialAgentSelection, packId, query, savedQueryId]); + }, [alertIds, ecs_mapping, initialAgentSelection, packId, query, savedQueryId]); if (isLoading) { return <EuiLoadingContent lines={10} />; diff --git a/x-pack/plugins/osquery/public/packs/packs_table.tsx b/x-pack/plugins/osquery/public/packs/packs_table.tsx index 5e3e58dc7b4a4..69cfb3e40ef2e 100644 --- a/x-pack/plugins/osquery/public/packs/packs_table.tsx +++ b/x-pack/plugins/osquery/public/packs/packs_table.tsx @@ -126,9 +126,20 @@ const PacksTableComponent = () => { ); const renderPlayAction = useCallback( - (item, enabled) => ( - <EuiButtonIcon iconType="play" onClick={handlePlayClick(item)} isDisabled={!enabled} /> - ), + (item, enabled) => { + const playText = i18n.translate('xpack.osquery.packs.table.runActionAriaLabel', { + defaultMessage: 'Run {packName}', + values: { + packName: item.attributes.name, + }, + }); + + return ( + <EuiToolTip position="top" content={playText}> + <EuiButtonIcon iconType="play" onClick={handlePlayClick(item)} isDisabled={!enabled} /> + </EuiToolTip> + ); + }, [handlePlayClick] ); diff --git a/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx b/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx index 259c131e48ca1..d8cc8f93e56ed 100644 --- a/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx +++ b/x-pack/plugins/osquery/public/packs/queries/ecs_mapping_editor_field.tsx @@ -49,7 +49,7 @@ import { convertECSMappingToArray, convertECSMappingToObject, } from '../../../common/schemas/common/utils'; -import ECSSchema from '../../common/schemas/ecs/v8.4.0.json'; +import ECSSchema from '../../common/schemas/ecs/v8.5.0.json'; import osquerySchema from '../../common/schemas/osquery/v5.4.0.json'; import { FieldIcon } from '../../common/lib/kibana'; @@ -728,19 +728,13 @@ interface OsqueryColumn { export const ECSMappingEditorField = React.memo(({ euiFieldProps }: ECSMappingEditorFieldProps) => { const { - setError, - clearErrors, watch: watchRoot, register: registerRoot, setValue: setValueRoot, formState: { errors: errorsRoot }, } = useFormContext<{ query: string; ecs_mapping: ECSMapping }>(); - useEffect(() => { - registerRoot('ecs_mapping'); - }, [registerRoot]); - - const [query, ecsMapping] = watchRoot(['query', 'ecs_mapping'], { ecs_mapping: {} }); + const [query, ecsMapping] = watchRoot(['query', 'ecs_mapping']); const { control, trigger, watch, formState, resetField, getFieldState } = useForm<{ ecsMappingArray: ECSMappingArray; }>({ @@ -761,6 +755,16 @@ export const ECSMappingEditorField = React.memo(({ euiFieldProps }: ECSMappingEd const ecsMappingArrayState = getFieldState('ecsMappingArray', formState); const [osquerySchemaOptions, setOsquerySchemaOptions] = useState<OsquerySchemaOption[]>([]); + useEffect(() => { + registerRoot('ecs_mapping', { + validate: () => { + const nonEmptyErrors = reject(ecsMappingArrayState.error, isEmpty) as InternalFieldErrors[]; + + return !nonEmptyErrors.length; + }, + }); + }, [ecsMappingArrayState.error, errorsRoot, registerRoot]); + useEffect(() => { const subscription = watchRoot((data, payload) => { if (payload.name === 'ecs_mapping') { @@ -1019,10 +1023,16 @@ export const ECSMappingEditorField = React.memo(({ euiFieldProps }: ECSMappingEd orderBy(suggestions, ['value.suggestion_label', 'value.tableOrder'], ['asc', 'desc']), 'label' ); - setOsquerySchemaOptions((prevValue) => - !deepEqual(prevValue, newOptions) ? newOptions : prevValue - ); - }, [query]); + setOsquerySchemaOptions((prevValue) => { + if (!deepEqual(prevValue, newOptions)) { + trigger(); + + return newOptions; + } + + return prevValue; + }); + }, [query, trigger]); useEffect(() => { const parsedMapping = convertECSMappingToObject(formValue.ecsMappingArray); @@ -1033,27 +1043,6 @@ export const ECSMappingEditorField = React.memo(({ euiFieldProps }: ECSMappingEd } }, [setValueRoot, formValue, ecsMappingArrayState.isDirty, ecsMapping]); - useEffect(() => { - if (!formState.isValid) { - const nonEmptyErrors = reject(ecsMappingArrayState.error, isEmpty) as InternalFieldErrors[]; - if (nonEmptyErrors.length) { - setError('ecs_mapping', { - type: nonEmptyErrors[0].key?.type ?? 'custom', - message: nonEmptyErrors[0].key?.message ?? '', - }); - } - } else { - clearErrors('ecs_mapping'); - } - }, [ - errorsRoot, - clearErrors, - formState.isValid, - formState.errors, - setError, - ecsMappingArrayState.error, - ]); - return ( <> <EuiFlexGroup> diff --git a/x-pack/plugins/osquery/public/packs/queries/query_flyout.tsx b/x-pack/plugins/osquery/public/packs/queries/query_flyout.tsx index 65d829e7b7e82..1d6b52fcf2802 100644 --- a/x-pack/plugins/osquery/public/packs/queries/query_flyout.tsx +++ b/x-pack/plugins/osquery/public/packs/queries/query_flyout.tsx @@ -62,9 +62,9 @@ const QueryFlyoutComponent: React.FC<QueryFlyoutProps> = ({ formState: { isSubmitting }, resetField, } = hooksForm; - const onSubmit = (payload: PackQueryFormData) => { + const onSubmit = async (payload: PackQueryFormData) => { const serializedData: PackSOQueryFormData = serializer(payload); - onSave(serializedData); + await onSave(serializedData); onClose(); }; diff --git a/x-pack/plugins/osquery/public/routes/saved_queries/edit/form.tsx b/x-pack/plugins/osquery/public/routes/saved_queries/edit/form.tsx index 1b24b4a71eeb5..ef945b92a0af2 100644 --- a/x-pack/plugins/osquery/public/routes/saved_queries/edit/form.tsx +++ b/x-pack/plugins/osquery/public/routes/saved_queries/edit/form.tsx @@ -49,10 +49,10 @@ const EditSavedQueryFormComponent: React.FC<EditSavedQueryFormProps> = ({ formState: { isSubmitting }, } = hooksForm; - const onSubmit = (payload: SavedQueryFormData) => { + const onSubmit = async (payload: SavedQueryFormData) => { const serializedData = serializer(payload); try { - handleSubmit(serializedData); + await handleSubmit(serializedData); // eslint-disable-next-line no-empty } catch (e) {} }; diff --git a/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx b/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx index f142c653656aa..276f2f2598d1e 100644 --- a/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx +++ b/x-pack/plugins/osquery/public/routes/saved_queries/list/index.tsx @@ -61,19 +61,27 @@ const PlayButtonComponent: React.FC<PlayButtonProps> = ({ disabled = false, save [push, savedQuery] ); - return ( - <EuiButtonIcon - color="primary" - iconType="play" - isDisabled={disabled} - onClick={handlePlayClick} - aria-label={i18n.translate('xpack.osquery.savedQueryList.queriesTable.runActionAriaLabel', { + const playText = useMemo( + () => + i18n.translate('xpack.osquery.savedQueryList.queriesTable.runActionAriaLabel', { defaultMessage: 'Run {savedQueryName}', values: { - savedQueryName: savedQuery.attributes.name, + savedQueryName: savedQuery.attributes.id, }, - })} - /> + }), + [savedQuery] + ); + + return ( + <EuiToolTip position="top" content={playText}> + <EuiButtonIcon + color="primary" + iconType="play" + isDisabled={disabled} + onClick={handlePlayClick} + aria-label={playText} + /> + </EuiToolTip> ); }; @@ -92,19 +100,27 @@ const EditButtonComponent: React.FC<EditButtonProps> = ({ }) => { const buttonProps = useRouterNavigate(`saved_queries/${savedQueryId}`); - return ( - <EuiButtonIcon - color="primary" - {...buttonProps} - iconType="pencil" - isDisabled={disabled} - aria-label={i18n.translate('xpack.osquery.savedQueryList.queriesTable.editActionAriaLabel', { + const editText = useMemo( + () => + i18n.translate('xpack.osquery.savedQueryList.queriesTable.editActionAriaLabel', { defaultMessage: 'Edit {savedQueryName}', values: { savedQueryName, }, - })} - /> + }), + [savedQueryName] + ); + + return ( + <EuiToolTip position="top" content={editText}> + <EuiButtonIcon + color="primary" + {...buttonProps} + iconType="pencil" + isDisabled={disabled} + aria-label={editText} + /> + </EuiToolTip> ); }; @@ -124,7 +140,7 @@ const SavedQueriesPageComponent = () => { const renderEditAction = useCallback( (item: SavedQuerySO) => ( - <EditButton savedQueryId={item.id} savedQueryName={item.attributes.name} /> + <EditButton savedQueryId={item.id} savedQueryName={item.attributes.id} /> ), [] ); diff --git a/x-pack/plugins/osquery/public/routes/saved_queries/new/form.tsx b/x-pack/plugins/osquery/public/routes/saved_queries/new/form.tsx index 350c35b2b3fa5..6763b5a1c73c4 100644 --- a/x-pack/plugins/osquery/public/routes/saved_queries/new/form.tsx +++ b/x-pack/plugins/osquery/public/routes/saved_queries/new/form.tsx @@ -47,9 +47,9 @@ const NewSavedQueryFormComponent: React.FC<NewSavedQueryFormProps> = ({ formState: { isSubmitting, errors }, } = hooksForm; - const onSubmit = (payload: SavedQueryFormData) => { + const onSubmit = async (payload: SavedQueryFormData) => { const serializedData = serializer(payload); - handleSubmit(serializedData); + await handleSubmit(serializedData); }; return ( diff --git a/x-pack/plugins/osquery/scripts/roles_users/t1_analyst/role.json b/x-pack/plugins/osquery/scripts/roles_users/t1_analyst/role.json index 12d5c2607f9ab..5087ba9005a3c 100644 --- a/x-pack/plugins/osquery/scripts/roles_users/t1_analyst/role.json +++ b/x-pack/plugins/osquery/scripts/roles_users/t1_analyst/role.json @@ -1,6 +1,15 @@ { "elasticsearch": { + "cluster": ["manage"], "indices": [ + { + "names": [".items-*", ".lists-*", ".alerts-security.alerts-*", ".siem-signals-*"], + "privileges": ["manage", "read", "write", "view_index_metadata", "maintenance"] + }, + { + "names": ["*"], + "privileges": ["read"] + }, { "names": ["logs-osquery_manager*"], "privileges": ["read"] @@ -10,6 +19,7 @@ "kibana": [ { "feature": { + "siem": ["all"], "osquery": ["read", "run_saved_queries" ] }, "spaces": ["*"] diff --git a/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts b/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts index 27d8a0eecd17c..553c4e9de10fd 100644 --- a/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts +++ b/x-pack/plugins/osquery/scripts/schema_formatter/ecs_formatter.ts @@ -40,7 +40,7 @@ const RESTRICTED_FIELDS = [ run( async ({ flags }) => { - const schemaPath = path.resolve(`../../public/common/schemas/ecs/`); + const schemaPath = path.resolve(`./public/common/schemas/ecs/`); const schemaFile = path.join(schemaPath, flags.schema_version as string); const schemaData = await require(schemaFile); diff --git a/x-pack/plugins/osquery/server/lib/osquery_app_context_services.ts b/x-pack/plugins/osquery/server/lib/osquery_app_context_services.ts index 8350355816459..19b5b13495718 100644 --- a/x-pack/plugins/osquery/server/lib/osquery_app_context_services.ts +++ b/x-pack/plugins/osquery/server/lib/osquery_app_context_services.ts @@ -14,6 +14,7 @@ import type { AgentPolicyServiceInterface, PackagePolicyClient, } from '@kbn/fleet-plugin/server'; +import type { RuleRegistryPluginStartContract } from '@kbn/rule-registry-plugin/server'; import type { ConfigType } from '../../common/config'; import type { TelemetryEventsSender } from './telemetry/sender'; @@ -26,6 +27,7 @@ export type OsqueryAppContextServiceStartContract = Partial< logger: Logger; config: ConfigType; registerIngestCallback?: FleetStartContract['registerExternalCallback']; + ruleRegistryService?: RuleRegistryPluginStartContract; }; /** @@ -37,12 +39,14 @@ export class OsqueryAppContextService { private packageService: PackageService | undefined; private packagePolicyService: PackagePolicyClient | undefined; private agentPolicyService: AgentPolicyServiceInterface | undefined; + private ruleRegistryService: RuleRegistryPluginStartContract | undefined; public start(dependencies: OsqueryAppContextServiceStartContract) { this.agentService = dependencies.agentService; this.packageService = dependencies.packageService; this.packagePolicyService = dependencies.packagePolicyService; this.agentPolicyService = dependencies.agentPolicyService; + this.ruleRegistryService = dependencies.ruleRegistryService; } // eslint-disable-next-line @typescript-eslint/no-empty-function @@ -63,6 +67,10 @@ export class OsqueryAppContextService { public getAgentPolicyService(): AgentPolicyServiceInterface | undefined { return this.agentPolicyService; } + + public getRuleRegistryService(): RuleRegistryPluginStartContract | undefined { + return this.ruleRegistryService; + } } /** diff --git a/x-pack/plugins/osquery/server/plugin.ts b/x-pack/plugins/osquery/server/plugin.ts index 655de66243416..601e0e29a3a83 100644 --- a/x-pack/plugins/osquery/server/plugin.ts +++ b/x-pack/plugins/osquery/server/plugin.ts @@ -100,6 +100,7 @@ export class OsqueryPlugin implements Plugin<OsqueryPluginSetup, OsqueryPluginSt this.osqueryAppContextService.start({ ...plugins.fleet, + ruleRegistryService: plugins.ruleRegistry, // @ts-expect-error update types // eslint-disable-next-line @typescript-eslint/no-non-null-assertion config: this.config!, diff --git a/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts b/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts index 53d13a8274033..061eb6f7d2928 100644 --- a/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts +++ b/x-pack/plugins/osquery/server/routes/live_query/create_live_query_route.ts @@ -6,12 +6,18 @@ */ import type { IRouter } from '@kbn/core/server'; +import unified from 'unified'; +import markdown from 'remark-parse'; +import { some, filter } from 'lodash'; +import deepEqual from 'fast-deep-equal'; +import type { ECSMappingOrUndefined } from '@kbn/osquery-io-ts-types'; import { createLiveQueryRequestBodySchema } from '../../../common/schemas/routes/live_query'; import type { CreateLiveQueryRequestBodySchema } from '../../../common/schemas/routes/live_query'; import { buildRouteValidation } from '../../utils/build_validation/route_validation'; import type { OsqueryAppContext } from '../../lib/osquery_app_context_services'; import { createActionHandler } from '../../handlers'; +import { parser as OsqueryParser } from './osquery_parser'; export const createLiveQueryRoute = (router: IRouter, osqueryContext: OsqueryAppContext) => { router.post( @@ -37,7 +43,41 @@ export const createLiveQueryRoute = (router: IRouter, osqueryContext: OsqueryApp ); if (isInvalid) { - return response.forbidden(); + if (request.body.alert_ids?.length) { + try { + const client = await osqueryContext.service + .getRuleRegistryService() + ?.getRacClientWithRequest(request); + + const alertData = await client?.get({ id: request.body.alert_ids[0] }); + + if (alertData?.['kibana.alert.rule.note']) { + const parsedAlertInvestigationGuide = unified() + .use([[markdown, {}], OsqueryParser]) + .parse(alertData?.['kibana.alert.rule.note']); + + const osqueryQueries = filter(parsedAlertInvestigationGuide?.children as object, [ + 'type', + 'osquery', + ]); + + const requestQueryExistsInTheInvestigationGuide = some( + osqueryQueries, + (payload: { + configuration: { query: string; ecs_mapping: ECSMappingOrUndefined }; + }) => + payload?.configuration?.query === request.body.query && + deepEqual(payload?.configuration?.ecs_mapping, request.body.ecs_mapping) + ); + + if (!requestQueryExistsInTheInvestigationGuide) throw new Error(); + } + } catch (error) { + return response.forbidden(); + } + } else { + return response.forbidden(); + } } try { diff --git a/x-pack/plugins/osquery/server/routes/live_query/osquery_parser.ts b/x-pack/plugins/osquery/server/routes/live_query/osquery_parser.ts new file mode 100644 index 0000000000000..afc51949f3c70 --- /dev/null +++ b/x-pack/plugins/osquery/server/routes/live_query/osquery_parser.ts @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { RemarkTokenizer } from '@elastic/eui'; +import type { Plugin } from 'unified'; + +export const parser: Plugin = function () { + const Parser = this.Parser; + const tokenizers = Parser.prototype.blockTokenizers; + const methods = Parser.prototype.blockMethods; + + const tokenizeOsquery: RemarkTokenizer = function (eat, value, silent) { + if (value.startsWith('!{osquery') === false) return false; + + const nextChar = value[9]; + + if (nextChar !== '{' && nextChar !== '}') return false; // this isn't actually a osquery + + if (silent) { + return true; + } + + // is there a configuration? + const hasConfiguration = nextChar === '{'; + + let match = '!{osquery'; + let configuration = {}; + + if (hasConfiguration) { + let configurationString = ''; + + let openObjects = 0; + + for (let i = 9; i < value.length; i++) { + const char = value[i]; + if (char === '{') { + openObjects++; + configurationString += char; + } else if (char === '}') { + openObjects--; + if (openObjects === -1) { + break; + } + + configurationString += char; + } else { + configurationString += char; + } + } + + match += configurationString; + try { + configuration = JSON.parse(configurationString); + } catch (e) { + const now = eat.now(); + this.file.fail(`Unable to parse osquery JSON configuration: ${e}`, { + line: now.line, + column: now.column + 9, + }); + } + } + + match += '}'; + + return eat(match)({ + type: 'osquery', + configuration, + }); + }; + + tokenizers.osquery = tokenizeOsquery; + methods.splice(methods.indexOf('text'), 0, 'osquery'); +}; diff --git a/x-pack/plugins/osquery/server/types.ts b/x-pack/plugins/osquery/server/types.ts index 162ce9e7095d9..ef0bdacf0dfd2 100644 --- a/x-pack/plugins/osquery/server/types.ts +++ b/x-pack/plugins/osquery/server/types.ts @@ -20,6 +20,7 @@ import type { TaskManagerStartContract as TaskManagerPluginStart, } from '@kbn/task-manager-plugin/server'; import type { PluginStart as DataViewsPluginStart } from '@kbn/data-views-plugin/server'; +import type { RuleRegistryPluginStartContract } from '@kbn/rule-registry-plugin/server'; import type { CreateLiveQueryRequestBodySchema } from '../common/schemas/routes/live_query'; export interface OsqueryPluginSetup { @@ -46,4 +47,5 @@ export interface StartPlugins { fleet?: FleetStartContract; taskManager?: TaskManagerPluginStart; telemetry?: TelemetryPluginStart; + ruleRegistry?: RuleRegistryPluginStartContract; } diff --git a/x-pack/plugins/security_solution/public/common/components/markdown_editor/plugins/osquery/index.tsx b/x-pack/plugins/security_solution/public/common/components/markdown_editor/plugins/osquery/index.tsx index 0d0143eab2e32..3d046e349de31 100644 --- a/x-pack/plugins/security_solution/public/common/components/markdown_editor/plugins/osquery/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/markdown_editor/plugins/osquery/index.tsx @@ -261,7 +261,7 @@ const RunOsqueryButtonRenderer = ({ }; }) => { const [showFlyout, setShowFlyout] = useState(false); - const { agentId } = useContext(BasicAlertDataContext); + const { agentId, alertId } = useContext(BasicAlertDataContext); const handleOpen = useCallback(() => setShowFlyout(true), [setShowFlyout]); @@ -278,6 +278,7 @@ const RunOsqueryButtonRenderer = ({ {showFlyout && ( <OsqueryFlyout defaultValues={{ + ...(alertId ? { alertIds: [alertId] } : {}), query: configuration.query, ecs_mapping: configuration.ecs_mapping, queryField: false, diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx index 0127fe63efea7..3759178c163b3 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx @@ -72,6 +72,8 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux const onMenuItemClick = useCallback(() => { setPopover(false); }, []); + + const alertId = ecsRowData?.kibana?.alert ? ecsRowData?._id : null; const ruleId = get(0, ecsRowData?.kibana?.alert?.rule?.uuid); const ruleName = get(0, ecsRowData?.kibana?.alert?.rule?.name); @@ -264,7 +266,11 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux <EventFiltersFlyout data={ecsRowData} onCancel={closeAddEventFilterModal} /> )} {isOsqueryFlyoutOpen && agentId && ecsRowData != null && ( - <OsqueryFlyout agentId={agentId} onClose={handleOnOsqueryClick} /> + <OsqueryFlyout + agentId={agentId} + defaultValues={alertId ? { alertIds: [alertId] } : undefined} + onClose={handleOnOsqueryClick} + /> )} </> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/footer.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/footer.tsx index d768f8aa94645..5c0e1cd813ed1 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/footer.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/footer.tsx @@ -63,6 +63,7 @@ export const FlyoutFooterComponent = React.memo( timelineQuery, refetchFlyoutData, }: FlyoutFooterProps & PropsFromRedux) => { + const alertId = detailsEcsData?.kibana?.alert ? detailsEcsData?._id : null; const ruleIndex = useMemo( () => find({ category: 'signal', field: 'signal.rule.index' }, detailsData)?.values ?? @@ -173,7 +174,11 @@ export const FlyoutFooterComponent = React.memo( /> )} {isOsqueryFlyoutOpenWithAgentId && detailsEcsData != null && ( - <OsqueryFlyout agentId={isOsqueryFlyoutOpenWithAgentId} onClose={closeOsqueryFlyout} /> + <OsqueryFlyout + agentId={isOsqueryFlyoutOpenWithAgentId} + defaultValues={alertId ? { alertIds: [alertId] } : undefined} + onClose={closeOsqueryFlyout} + /> )} </> ); From b3a749e55a55f5ab1df4d236916dc270209e83fe Mon Sep 17 00:00:00 2001 From: Justin Kambic <jk@elastic.co> Date: Mon, 3 Oct 2022 21:10:38 -0400 Subject: [PATCH 44/51] [Synthetics UI] Serialize errors before sending to redux store to prevent warnings (#142259) * Serialize errors before sending to redux store to prevent warnings. * Serialize response errors in monitor list effect. --- .../public/apps/synthetics/state/index_status/actions.ts | 5 +++-- .../public/apps/synthetics/state/index_status/index.ts | 4 ++-- .../apps/synthetics/state/monitor_details/index.ts | 7 +++---- .../public/apps/synthetics/state/monitor_list/actions.ts | 9 +++++---- .../public/apps/synthetics/state/monitor_list/effects.ts | 4 ++-- .../public/apps/synthetics/state/monitor_list/index.ts | 4 ++-- .../public/apps/synthetics/state/overview/index.ts | 6 +++--- .../apps/synthetics/state/service_locations/actions.ts | 5 ++++- .../apps/synthetics/state/service_locations/index.ts | 3 ++- .../synthetics/state/synthetics_enablement/actions.ts | 7 ++++--- .../apps/synthetics/state/synthetics_enablement/index.ts | 3 ++- .../public/apps/synthetics/state/utils/actions.ts | 4 ++-- .../public/apps/synthetics/state/utils/fetch_effect.ts | 7 ++++--- .../legacy_uptime/state/private_locations/index.ts | 6 +++--- 14 files changed, 41 insertions(+), 33 deletions(-) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/actions.ts index 36e2e2514910e..e522af3bfed7c 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/actions.ts @@ -5,10 +5,11 @@ * 2.0. */ -import type { IHttpFetchError } from '@kbn/core-http-browser'; import { createAction } from '@reduxjs/toolkit'; import { StatesIndexStatus } from '../../../../../common/runtime_types'; +import { IHttpSerializedFetchError } from '../utils/http_error'; export const getIndexStatus = createAction<void>('[INDEX STATUS] GET'); export const getIndexStatusSuccess = createAction<StatesIndexStatus>('[INDEX STATUS] GET SUCCESS'); -export const getIndexStatusFail = createAction<IHttpFetchError>('[INDEX STATUS] GET FAIL'); +export const getIndexStatusFail = + createAction<IHttpSerializedFetchError>('[INDEX STATUS] GET FAIL'); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/index.ts index f5351c65d0d6b..19ef8f94938a3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/index_status/index.ts @@ -6,7 +6,7 @@ */ import { createReducer } from '@reduxjs/toolkit'; -import { IHttpSerializedFetchError, serializeHttpFetchError } from '../utils/http_error'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { StatesIndexStatus } from '../../../../../common/runtime_types'; import { getIndexStatus, getIndexStatusSuccess, getIndexStatusFail } from './actions'; @@ -33,7 +33,7 @@ export const indexStatusReducer = createReducer(initialState, (builder) => { state.loading = false; }) .addCase(getIndexStatusFail, (state, action) => { - state.error = serializeHttpFetchError(action.payload); + state.error = action.payload; state.loading = false; }); }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts index a2d9379df778e..b1fb95d5d5ee4 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts @@ -5,9 +5,8 @@ * 2.0. */ -import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { createReducer } from '@reduxjs/toolkit'; -import { IHttpSerializedFetchError, serializeHttpFetchError } from '../utils/http_error'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { getMonitorRecentPingsAction, setMonitorDetailsLocationAction, @@ -47,7 +46,7 @@ export const monitorDetailsReducer = createReducer(initialState, (builder) => { state.loading = false; }) .addCase(getMonitorRecentPingsAction.fail, (state, action) => { - state.error = serializeHttpFetchError(action.payload as IHttpFetchError<ResponseErrorBody>); + state.error = action.payload; state.loading = false; }) @@ -59,7 +58,7 @@ export const monitorDetailsReducer = createReducer(initialState, (builder) => { state.syntheticsMonitorLoading = false; }) .addCase(getMonitorAction.fail, (state, action) => { - state.error = serializeHttpFetchError(action.payload as IHttpFetchError<ResponseErrorBody>); + state.error = action.payload; state.syntheticsMonitorLoading = false; }); }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/actions.ts index fcfc3d4f22cf7..5a8c38284e034 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/actions.ts @@ -5,13 +5,13 @@ * 2.0. */ -import { IHttpFetchError } from '@kbn/core-http-browser'; import { createAction } from '@reduxjs/toolkit'; import { EncryptedSyntheticsMonitor, MonitorManagementListResult, } from '../../../../../common/runtime_types'; import { createAsyncAction } from '../utils/actions'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { MonitorListPageState } from './models'; @@ -29,7 +29,8 @@ export const fetchUpsertSuccessAction = createAction<{ id: string; attributes: { enabled: boolean }; }>('fetchUpsertMonitorSuccess'); -export const fetchUpsertFailureAction = createAction<{ id: string; error: IHttpFetchError }>( - 'fetchUpsertMonitorFailure' -); +export const fetchUpsertFailureAction = createAction<{ + id: string; + error: IHttpSerializedFetchError; +}>('fetchUpsertMonitorFailure'); export const clearMonitorUpsertStatus = createAction<string>('clearMonitorUpsertStatus'); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts index 0dee2edfd7903..67aaa4ec982ed 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/effects.ts @@ -5,10 +5,10 @@ * 2.0. */ -import { IHttpFetchError } from '@kbn/core-http-browser'; import { PayloadAction } from '@reduxjs/toolkit'; import { call, put, takeEvery, takeLeading } from 'redux-saga/effects'; import { fetchEffectFactory } from '../utils/fetch_effect'; +import { serializeHttpFetchError } from '../utils/http_error'; import { fetchMonitorListAction, fetchUpsertFailureAction, @@ -40,7 +40,7 @@ export function* upsertMonitorEffect() { ); } catch (error) { yield put( - fetchUpsertFailureAction({ id: action.payload.id, error: error as IHttpFetchError }) + fetchUpsertFailureAction({ id: action.payload.id, error: serializeHttpFetchError(error) }) ); } } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts index e1f564c0d0a3f..997f853c9bfc5 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/index.ts @@ -10,7 +10,7 @@ import { FETCH_STATUS } from '@kbn/observability-plugin/public'; import { ConfigKey, MonitorManagementListResult } from '../../../../../common/runtime_types'; -import { IHttpSerializedFetchError, serializeHttpFetchError } from '../utils/http_error'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { MonitorListPageState } from './models'; import { @@ -58,7 +58,7 @@ export const monitorListReducer = createReducer(initialState, (builder) => { }) .addCase(fetchMonitorListAction.fail, (state, action) => { state.loading = false; - state.error = serializeHttpFetchError(action.payload); + state.error = action.payload; }) .addCase(fetchUpsertMonitorAction, (state, action) => { state.monitorUpsertStatuses[action.payload.id] = { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts index 49159b29ef461..aa4a8db73b98c 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/overview/index.ts @@ -9,7 +9,7 @@ import { createReducer } from '@reduxjs/toolkit'; import { MonitorOverviewResult, OverviewStatus } from '../../../../../common/runtime_types'; -import { IHttpSerializedFetchError, serializeHttpFetchError } from '../utils/http_error'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { MonitorOverviewPageState } from './models'; import { @@ -60,13 +60,13 @@ export const monitorOverviewReducer = createReducer(initialState, (builder) => { }) .addCase(fetchMonitorOverviewAction.fail, (state, action) => { state.loading = false; - state.error = serializeHttpFetchError(action.payload); + state.error = action.payload; }) .addCase(quietFetchOverviewAction.success, (state, action) => { state.data = action.payload; }) .addCase(quietFetchOverviewAction.fail, (state, action) => { - state.error = serializeHttpFetchError(action.payload); + state.error = action.payload; }) .addCase(setOverviewPerPageAction, (state, action) => { state.pageState = { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/actions.ts index 794e16d0292c5..dbdd53d4cbcb7 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/actions.ts @@ -7,10 +7,13 @@ import { createAction } from '@reduxjs/toolkit'; import { ServiceLocations, ThrottlingOptions } from '../../../../../common/runtime_types'; +import { IHttpSerializedFetchError } from '../utils/http_error'; export const getServiceLocations = createAction('[SERVICE LOCATIONS] GET'); export const getServiceLocationsSuccess = createAction<{ throttling: ThrottlingOptions | undefined; locations: ServiceLocations; }>('[SERVICE LOCATIONS] GET SUCCESS'); -export const getServiceLocationsFailure = createAction<Error>('[SERVICE LOCATIONS] GET FAILURE'); +export const getServiceLocationsFailure = createAction<IHttpSerializedFetchError>( + '[SERVICE LOCATIONS] GET FAILURE' +); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/index.ts index e13fe756ec7fd..9a338458e603f 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/service_locations/index.ts @@ -11,6 +11,7 @@ import { ServiceLocations, ThrottlingOptions, } from '../../../../../common/runtime_types'; +import { IHttpSerializedFetchError } from '../utils/http_error'; import { getServiceLocations, @@ -22,7 +23,7 @@ export interface ServiceLocationsState { locations: ServiceLocations; throttling: ThrottlingOptions | null; loading: boolean; - error: Error | null; + error: IHttpSerializedFetchError | null; locationsLoaded?: boolean; } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/actions.ts index c38fadc0952a6..0c7abffd1b289 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/actions.ts @@ -7,23 +7,24 @@ import { createAction } from '@reduxjs/toolkit'; import { MonitorManagementEnablementResult } from '../../../../../common/runtime_types'; +import { IHttpSerializedFetchError } from '../utils/http_error'; export const getSyntheticsEnablement = createAction('[SYNTHETICS_ENABLEMENT] GET'); export const getSyntheticsEnablementSuccess = createAction<MonitorManagementEnablementResult>( '[SYNTHETICS_ENABLEMENT] GET SUCCESS' ); -export const getSyntheticsEnablementFailure = createAction<Error>( +export const getSyntheticsEnablementFailure = createAction<IHttpSerializedFetchError>( '[SYNTHETICS_ENABLEMENT] GET FAILURE' ); export const disableSynthetics = createAction('[SYNTHETICS_ENABLEMENT] DISABLE'); export const disableSyntheticsSuccess = createAction<{}>('[SYNTHETICS_ENABLEMENT] DISABLE SUCCESS'); -export const disableSyntheticsFailure = createAction<Error>( +export const disableSyntheticsFailure = createAction<IHttpSerializedFetchError>( '[SYNTHETICS_ENABLEMENT] DISABLE FAILURE' ); export const enableSynthetics = createAction('[SYNTHETICS_ENABLEMENT] ENABLE'); export const enableSyntheticsSuccess = createAction<{}>('[SYNTHETICS_ENABLEMENT] ENABLE SUCCESS'); -export const enableSyntheticsFailure = createAction<Error>( +export const enableSyntheticsFailure = createAction<IHttpSerializedFetchError>( '[SYNTHETICS_ENABLEMENT] ENABLE FAILURE' ); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/index.ts index 62ed85ad17e86..3bf9ff69bf005 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/synthetics_enablement/index.ts @@ -18,10 +18,11 @@ import { getSyntheticsEnablementFailure, } from './actions'; import { MonitorManagementEnablementResult } from '../../../../../common/runtime_types'; +import { IHttpSerializedFetchError } from '../utils/http_error'; export interface SyntheticsEnablementState { loading: boolean; - error: Error | null; + error: IHttpSerializedFetchError | null; enablement: MonitorManagementEnablementResult | null; } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/actions.ts index 416c3134d6034..35e93fd91484e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/actions.ts @@ -6,13 +6,13 @@ */ import { createAction } from '@reduxjs/toolkit'; -import type { IHttpFetchError } from '@kbn/core-http-browser'; +import type { IHttpSerializedFetchError } from './http_error'; export function createAsyncAction<Payload, SuccessPayload>(actionStr: string) { return { get: createAction<Payload>(actionStr), success: createAction<SuccessPayload>(`${actionStr}_SUCCESS`), - fail: createAction<IHttpFetchError>(`${actionStr}_FAIL`), + fail: createAction<IHttpSerializedFetchError>(`${actionStr}_FAIL`), }; } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/fetch_effect.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/fetch_effect.ts index b07f1fa542633..294da718a6fd3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/fetch_effect.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/utils/fetch_effect.ts @@ -8,6 +8,7 @@ import { call, put } from 'redux-saga/effects'; import { PayloadAction } from '@reduxjs/toolkit'; import type { IHttpFetchError } from '@kbn/core-http-browser'; +import { IHttpSerializedFetchError, serializeHttpFetchError } from './http_error'; /** * Factory function for a fetch effect. It expects three action creators, @@ -23,7 +24,7 @@ import type { IHttpFetchError } from '@kbn/core-http-browser'; export function fetchEffectFactory<T, R, S, F>( fetch: (request: T) => Promise<R>, success: (response: R) => PayloadAction<S>, - fail: (error: IHttpFetchError) => PayloadAction<F> + fail: (error: IHttpSerializedFetchError) => PayloadAction<F> ) { return function* (action: PayloadAction<T>): Generator { try { @@ -32,14 +33,14 @@ export function fetchEffectFactory<T, R, S, F>( // eslint-disable-next-line no-console console.error(response); - yield put(fail(response as IHttpFetchError)); + yield put(fail(serializeHttpFetchError(response as IHttpFetchError))); } else { yield put(success(response as R)); } } catch (error) { // eslint-disable-next-line no-console console.error(error); - yield put(fail(error as IHttpFetchError)); + yield put(fail(serializeHttpFetchError(error))); } }; } diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/index.ts b/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/index.ts index 0ff45023143ec..831f8a9cbf6bb 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/index.ts +++ b/x-pack/plugins/synthetics/public/legacy_uptime/state/private_locations/index.ts @@ -5,9 +5,9 @@ * 2.0. */ -import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { createReducer } from '@reduxjs/toolkit'; import { AgentPolicy } from '@kbn/fleet-plugin/common'; +import { IHttpSerializedFetchError } from '../../../apps/synthetics/state'; import { getAgentPoliciesAction, setAddingNewPrivateLocation, @@ -24,7 +24,7 @@ export interface AgentPoliciesList { export interface AgentPoliciesState { data: AgentPoliciesList | null; loading: boolean; - error: IHttpFetchError<ResponseErrorBody> | null; + error: IHttpSerializedFetchError | null; isManageFlyoutOpen?: boolean; isAddingNewPrivateLocation?: boolean; } @@ -47,7 +47,7 @@ export const agentPoliciesReducer = createReducer(initialState, (builder) => { state.loading = false; }) .addCase(getAgentPoliciesAction.fail, (state, action) => { - state.error = action.payload as IHttpFetchError<ResponseErrorBody>; + state.error = action.payload; state.loading = false; }) .addCase(setManageFlyoutOpen, (state, action) => { From 6de00911781c5340536cf64e51b3e1bce3aa0137 Mon Sep 17 00:00:00 2001 From: Karl Godard <karl.godard@elastic.co> Date: Mon, 3 Oct 2022 18:38:00 -0700 Subject: [PATCH 45/51] [Terminal Output] bug fixes to text sizer and missed lines rendered issue. (#142524) * removed complex lines per frame logic. caused too many edge cases. tests added to prevent future regressions * fix fit to screen option (when changing from fullscreen to not. also button state). increased playback speed to make up for removal of multi line per frame rendering * fixed tests * removing tty loading technique due to problems with unique char_device in multi container sessions on the same pod Co-authored-by: Karl Godard <karlgodard@elastic.co> --- .../plugins/session_view/common/constants.ts | 3 +- .../components/session_view/index.test.tsx | 2 + .../components/tty_player/hooks.test.tsx | 47 ++++++++--- .../public/components/tty_player/hooks.ts | 10 +-- .../components/tty_player/index.test.tsx | 2 + .../public/components/tty_player/index.tsx | 5 +- .../components/tty_text_sizer/index.test.tsx | 8 +- .../components/tty_text_sizer/index.tsx | 11 +-- .../server/routes/get_total_io_bytes_route.ts | 25 +----- .../server/routes/io_events_route.ts | 78 +------------------ 10 files changed, 64 insertions(+), 127 deletions(-) diff --git a/x-pack/plugins/session_view/common/constants.ts b/x-pack/plugins/session_view/common/constants.ts index 85e714cd27cb3..e7efb0b1f11f6 100644 --- a/x-pack/plugins/session_view/common/constants.ts +++ b/x-pack/plugins/session_view/common/constants.ts @@ -48,8 +48,7 @@ export const ALERT_STATUS = { export const LOCAL_STORAGE_DISPLAY_OPTIONS_KEY = 'sessionView:displayOptions'; export const MOUSE_EVENT_PLACEHOLDER = { stopPropagation: () => undefined } as React.MouseEvent; export const DEBOUNCE_TIMEOUT = 500; -export const DEFAULT_TTY_PLAYSPEED_MS = 50; // milliseconds per render loop -export const TTY_LINES_PER_FRAME = 5; // number of lines to print to xterm on each render loop +export const DEFAULT_TTY_PLAYSPEED_MS = 30; // milliseconds per render loop export const TTY_LINES_PRE_SEEK = 200; // number of lines to redraw before the point we are seeking to. export const DEFAULT_TTY_FONT_SIZE = 11; export const DEFAULT_TTY_ROWS = 66; diff --git a/x-pack/plugins/session_view/public/components/session_view/index.test.tsx b/x-pack/plugins/session_view/public/components/session_view/index.test.tsx index e4650ca2eb4f1..8e970b8f50cc6 100644 --- a/x-pack/plugins/session_view/public/components/session_view/index.test.tsx +++ b/x-pack/plugins/session_view/public/components/session_view/index.test.tsx @@ -39,6 +39,8 @@ describe('SessionView component', () => { dispatchEvent: jest.fn(), })), }); + + global.ResizeObserver = require('resize-observer-polyfill'); }); beforeEach(() => { diff --git a/x-pack/plugins/session_view/public/components/tty_player/hooks.test.tsx b/x-pack/plugins/session_view/public/components/tty_player/hooks.test.tsx index 8b2161c3b1216..9f7201492520c 100644 --- a/x-pack/plugins/session_view/public/components/tty_player/hooks.test.tsx +++ b/x-pack/plugins/session_view/public/components/tty_player/hooks.test.tsx @@ -8,11 +8,7 @@ import { renderHook, act } from '@testing-library/react-hooks'; import { sessionViewIOEventsMock } from '../../../common/mocks/responses/session_view_io_events.mock'; import { useIOLines, useXtermPlayer, XtermPlayerDeps } from './hooks'; import { ProcessEventsPage } from '../../../common/types/process_tree'; -import { - DEFAULT_TTY_FONT_SIZE, - DEFAULT_TTY_PLAYSPEED_MS, - TTY_LINES_PER_FRAME, -} from '../../../common/constants'; +import { DEFAULT_TTY_FONT_SIZE, DEFAULT_TTY_PLAYSPEED_MS } from '../../../common/constants'; const VIM_LINE_START = 22; @@ -132,9 +128,7 @@ describe('TTYPlayer/hooks', () => { jest.advanceTimersByTime(DEFAULT_TTY_PLAYSPEED_MS * 10); }); - const expectedLineNumber = Math.min(initialProps.lines.length - 1, TTY_LINES_PER_FRAME * 10); - - expect(result.current.currentLine).toBe(expectedLineNumber); + expect(result.current.currentLine).toBe(10); }); it('allows the user to stop', async () => { @@ -150,9 +144,7 @@ describe('TTYPlayer/hooks', () => { act(() => { jest.advanceTimersByTime(DEFAULT_TTY_PLAYSPEED_MS * 10); }); - const expectedLineNumber = Math.min(initialProps.lines.length - 1, TTY_LINES_PER_FRAME * 10); - - expect(result.current.currentLine).toBe(expectedLineNumber); // should not have advanced + expect(result.current.currentLine).toBe(10); // should not have advanced }); it('should stop when it reaches the end of the array of lines', async () => { @@ -182,6 +174,39 @@ describe('TTYPlayer/hooks', () => { expect(result.current.terminal.buffer.active.getLine(0)?.translateToString(true)).toBe('256'); }); + it('ensure the first few render loops have printed the right lines', async () => { + const { result, rerender } = renderHook((props) => useXtermPlayer(props), { + initialProps, + }); + + const LOOPS = 6; + + rerender({ ...initialProps, isPlaying: true }); + + act(() => { + // advance render loop + jest.advanceTimersByTime(DEFAULT_TTY_PLAYSPEED_MS * LOOPS); + }); + + rerender({ ...initialProps, isPlaying: false }); + + expect(result.current.terminal.buffer.active.getLine(0)?.translateToString(true)).toBe('256'); + expect(result.current.terminal.buffer.active.getLine(1)?.translateToString(true)).toBe(','); + expect(result.current.terminal.buffer.active.getLine(2)?.translateToString(true)).toBe( + ' Some Companies Puppet instance' + ); + expect(result.current.terminal.buffer.active.getLine(3)?.translateToString(true)).toBe( + ' | | | CentOS Stream release 8 on x86_64' + ); + expect(result.current.terminal.buffer.active.getLine(4)?.translateToString(true)).toBe( + ' *********************** Load average: 1.23, 1.01, 0.63' + ); + expect(result.current.terminal.buffer.active.getLine(5)?.translateToString(true)).toBe( + ' ************************ ' + ); + expect(result.current.currentLine).toBe(LOOPS); + }); + it('will allow a plain text search highlight on the last line printed', async () => { const { result: xTermResult } = renderHook((props) => useXtermPlayer(props), { initialProps, diff --git a/x-pack/plugins/session_view/public/components/tty_player/hooks.ts b/x-pack/plugins/session_view/public/components/tty_player/hooks.ts index 680d50283d5f1..b6891f1dd1d49 100644 --- a/x-pack/plugins/session_view/public/components/tty_player/hooks.ts +++ b/x-pack/plugins/session_view/public/components/tty_player/hooks.ts @@ -29,7 +29,6 @@ import { DEFAULT_TTY_ROWS, DEFAULT_TTY_COLS, TTY_LINE_SPLITTER_REGEX, - TTY_LINES_PER_FRAME, TTY_LINES_PRE_SEEK, } from '../../../common/constants'; @@ -226,6 +225,7 @@ export const useXtermPlayer = ({ if (clear) { linesToPrint = lines.slice(Math.max(0, lineNumber - TTY_LINES_PRE_SEEK), lineNumber + 1); + try { terminal.reset(); terminal.clear(); @@ -234,7 +234,7 @@ export const useXtermPlayer = ({ // there is some random race condition with the jump to feature that causes these calls to error out. } } else { - linesToPrint = lines.slice(lineNumber, lineNumber + TTY_LINES_PER_FRAME); + linesToPrint = lines.slice(lineNumber, lineNumber + 1); } linesToPrint.forEach((line, index) => { @@ -243,7 +243,7 @@ export const useXtermPlayer = ({ } }); }, - [terminal, lines] + [lines, terminal] ); useEffect(() => { @@ -284,9 +284,9 @@ export const useXtermPlayer = ({ if (!hasNextPage && currentLine === lines.length - 1) { setIsPlaying(false); } else { - const nextLine = Math.min(lines.length - 1, currentLine + TTY_LINES_PER_FRAME); - setCurrentLine(nextLine); + const nextLine = Math.min(lines.length - 1, currentLine + 1); render(nextLine, false); + setCurrentLine(nextLine); } }, playSpeed); diff --git a/x-pack/plugins/session_view/public/components/tty_player/index.test.tsx b/x-pack/plugins/session_view/public/components/tty_player/index.test.tsx index a3b5518347ac6..f3332ae5bb7f8 100644 --- a/x-pack/plugins/session_view/public/components/tty_player/index.test.tsx +++ b/x-pack/plugins/session_view/public/components/tty_player/index.test.tsx @@ -28,6 +28,8 @@ describe('TTYPlayer component', () => { dispatchEvent: jest.fn(), })), }); + + global.ResizeObserver = require('resize-observer-polyfill'); }); let render: () => ReturnType<AppContextTestRender['render']>; diff --git a/x-pack/plugins/session_view/public/components/tty_player/index.tsx b/x-pack/plugins/session_view/public/components/tty_player/index.tsx index cb2746736c02f..c77efc9d8c152 100644 --- a/x-pack/plugins/session_view/public/components/tty_player/index.tsx +++ b/x-pack/plugins/session_view/public/components/tty_player/index.tsx @@ -13,6 +13,7 @@ import { EuiButton, EuiBetaBadge, } from '@elastic/eui'; +import useResizeObserver from 'use-resize-observer'; import { throttle } from 'lodash'; import { ProcessEvent } from '../../../common/types/process_tree'; import { TTYSearchBar } from '../tty_search_bar'; @@ -45,7 +46,7 @@ export const TTYPlayer = ({ autoSeekToEntityId, }: TTYPlayerDeps) => { const ref = useRef<HTMLDivElement>(null); - const scrollRef = useRef<HTMLDivElement>(null); + const { ref: scrollRef, height: containerHeight = 1 } = useResizeObserver<HTMLDivElement>({}); const { data, fetchNextPage, hasNextPage, isFetching, refetch } = useFetchIOEvents(sessionEntityId); @@ -188,7 +189,7 @@ export const TTYPlayer = ({ textSizer={ <TTYTextSizer tty={tty} - containerHeight={scrollRef?.current?.offsetHeight || 0} + containerHeight={containerHeight} fontSize={fontSize} onFontSizeChanged={setFontSize} isFullscreen={isFullscreen} diff --git a/x-pack/plugins/session_view/public/components/tty_text_sizer/index.test.tsx b/x-pack/plugins/session_view/public/components/tty_text_sizer/index.test.tsx index 489b9da9a7d52..a534cb151a95f 100644 --- a/x-pack/plugins/session_view/public/components/tty_text_sizer/index.test.tsx +++ b/x-pack/plugins/session_view/public/components/tty_text_sizer/index.test.tsx @@ -79,9 +79,15 @@ describe('TTYTextSizer component', () => { it('emits a font size to fit to full screen, when isFullscreen = true', async () => { renderResult = mockedContext.render( - <TTYTextSizer {...props} isFullscreen={true} containerHeight={400} /> + <TTYTextSizer {...props} isFullscreen containerHeight={400} /> ); + const zoomFitBtn = renderResult.queryByTestId('sessionView:TTYZoomFit'); + + if (zoomFitBtn) { + userEvent.click(zoomFitBtn); + } + expect(props.onFontSizeChanged).toHaveBeenCalledTimes(1); expect(props.onFontSizeChanged).toHaveBeenCalledWith(FULL_SCREEN_FONT_SIZE); }); diff --git a/x-pack/plugins/session_view/public/components/tty_text_sizer/index.tsx b/x-pack/plugins/session_view/public/components/tty_text_sizer/index.tsx index 42531fc7f5e6c..a2454f8cac28b 100644 --- a/x-pack/plugins/session_view/public/components/tty_text_sizer/index.tsx +++ b/x-pack/plugins/session_view/public/components/tty_text_sizer/index.tsx @@ -65,13 +65,7 @@ export const TTYTextSizer = ({ onFontSizeChanged(newSize); } } - }, [containerHeight, fit, fontSize, onFontSizeChanged, tty?.rows]); - - useEffect(() => { - if (isFullscreen) { - setFit(true); - } - }, [isFullscreen]); + }, [isFullscreen, containerHeight, fit, fontSize, onFontSizeChanged, tty?.rows]); const onToggleFit = useCallback(() => { const newValue = !fit; @@ -100,7 +94,8 @@ export const TTYTextSizer = ({ display={fit ? 'fill' : 'empty'} iconType={fit ? 'expand' : 'minimize'} onClick={onToggleFit} - {...commonButtonProps} + size="s" + color="ghost" /> </EuiToolTip> </EuiFlexItem> diff --git a/x-pack/plugins/session_view/server/routes/get_total_io_bytes_route.ts b/x-pack/plugins/session_view/server/routes/get_total_io_bytes_route.ts index 4987c284b6339..081969b66ca43 100644 --- a/x-pack/plugins/session_view/server/routes/get_total_io_bytes_route.ts +++ b/x-pack/plugins/session_view/server/routes/get_total_io_bytes_route.ts @@ -4,16 +4,13 @@ */ import { schema } from '@kbn/config-schema'; import { IRouter } from '@kbn/core/server'; -import { EVENT_ACTION, TIMESTAMP } from '@kbn/rule-data-utils'; +import { EVENT_ACTION } from '@kbn/rule-data-utils'; import { GET_TOTAL_IO_BYTES_ROUTE, PROCESS_EVENTS_INDEX, TOTAL_BYTES_CAPTURED_PROPERTY, - TTY_CHAR_DEVICE_MAJOR_PROPERTY, - TTY_CHAR_DEVICE_MINOR_PROPERTY, - HOST_ID_PROPERTY, + ENTRY_SESSION_ENTITY_ID_PROPERTY, } from '../../common/constants'; -import { getTTYQueryPredicates } from './io_events_route'; export const registerGetTotalIOBytesRoute = (router: IRouter) => { router.get( @@ -30,30 +27,14 @@ export const registerGetTotalIOBytesRoute = (router: IRouter) => { const { sessionEntityId } = request.query; try { - const ttyPredicates = await getTTYQueryPredicates(client, sessionEntityId); - - if (!ttyPredicates) { - return response.ok({ body: { total: 0 } }); - } - const search = await client.search({ index: [PROCESS_EVENTS_INDEX], body: { query: { bool: { must: [ - { term: { [TTY_CHAR_DEVICE_MAJOR_PROPERTY]: ttyPredicates.ttyMajor } }, - { term: { [TTY_CHAR_DEVICE_MINOR_PROPERTY]: ttyPredicates.ttyMinor } }, - { term: { [HOST_ID_PROPERTY]: ttyPredicates.hostId } }, + { term: { [ENTRY_SESSION_ENTITY_ID_PROPERTY]: sessionEntityId } }, { term: { [EVENT_ACTION]: 'text_output' } }, - { - range: { - [TIMESTAMP]: { - gte: ttyPredicates.range[0], - lte: ttyPredicates.range[1], - }, - }, - }, ], }, }, diff --git a/x-pack/plugins/session_view/server/routes/io_events_route.ts b/x-pack/plugins/session_view/server/routes/io_events_route.ts index 52a24708126a5..7a88eacdeed7e 100644 --- a/x-pack/plugins/session_view/server/routes/io_events_route.ts +++ b/x-pack/plugins/session_view/server/routes/io_events_route.ts @@ -8,75 +8,17 @@ import { schema } from '@kbn/config-schema'; import { IRouter } from '@kbn/core/server'; import { EVENT_ACTION, TIMESTAMP } from '@kbn/rule-data-utils'; import type { ElasticsearchClient } from '@kbn/core/server'; -import { parse } from '@kbn/datemath'; import { Aggregate } from '../../common/types/aggregate'; -import { EventAction, EventKind, ProcessEvent } from '../../common/types/process_tree'; +import { EventAction, EventKind } from '../../common/types/process_tree'; import { IO_EVENTS_ROUTE, IO_EVENTS_PER_PAGE, PROCESS_EVENTS_INDEX, ENTRY_SESSION_ENTITY_ID_PROPERTY, - TTY_CHAR_DEVICE_MAJOR_PROPERTY, - TTY_CHAR_DEVICE_MINOR_PROPERTY, - HOST_ID_PROPERTY, PROCESS_ENTITY_ID_PROPERTY, PROCESS_EVENTS_PER_PAGE, } from '../../common/constants'; -/** - * Grabs the most recent event for the session and extracts the TTY char_device - * major/minor numbers, boot id, and session date range to use in querying for tty IO events. - * This is done so that any process from any session that writes to this TTY at the time of - * this session will be shown in the TTY Player. e.g. wall - */ -export const getTTYQueryPredicates = async ( - client: ElasticsearchClient, - sessionEntityId: string -) => { - const lastEventQuery = await client.search({ - index: [PROCESS_EVENTS_INDEX], - body: { - query: { - bool: { - minimum_should_match: 1, - should: [ - { term: { [EVENT_ACTION]: 'fork' } }, - { term: { [EVENT_ACTION]: 'exec' } }, - { term: { [EVENT_ACTION]: 'end' } }, - { term: { [EVENT_ACTION]: 'text_output' } }, - ], - must: [{ term: { [ENTRY_SESSION_ENTITY_ID_PROPERTY]: sessionEntityId } }], - }, - }, - size: 1, - sort: [{ [TIMESTAMP]: 'desc' }], - }, - }); - - const lastEventHits = lastEventQuery.hits.hits; - - if (lastEventHits.length > 0) { - const lastEvent: ProcessEvent = lastEventHits[0]._source as ProcessEvent; - const lastEventTime = lastEvent['@timestamp']; - const rangeEnd = - (lastEventTime && parse(lastEventTime)?.toISOString()) || new Date().toISOString(); - const range = [lastEvent?.process?.entry_leader?.start, rangeEnd]; - const tty = lastEvent?.process?.entry_leader?.tty; - const hostId = lastEvent?.host?.id; - - if (tty?.char_device?.major !== undefined && tty?.char_device?.minor !== undefined && hostId) { - return { - ttyMajor: tty.char_device.major, - ttyMinor: tty.char_device.minor, - hostId, - range, - }; - } - } - - return null; -}; - export const registerIOEventsRoute = (router: IRouter) => { router.get( { @@ -94,30 +36,14 @@ export const registerIOEventsRoute = (router: IRouter) => { const { sessionEntityId, cursor, pageSize = IO_EVENTS_PER_PAGE } = request.query; try { - const ttyPredicates = await getTTYQueryPredicates(client, sessionEntityId); - - if (!ttyPredicates) { - return response.ok({ body: { total: 0, events: [] } }); - } - const search = await client.search({ index: [PROCESS_EVENTS_INDEX], body: { query: { bool: { must: [ - { term: { [TTY_CHAR_DEVICE_MAJOR_PROPERTY]: ttyPredicates.ttyMajor } }, - { term: { [TTY_CHAR_DEVICE_MINOR_PROPERTY]: ttyPredicates.ttyMinor } }, - { term: { [HOST_ID_PROPERTY]: ttyPredicates.hostId } }, + { term: { [ENTRY_SESSION_ENTITY_ID_PROPERTY]: sessionEntityId } }, { term: { [EVENT_ACTION]: 'text_output' } }, - { - range: { - [TIMESTAMP]: { - gte: ttyPredicates.range[0]?.toString(), - lte: ttyPredicates.range[1]?.toString(), - }, - }, - }, ], }, }, From aa12bea33c13b9a9b1f7f35e3270b9c193510114 Mon Sep 17 00:00:00 2001 From: Paulo Henrique <paulo.henrique@elastic.co> Date: Mon, 3 Oct 2022 19:01:01 -0700 Subject: [PATCH 46/51] [8.5][Elastic Defend onboarding] Updates to text for Endpoint presets (#142138) --- .../endpoint_policy_create_extension.tsx | 81 ++++++++++++++++--- .../translations.ts | 27 ++++--- 2 files changed, 89 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/endpoint_policy_create_extension.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/endpoint_policy_create_extension.tsx index 0617707505e52..78da8134807f2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/endpoint_policy_create_extension.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/endpoint_policy_create_extension.tsx @@ -14,10 +14,14 @@ import { EuiTitle, EuiSpacer, EuiFormRow, + EuiCallOut, + EuiLink, + EuiCode, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import styled from 'styled-components'; import type { PackagePolicyCreateExtensionComponentProps } from '@kbn/fleet-plugin/public'; +import { useLicense } from '../../../../../../common/hooks/use_license'; import { ALL_EVENTS, CLOUD_SECURITY, @@ -26,6 +30,8 @@ import { EDR_ESSENTIAL, ENDPOINT, INTERACTIVE_ONLY, + NGAV_NOTE, + EDR_NOTE, } from './translations'; const PREFIX = 'endpoint_policy_create_extension'; @@ -38,9 +44,18 @@ const environmentMapping = { }; const endpointPresetsMapping = { - NGAV, - EDREssential: EDR_ESSENTIAL, - EDRComplete: EDR_COMPLETE, + NGAV: { + label: NGAV, + note: NGAV_NOTE, + }, + EDREssential: { + label: EDR_ESSENTIAL, + note: EDR_NOTE, + }, + EDRComplete: { + label: EDR_COMPLETE, + note: EDR_NOTE, + }, }; const cloudEventMapping = { @@ -67,12 +82,21 @@ const HelpTextWithPadding = styled.div` */ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionComponentProps>( ({ newPolicy, onChange }) => { + const isPlatinumPlus = useLicense().isPlatinumPlus(); + const isEnterprise = useLicense().isEnterprise(); + // / Endpoint Radio Options (NGAV and EDRs) const [endpointPreset, setEndpointPreset] = useState<EndpointPreset>('NGAV'); - const [selectedCloudEvent, setSelectedCloudEvent] = useState<CloudEvent>('ALL_EVENTS'); + const [selectedCloudEvent, setSelectedCloudEvent] = useState<CloudEvent>('INTERACTIVE_ONLY'); const [selectedEnvironment, setSelectedEnvironment] = useState<Environment>('endpoint'); const initialRender = useRef(true); + // Show NGAV license note when Gold and below + // Show other licenses note when Platinum and Below + const showNote = + (endpointPreset === 'NGAV' && !isPlatinumPlus) || + (endpointPreset !== 'NGAV' && !isEnterprise); + // Fleet will initialize the create form with a default name for the integrating policy, however, // for endpoint security, we want the user to explicitly type in a name, so we blank it out // only during 1st component render (thus why the eslint disabled rule below). @@ -156,7 +180,7 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo const getEndpointPresetsProps = useCallback( (preset: EndpointPreset) => ({ id: `${PREFIX}_endpoint_preset_${preset}`, - label: endpointPresetsMapping[preset], + label: endpointPresetsMapping[preset].label, value: preset, checked: endpointPreset === preset, onChange: onChangeEndpointPreset, @@ -231,7 +255,7 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo <HelpTextWithPadding> <FormattedMessage id="xpack.securitySolution.createPackagePolicy.stepConfigure.packagePolicyTypeEndpointNGAV" - defaultMessage="Prevents Malware, Ransomware and Memory Threats and provides process telemetry" + defaultMessage="Machine learning malware, ransomware, memory threat, malicious behavior, and credential theft preventions, plus process telemetry" /> </HelpTextWithPadding> } @@ -245,7 +269,7 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo <HelpTextWithPadding> <FormattedMessage id="xpack.securitySolution.createPackagePolicy.stepConfigure.packagePolicyTypeEndpointEDREssential" - defaultMessage="Endpoint Alerts, Process Events, Network Events, File Events" + defaultMessage="Everything in NGAV, plus file and network telemetry" /> </HelpTextWithPadding> } @@ -259,13 +283,42 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo <HelpTextWithPadding> <FormattedMessage id="xpack.securitySolution.createPackagePolicy.stepConfigure.packagePolicyTypeEndpointEDRComplete" - defaultMessage="Endpoint Alerts, Full Event capture" + defaultMessage="Everything in Essential EDR, plus full telemetry" /> </HelpTextWithPadding> } > <EuiRadio {...getEndpointPresetsProps('EDRComplete')} /> </EuiFormRow> + {showNote && ( + <> + <EuiSpacer size="m" /> + <EuiCallOut iconType="iInCircle"> + <EuiText size="s"> + <p> + {endpointPresetsMapping[endpointPreset].note}{' '} + <FormattedMessage + id="xpack.securitySolution.createPackagePolicy.stepConfigure.seeDocumentation" + defaultMessage="See {documentation} for more information." + values={{ + documentation: ( + <EuiLink + href="https://www.elastic.co/guide/en/security/current/configure-endpoint-integration-policy.html" + target="_blank" + > + <FormattedMessage + id="xpack.securitySolution.endpoint.ingestManager.createPackagePolicy.seeDocumentationLink" + defaultMessage="documentation" + /> + </EuiLink> + ), + }} + /> + </p> + </EuiText> + </EuiCallOut> + </> + )} </> ) : ( <> @@ -285,7 +338,11 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo <HelpTextWithPadding> <FormattedMessage id="xpack.securitySolution.createPackagePolicy.stepConfigure.packagePolicyTypeComprehensiveInfo" - defaultMessage="Monitors and collects session data from all process executions. " + defaultMessage="Monitors and collects process data from all executions, including those launched by daemon processes, like {nginx} or {postgres}" + values={{ + nginx: <EuiCode>{'nginx'}</EuiCode>, + postgres: <EuiCode>{'postgres'}</EuiCode>, + }} /> </HelpTextWithPadding> } @@ -299,7 +356,11 @@ export const EndpointPolicyCreateExtension = memo<PackagePolicyCreateExtensionCo <HelpTextWithPadding> <FormattedMessage id="xpack.securitySolution.createPackagePolicy.stepConfigure.packagePolicyTypeInteractiveOnlyInfo" - defaultMessage="Monitors and collects session data from interactive sessions only. " + defaultMessage="Monitors and collects session data from interactive sessions, like {ssh} or {telnet}" + values={{ + ssh: <EuiCode>{'ssh'}</EuiCode>, + telnet: <EuiCode>{'telnet'}</EuiCode>, + }} /> </HelpTextWithPadding> } diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/translations.ts b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/translations.ts index 66688371b68de..46246176119ae 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/translations.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_policy_create_extension/translations.ts @@ -10,20 +10,35 @@ import { i18n } from '@kbn/i18n'; export const NGAV = i18n.translate( 'xpack.securitySolution.createPackagePolicy.stepConfigure.endpointDropdownOptionNGAV', { - defaultMessage: 'NGAV', + defaultMessage: 'Next-Generation Antivirus (NGAV)', + } +); + +export const NGAV_NOTE = i18n.translate( + 'xpack.securitySolution.createPackagePolicy.stepConfigure.endpointDropdownOptionNGAVNote', + { + defaultMessage: 'Note: advanced protections require a platinum license level.', } ); export const EDR_ESSENTIAL = i18n.translate( 'xpack.securitySolution.createPackagePolicy.stepConfigure.endpointDropdownOptionEDREssential', { - defaultMessage: 'EDR Essential', + defaultMessage: 'Essential EDR (Endpoint Detection & Response)', } ); export const EDR_COMPLETE = i18n.translate( 'xpack.securitySolution.createPackagePolicy.stepConfigure.endpointDropdownOptionEDRComplete', { - defaultMessage: 'EDR Complete', + defaultMessage: 'Complete EDR (Endpoint Detection & Response)', + } +); + +export const EDR_NOTE = i18n.translate( + 'xpack.securitySolution.createPackagePolicy.stepConfigure.endpointDropdownOptionEDRNote', + { + defaultMessage: + 'Note: advanced protections require a platinum license, and full response capabilities require an enterprise license.', } ); @@ -51,9 +66,3 @@ export const ALL_EVENTS = i18n.translate( defaultMessage: 'All events', } ); -export const PREVENT_MALICIOUS_BEHAVIOR = i18n.translate( - 'xpack.securitySolution.createPackagePolicy.stepConfigure.cloudEventFiltersPreventionMaliciousBehavior', - { - defaultMessage: 'Prevent Malicious Behavior', - } -); From 999bc84c81f7413dc6a4f6af3174900a56df4aaa Mon Sep 17 00:00:00 2001 From: Nathan Reese <reese.nathan@elastic.co> Date: Mon, 3 Oct 2022 20:06:05 -0600 Subject: [PATCH 47/51] [Sample data] replace legacy control visualizations with dashboard controls (#141824) * [Sample data] replace legacy control visualizations with dashboard controls * i18n wrappings for title and description * update screen shots * fix functional tests * update functional test expects * more functional test expect updates Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../ecommerce/dashboard.webp | Bin 23900 -> 32920 bytes .../ecommerce/dashboard_dark.webp | Bin 32348 -> 31946 bytes .../flights/dashboard.webp | Bin 21616 -> 31426 bytes .../flights/dashboard_dark.webp | Bin 28074 -> 31330 bytes .../sample_data_resources/logs/dashboard.webp | Bin 23410 -> 38660 bytes .../logs/dashboard_dark.webp | Bin 29896 -> 39936 bytes .../data_sets/ecommerce/saved_objects.ts | 147 ++++++++---------- .../data_sets/flights/saved_objects.ts | 128 ++++++++------- .../data_sets/logs/saved_objects.ts | 112 +++++++------ .../from_the_browser/loaded_dashboard.ts | 2 +- test/functional/apps/home/_sample_data.ts | 8 +- .../services/dashboard/expectations.ts | 9 ++ .../journeys/ecommerce_dashboard.ts | 2 +- .../performance/journeys/flight_dashboard.ts | 2 +- .../journeys/web_logs_dashboard.ts | 2 +- .../apps/dashboard/group2/_async_dashboard.ts | 2 +- .../save_search_session_relative_time.ts | 2 +- .../apps/dashboard/dashboard_smoke_tests.ts | 2 +- 18 files changed, 214 insertions(+), 204 deletions(-) diff --git a/src/plugins/home/public/assets/sample_data_resources/ecommerce/dashboard.webp b/src/plugins/home/public/assets/sample_data_resources/ecommerce/dashboard.webp index f6720bf0e3e51127645416f0f551c95a459f0757..a48a4a05318bbe83f6f670ab58e4b460c80836f1 100644 GIT binary patch literal 32920 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 LZNB@5rQiSnR%R+d literal 23900 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 RYcB+E5)z3?3h+XJ002xXpMn4Y diff --git a/src/plugins/home/public/assets/sample_data_resources/ecommerce/dashboard_dark.webp b/src/plugins/home/public/assets/sample_data_resources/ecommerce/dashboard_dark.webp index b9263441d1f223dae0beae97aef84a46f7374139..cccee38594e9c9f2620b498bb152ff629a723097 100644 GIT binary patch literal 31946 zcmV)nK%Ku*Nk&G(d;kDfMM6+kP&gpAd;kEDfC8NXDgXsL0zQ#Oo=YX8x-6qHszX2$ z31@EHy1G(-`Vd<Q=>3QNmuOB)bpb}=6nm%#cF>OmYWN|_e|7%Hr=KG6B-Vc@uTIR* z;6HBjwf}3@C-_fLfAXG)|ML3X{^jT=_cPX$(&zdwMc$>~>!0wy|NsB^0R2$)sP&-# zSL*xI=hE-yf8PJgcs2dQ{Ga%r+;2XAA^I2bU)n#%f71UA^PBpPPWwyLr{|xBe~<nb z&%gKI<9{OkCH&X+kNJP%zbSq}e=q)X{@44Tt!LtPgX%x@y#alF`v?Ay^PZo-LH}?3 zpQ)d^|Aha!{!j9|><9W!_MiCv!vClLvHmmn|I&l-|LFhkf1~`s`vLxG{m1^7_@B&= zroZt2`~STEbLwO3U)ukG&*<Ob|7JU0`caLN4%Xq4W!&7sl%nSqqj3?7&vqmA9!3K% z$3P;T3v=U3UtIUnftK9&m@&+!vRPFrLUdo&kP$FNPwIP1&7`y%bJ@B~CQjq}P10d9 zcOTMjlL?c!{*!c=Or6K{o20^I?mwj6CKD%d{VXAm>4XRnQ4&Q)|3&G#e|3sgw{rkZ za>dTN0ElU(ch0ew2c?S|4FE*w8EU~NJPZH<8{?cR;eQ%?NLvZ_7|BLCB=omwIFOYH zifkUCvIrvT*!df6330d#$I~r}1TT+2=%B4V6`4mH(|U(^7K(R2fJvA+VWrI@<)XKd z)gJe<-1ySh*FFG@raCap!*;=!2aj2N#EY(@+EM@|9>ncSNMg=x<AiaJb7q_)XzC!A zzJ3?!u^EZW0Ef6H8+g7M=T&SG&Z3R(DE^a3K&g(5?T&y&Iu_@~k+>D7(`7Nw_vuQb zECptr!1OP!d;u9uHini1KZ|tPtIp6c|B~4Z>qd`DUds3aBaPmaT=7fPydF#k-QENU z_%NV8D}WGiD4NKwtuGhlLmCGBvG39E@}Z3bed@QyFRLO5=-EpY5i}#iwYE$kID2M` zqPV>t|0)<k@NB}r>{Dfq4^T@xUS%VMS_{;nIxps~FGs)1hCG!GRLhExiDbKo@bU(8 zS^ovdZPbi_K;q4VN59I3G!6M<-=osI^C5&K`B27zzb#WX{IT!R@A9FIB*!+`V-dV9 zf15caTkG@2smfBiI33epv!9c*_d++ZkIHada$x}oFU5$s{o0L=|1gOzUV{{Xm=mut zO}$tMcx@*g;?_!o6HQ+6d{dcloC&~2S$UJk*1rRf|0l>QY;4q9<6Bd^qC4<TV5`M1 zQOJ-f;aK<R_xVu9fxs0zihjbVyli_V8qW?vBmM6M9NvW*(!k{Re68(zlII>^FbC2{ zf&k&lL$4un+&^@C_kD3ttHv#LhxNJz4V+wk@&AUE9*xX5h`^0g&E<Ynd?ooji1o$k zDgd}x&^P6eevf~Z40%sc+CjeSrox{9h~p;Tv^@p^V~=m@TqK7z#KKACgC4;K-h?TV zqbrMLuL$2qkWvQpWfuEqtI3qo7Fy+?eRZi2T-6xh(cXfSwIdD4q*MU~oDE<}6Yhoy zq$4S^eEl7i4!=BiQod+i3<qup;96qz0cPaI0o^qL$79s1WAoM{Kn~`p_{hld2lFs} zG-}L%;6eEG?9oY$I1ratWn8O#OxCcOFJZyc+V#s3@9p>81RTHgN4~tkte=iQ3ljpA z*sy<BF6#XkX2Gy*1Q;3a2!E9{@gCp+Kn*p8e{&!b4(p2uiGZUxCubO{F*mF5mkR)W zH|!ALF4QpjV{59H%j5OC2#08B8351s9Y`4$Ie)D{0RVYc)QJ=54mxlwD3gx%1G?D^ zHZ=F1po#`bDT>-c4}dgf)mM`v?~opUZt0}ggIDe8%;5Oq=pRxpwL+;GfJ(yvZ!O#% zNz!QhfM<D3pVRC^ILK*fqlewYVOUzpOjgHm(b|I2FF|Zyo`gE_zoL+ktCP^PdyjYI zYBUaHj&59L_|;<kY9jlY0y?8Oj2&>;-niE=Q6WDx^%qrrfH^%tF3^%wq!gBnNT${u z4R%-?ffr9&t|&uI3IGxM9qC4beF!o60H$s(0YcRmy#RxoSj7Ft>meUQ)eM8%g=6XB zGoZV?_Lg3kUdLc&ia-I$XybY303hPnD9#kRsIz{iVR3pA2`C+>^eb0;9YFs43kwQ| zrBX#`G}I={MMQp-)gLJe^ZMfSd;F+lK;M=<`aS+sF`%yjae7BEQXQ5({#giKUzIQ8 zKboU5$0eQ9f3p&m|2-`L5prEg+nC{yb)c%o&W}g#b<hZ>LfrV$*VjG(jHWs>wmIxa z2W#urn+{D<UAUVtY_!0<@h~mNegH;O9U0pjwofm(ES@~tII8##(k_Qp6_^)QKH93p z(n{-y$r;0E`4?Av;jmN3Kq8n~N@nY$g|itfb^Hme*w?FGk82bGfc~&&NQ(bZ1pbk= zQg85KJz3?7+hBsm9MCV3X1ak~!6&Sjnmo0yy)`$oMEzN5Beyg$)LB{*3mD^hf6&7b zCBV&W4Sq~}tHG8Tt4@FJGtJVm%kG+|{D^QjJOC=G*|E1q2|oFW&D5W$&8-`zmc;1v zcgZVfNHlaKAN|-FQm5C5KvS$}sdk+qP2KL8`Jg}jIYoUL63kP=vG39E^v8sxR35zR zg+Kq~nF!VSuq=dk$Hm}h{V&RojXOTHJ{Yn%NP+rwx8jTgP|r$6(vF>pt+Qs+D6p~} z8Lg-kWm0kN1PTw~I@0kcCV0Oe+m1DhyUr8<%6;5Gy9WQw|Ib*ZfHPlRH|2zj+~BdL zj3eH6DXJJbtPSGFTiQ%%5loPF_Dn)oX^)IrCw5tVhwEI?4Pd&)^f9E2(oW^We0b+I z7eBs2t6sp$EPUrg;9&cnU!<NMKRqfqo&g&Z%zxPZBq19M4}ol*2Gzk=^fCsIe~VT~ z8jLrIiQ|UO3K3?qZFzoK3Cw{@R?^^IC8jyhJR$0{@-6VUlO&=|kdKu5x$d=C=zoDj z!tu<&2jg`-W!o^F{*yj?bGh-QubqT5XdJ!%qAAd~J@;mce@Z!(Ys>MzSV1t!yN2Oy z{IT!U%>u)Mw|wI#8@xTLGo61T6b`?et$kkGzH|>Kid3|0r49q+BsaIhcWn^Drd#!f zvl7`DIV**ssqBD}p*<s~)`<e4ht&bs{LqJA@xSA9#%pfvSte?skl5W7*IyoHBovV0 z$64nogM+4<pQW1<wMV!mj_tGu{#tT8o4FM5PIm5rD{{BFF1Zcz0f*~<BaE*{^1MkL z$muBqess>nRI8_%AK+1QtS4sdr!szNPu1ts1@@nxBA5LcgP63j%Nh#s3gLV^m?S|w zUBfi{X2A+Z1vus4q!w0Zj*2uRvrfasc~$xBm(sGKjQQq9-zpf=PK#ieBDG7${H71~ z8Q_ahW9?QGIN4t8cG+=H6`)Nar!Jgybs3@JdgO<+wp<Ho1ZQTspi3QYd}(Xzp4~oE z9U0pl0E%=i&y6auf}Yb4u11cJ(*d`c@CY$pK!nCtll<m{WJ-X2uR3;gz#^RsbK^84 z!keOMcAk+yB7~Di;`?7*_qM6(j5Jx>SMF9wv`;BxQsG=8FDq&2^T#alkINqY9{(yW zBK)XhL1%^#zX!Vkte`uYaqrHsqHc0_AW585T1EttK?Q+gx`#t;F7Tr%dQAnPajhet zmfYW~gv(eV?!AJsxT@c=1!8|s0Br7OXRt^j%rQro>RH%yGYg#k7J*nMM2(<InA8*R z*x|qui=~AZHBEyRK}_^t_fP&$m-w#$)*e(&Q;+JE#VuFM(2X_0%2@d$oBe+1mmSPn z+uzEwaDjV>6q2^W0-I0GfZi)1vXyD%2tZS5>W$EwEC$L-P2mU%ZBg#dKpA6t*IBAk zi5h_v7iP9%(}a$Xk&3(teA;9Si4wtnHbMwJGdSV^YyXtIS0DdyH-G+ec+%(}u<p~M zNWu^>FQLvSY?65pvq}9hRSMuzk5%km>m2iM?{j%ciwY277YtiYM5SrX4#>U;A^GIR zy7zFHWHWn$2=@v(yn&UR8YJXH3ciP8Jb<Xb&vGHa<Q6#ThF1Aj++{m`}8!{*ip z@lt@!2X*A)7cl;9V2ZR)NhLv*Dt+W##Ha7)lV4Da;pU%1!1;4z*7thz<SEc_DT7#^ zD|8Gdc0ZULDB>C=EmMyC+|hny-#ssFxzNT&bP7tU(p+284Z!2Hkz2}FgbTV!8;y9f z7n^k<zxnDjVgAgzCHyo4K6yMj+5PYoNYsSQpM=g6J{&SRlo}olg%nyg29@_;IYRVR zdwI>B!zvM7*|^ku{Pce{br#kEo1C7%io>qSgy`_kFrlM5W<D6LTIh~)fz?-&_HTuG zs&Oxa5g3`v9Uzsb#(*Y8IIwB~{=7nHOK3R;=6Fob{6JbJk^6%@(eSt3Kr>Wpr4&kk z!ru&Xh0ke&2qp;neh3xx`)OYFC+Ghl7hW;}j&<v*<yK5Ksz_q^r{)oNlpe+D$gmZf z`>yQkTn05diT>b<`&||m$WxFOmML8XC-@VGNr~dbi8SUzazt6uw@P32m0c;vj{He@ z)f{D%7K%{HYf>7Fk})+HPD^2B5e(+>7Nk(Be~Ad}xe&z7M}vJ_Y*}$h?~_0nN^^sa zb-JHk7(<7$R_9c#)q*)WE<L`&L)3kB>t)X|7}hN^TlT2j^c|LKB87I&<wXCt(Dv(F zKVpVxk#<%5(Fsv!rrFV!uJAsx^I$|IH|!lxxG@7&4k#c`2y&nDp+XnTiI)LS<Y+Fc zf0|V{0;ASJWx`m1&m)O{+;rI9QweBJE4`C*guRa+Z8W;}PdYZ)f?gfEpTWB_fQfYN z@=e?J%(j<;!WoJ6wB3FHZlds?Jp&uj6^f3DSl3PYZn6>Y@}b6@gtjs7(ejqzEeo!a zWo?z>Ul6`Moy~DqlplN@uZ^-JVznfo(;?eu%H*x}J22otBd`lHku<G<OJ&oW@$cA3 z3`^JP+RHEJ^#@DdR%7+1Q5GUe!1ncK{n+iMUPNJ$_Y->Iq<LZ`{u?6t-6W)2LsG2y zdjYv((sn#p(ua!bpYn#KS@QM+a>lGinxFE9rCIXz<|nh9tU-pQ5m<u_N+Pl1#*{o) zRR5GUD$kd&8<sU<G}Ql)xi;Lo6?$z(swGov<W@Jh6(or!z_02|R9>xANp6#V^l?Wz z7<7H}aPHS=dAax>ridR*6dReV(eLu1jRSsI_vr4~F`%Ij-kBvxjZ4UpBH??&%eD$~ zik3dOc)dSx;w4u6S0JQR;~FC#LOuSF{4=s5Pk^_n&ohyR_;_^XLlXssPCfPfvhQbt zwWiadR@XBwYUIc$=lBHXsyvJkA(pVQCRB4-J{Uar_AiV}ELq%H1|%-s#3ZNT>Ka=D zak4ISK?8nTJQ)>rC;6TNP`tUYqV4ylJ$burUqny`2hAESD{qn7XmIZHRY$xXaL;Ad zIdCii=hGUYnloZn+^M|>7#~>O?Jdc{yVa=x7`)(vkim_7aYml<KXY8GPG@kVZyjx& zagjWZh#+svP@5!@(h+($s#8%IC(QNy&wkdqUqub;zd7wh14LbUz&`Cmoq=ryB4dsB zj#W);6JNvwic6=5=k(q>TkM6AdTIZ*=^s@}0H`h|c66U?4LUj4BxV?{`}ExOXiIa< z>qlWfZNOIBV`T;R9paiIz97kAVl7~7U*RD}(AZ%!AH}t8o#^-acT`yq+gG-qtCJkf zTl8OJhJb6|SR9V8hO$eOW`lRLh;#F?Jp>OV)#y{&NG6f6-5e%i@_7GjV@<CYnhI~) z6z`2^b{#@@hm*CAFJ=qy0tf87LlbEP1jjaJ+1lT`iZ?mC*4>kVN>}AVTv)D*8+^On zZyG!<^WB?;M^J3cABep>{3xlV9yjgi5$v!3V`1kdPr;|^rAylQ9mFrOswjcN$*N{7 zATnY88eL2SScJpV2+gi9NMXKIypYs=L#iPKPw3149<c=Z?CX6x9JIl&0|1u)#{V_( zUVhQgjrK)>8G3y?Y8k}~G{YxSiiDV^@|u6lU%DPS<)HpZ@^3SF5THLa#On`^0fX$J z*O4C_ucj}2=HXHgl_Itk0k=@l5oCe7S`T^oSC+o@&`Yln5ACKXxx|J-kjoh>6IR9A zS%4h+>*7%9ij!N6sAEWcr|kZYwzD-qCHP>BpnsBTDgLyh(55BXERAxJh<Skmdrc{+ zQVZHl%jbbP&T96htwL*5aDs7Umzg5&cYXLj_#Z+U2U1u%+zAy4@}#>y@O>y70|E;- z$UW2~;WzxIf0`BCxeUPqi})gcePNlX{!D0mk&6=+0a8c{mAP7*+QL5T*BW(Xfd56H zajGEP$%)KpT?rx~2H}YwJcj1Ym{5$2lg*Bd70o!)vaunMP@g7H*MUw2O6OK8iL(Q_ zm_8dAziHgVL6XV|O;PS*Ei^X~k^>k>1t=-&l*hAsHM~<)4Ka6;*bi+syvp-Zp5``G z={L>NcUqSk(?ZW-IN%z1YBI27pg<j6bqTWTR)wuaX^~K=(j$COPuN}aL5*Nks&{c@ zS&M)BnegmkZ#Vl`69~dMsJ&aDGOdgA=UVfj1AbaJ?;tSyM1$hipU<vKLN-5MKoje@ zDIbgwz<PR*`-F&H!x|iZk`Ieo29v1EEv!l6H%dLFDZr)Bv}@-I16BH3I2keV7=fEp z4i-{82?hAVl>{bs06YEOfj9<8Szt#)vE|xj*poOsv!M1q9kHh1meS+e_j80kf>-Ph zxK2yPz_f`6<Eq6_0RHhVKi_iaS*vIQDV9iZKbXla8Xq>n(&KTgV!*=AxYcuiXi4PP zb;g9GPS*InkiHHd^e_dqMDf4o40~My-ZtD>G6I}qAosE09C-AX1G{M!Yp6M0K9;AE z-9@MoPOX6H<COy!89K1m4{y8}J&TgDxZHX}YdLrwvawy|kd4N!X{Ru00{)N;FB8u1 z85>6~2hr!Z&`K)L*+hGLFRgZznNP|p#iwiTo&Rld2akou8ePZSd>!HJNI(Dp000Et zP;KwE>`;MMxPVd-!L*@V8(!P&<XdvA0B;ij-e6G%OpkFcMs#<u<-z|BV?503#TD#> z|3Zraf&nciu?VlboP2n<&xBQ+J<(-9Hxf#~ycL~-b41;SF2=<<Fyxv<mT!=Tw<Gr7 zA;4II*~@m!e4kr47QY0m0hB{=$2;H^&ze|`osvf65gBZ&363fr%HMiB&bvQ}wl8F3 za|FR$y?|@on8adZ+#Rbb7XQ}E9izGLu=(qwX8wx3n`RgF?82A|vOJkM5R=B6s=n-& zO^EfprLP)q#K8=l#%b0PJ;xwaZ8hka<z9R3l>N4`ClobBNiW^VD!D_cj#WMMza4Ly zE4?w<m-X^!XsfQCG8p<MrfsMq%)r;__3h`k(UR{Qt|^2=BsJ`ieC~~2=mQ4s#~@aQ z00044l(b>Wa-x<?i{6LqX0!B?ONDi|ZC#s)P%uT_Mn@}CS>TybY8=Z*IUHUC_d3I; z?UZ|*=uEcyYdO{dlR$Pnh3=_LxIpVVLf3|fycWuBdorP$D?%tcl1ZM42XbJp_@cgr z$KaBjn|x-wl7zFm&!%tdf3%k+=*2>Fhj-r<{$?jnCRv@|S#B<QFeAz<Yv_#?z@j6z zmVD3Pv}y*=s$_@;A+dx~Vg{9YHj6^rBvQlo4hfy<pMBL5lRzY~&1||UM=kimehN){ zL9EToa_&(8Im^SI?JPvHFAvDr04fEzNdKm!D|i^nV{)xioag;|@B#o5YFqKy&-9lD zL1TX?tCXVBRNN;lj2XI$zK^p9*M%^^R%d{~TZ@MqOyw-h{nqitw3&N0fKQlEKRh5= zJbN1}lTdAkPd}|wQN3An6MjQUB!~5hySz?#K9eo6i0|i@Qwv3EfxXEpR3Fq36%l$R zb%1!_1b<UYZOFay{8ElV)2h(;LdGZuEAXw!OH&BC00;9+p<OXz_wwkVTc)2l$ZPTq z!>pS@$HL3js#lz>p4!Ru|Dc6|HHL~qzyJUML{IZzNIhjR+~QK9l`hmsDtJcjki*Bz zt@1gH003kop9|vmyxlBo1fG>^p_U+NLN`uRdLbQ-6be1Tw%>QcUH}6}EdM4dE>F7O z{w7zE9<TL5;$>2^ktT@_)JV-at)w5ucqUBa?`}`OSwV7+eG`Uv#+Qt&Q)TlFF*hya zA9DsMhC@maS=y0fEu$!Ur;UJ2p*K`YEip2dy{dTN@oEXGhCE6jeDQY`A1`#Z*0W2a zEF#VyjTDDD@R=RYVGMSosnXk*Hd$c)YlX;0Cg2EaYEh|Scv-7(XMoP-U+Tp0P6wt+ z!8&`wMUaPjylPv{LY#U}Woj+T<e1bFmLG)TRM-;dHh#2-?$<j~c&!J35S58;37+gF zAe8gwS^er&b|W!3!P=Y_6eD!F5jZB6)_inmFCi7MvC;xc!niDh)LjP~N!VX~F`w9H ze+2}$p>sP?Fn~Qohu+&|=EI09r7ha#h1)LaDDf|yQE(JIAA`Evp|-T{7Y+MIH4cTX zdqa=p3_55X4ZX@}wfcbo00007gKBU!Z-?p04*yF{L+QK1D|oqAScLl0U=jbuk6Q7W z8e8;^c<|m)mlv?GV2T5uWBB!a9{u`YQ(C6$?hbY(QMC1r)-UK<o-E*CLei;DHR!JN z)MmN}XDmEE^M{y$z+G!z4pX04CnX7R5Y<w-&ScHnHFc-%<{_HwgsVtxdy(O|-pk|P z{$Vdt@(W{r;H$T>Yu_n}kX|3};%cMnP!?YY3A_7<zaA=-R!pA{{!Izh3I5-_bLJNU z&~*ekSkKYd+qg%QqU4CJxpLv1pH6`^=mR6<Sp&{++)UiCj>yqAEP2F@S;mCkOSxpU zuMS)iXaNKPM^0r_P2r?H<@7r!50O-`e|lricE7yo`l}N);_k3bxzy`<g{JWfU7Om# zKr=;_62dM*`cYq}{Syh!TLdTPSi7i@4x}8|&6Z`3)iAN7ixE%8xBEO{mrp#LbOvoV zntqy_89f2JP`krUVfJqs-C;Fa#f(~_7TSRP)llWFQ&9ZDcEu{r>W@=eYlns^(d~?x z*^3BNZ2#oowqSwj0E5#iw;RtwB>w@x<sa9tai%KxFPuP^IGq!X?2GdcW&J>6CFTBT zf_?lV#Qfq0;uAJluph)9gFpZ+PT?kRjrnO@L>smuh3#+#Y%$l?%P6G*^Tpv0ZW<%r zYTV8Y>svB&XHj17A&d!T@WgmnoAXh`Jws(KFf>gM5QAu$iE%v-gqkbVvg|hcQ`VFu ze7501+H68+VQA$R07J%KK!!IxAPt1*Rox6F5WyQ|JX=2q`7mG?nNswh$@vQXXE!L$ z*)~cS^9=z$%YZ(2>ype2+|ffy>w;*UDz>Q3pmF2GfYp*B>_UPbntHym-%)m=MtDqj zNPazM#Zcmdr)>!CBD`_x0{v|BOS8;>tC+T=hmr*|a;hW;T%u<N&E}<}#uIc<qAKyA z004j_iyOAW00w;b6hHt(6HIWVBJ18QH%o$9Fh+<COd6De?YS4~?i^9MgM}sGtKD2k zY^Igor7?MGzhhIh9@i~8QB3Jeh}a{XFkw3J<oQDz;Pv0wYe#hQT)-Afot42I-x_Ns zzhT*B_}k;>K|OcIc$$nwVF76huQvEmWn9XapEBn~i~Qz!4L>PcB}tP0Gzr(ru#ocJ z{gt+?snGw-pW1KRmI$*L&RLwsWVerC^c%tkw9<77E&<AJ?5<I8dxAK3noXb~TGHb; zsy+p*th$=@rA1Jgr*XsytNdWeX@e-ft!EJ{``XLsGR4^;dp^*cKS>wiLrpFY!3o}K zqEOE~9>v4T`<t07cv<or`0s+1GCo}Jv9}8!6#{0sG0z9~2?Z52S`FcHw-1W+X<+;g z4syd<>-4{oYI~?>P<<%&6PIUd0*)7OQ_WHFy=<ElBLVi&o9uXET$264LkvQ_FkfsB z`FQ6de0TknY*}`gL1P}d!LCc+Vb$D7a)06&<Qw&88DXv~x3T3CiMaq4Z11~6WC=EK zdEh6HCihPvvdlha7d0HpaXG>Zkx>x1kie}&0z94J72YzXp*GNrt4W3}b*?AJv8St; z!`J(S+;$!DR<AY6z#XspE1XtmDLQWMZQN`Jvm%ZIG0w&Akz*A~7GN6L*cjksZ5I}7 z3ZsbW!1({pL`aQBMw33W8W>8%lCY-bvC{fJ{zoz<kXYH_R$ueW<~P{9a|kL8LSY;c z52lw~rw5<P$<Fl!Z4)>JU<I$Zl`rRR)$s9(C~|(<k;8nDVH0J?GZf~mUT(Lqdyohy zvA1>8nA+f$Sh5^^S0UyLw~WJ?wiE2=_}1~G668VuKRD3zhABD{RB&uAn>cZOooYmQ zt@SeTp|HuZ2v|UmZ1BdGg7%td|H%4kpGBmw#`H|?$`4?J>NvkUYU9|0ic~fPDa1S; z0Jp9i?z$xo&B)m3$Ohu}<WwwMmr?9eQ_IqS>Y>FV!=?I_`Ko`n!NRUO@5SPuNTTVq z#kLp8q&wu+TRA9CuG`EQyXH)s7YxC`{=6c923q;x!eP~a7c_h^547v=u$@ERE9iGR zMrHKl9#O_|KY<WCnr>8(CN_&cTC!iUnZmiQG8gE$9o4l-a^_A!7P{Nd|0P71+UXuV zf3ksQ5eLJ`Jtz2>x`jb{P%$*IE*|F_5?U`p>z02K^aT9%HP7YgpXh8{1K+L8L~XxZ z*Uya)V{nr`T4F~;H9CiLN-MbsyqKiC@xz4+hj0J@0<S`Oa33fqBw$>~5-LD^Ol*=g zVP91kcXS%hV0rZP>D(m{|1$~Ih1+g-th?Qnaxx`x`~S>3n^duoQffIG`Ba6X-b=0S zqrAUrc~-(LHVu;qAowDG&1)(!D$%eES8W4f4ZZsSZoVWT-By3^ta<1tx)q`Hr;f0! zm3z8a`x>yzbGJ!-k~u*tEa>WZ0+Z0qbE3nRn&sNb_ZA&D0sxK?&(DximRtkRp>;^4 z*H7Y80`9V-{@5Y8H>e)5c2(~R&D>#cb~#ma!)Nz3`qTp7XGS+NOUQKPLicsk3+S&6 z_+}-ypRgnwB^sy9!G+`o%|Ly~QUF|zUADPFUI*T*dTlc5A}6r!5Xb_o+-AYEfH1EK zgeQF&s!Q>ie1X`U&p+;FUQs?gW&V?5$*&~67Bjnsy_$B+mvInL+G{x#h<8kHRii~* zsMh5y0dCBH%GNy1G~dwR;+AF<<kOEiFXmuC&~d}Syj&XjK?jsJfnL57%F!=dudVNr zm5~>XbQ{fEEFg^9^9QR)%%pZtuL{l1$4RkfNZ9BC`-g<{nNxSv-6ZX<&j7y$V`ZU+ zdxwz&LEn;Ha`lvR4szv{e=#b$cwxk)e}F_4{r1T!^XAjLy@=3?@ig}w1p)p~)}ET5 z83j!E+i*B~24NpB+>~&#&}9^O9jscNmPPlCl5eKUK;+mwt_ty$8drH@TP($ixJu># z>`rR<`KgL)w?nydRl%3;fzW-T)gDk4Tl8`~t#fBag20JE_)&lW001M=!zX|^?kr*7 zD3Na?_cj4@1iz=6y%v-M0j^m7&uEFGu9L7)P}R^D<=n$#W}IWE+3u8aCC8I;(rhEu z*ma4}2Plf=N`1b0O2L2#{gq07{a?NfjdMvnlZVsK%P@Bxu9{HWwLsqcaTXvfxN}w} z)x}pqR<%sXs?4)kQb`d?AS5GK)xGMz(u*5Cx}`66%}Lqn@s<J09TG}M)13R&OKf@1 z#u8=g1UGv|01B+c=bkM!ytVUW`Jpr9#I<cu>BsgZcfLNJ1f-Dr1XdP<uovluo<bOb zYh_$%HK+@RFt9(aTzWK`^Fj7CsQ-z}KtQ)0Q17u#7NRtE-GA&odjj9Bbx4bM*q@I? z>HLIL1^+%fo8I89k)@D&UFYjfsj?J4Nr4`LdM2l$N<dLcNSI%64$+3>?r(H0WMR10 zm((SgV*$&4x4F;?#J@Fv0JUETUs&?Uuv<t|<g(!D@C9tM#v@EuwAjf9fAimt?u+_n zM!+KYaoBtP-Nj5XAvVvc0c-pso<wSZB8+{b-&Y2>)>-?A6|9F*^kNZRbcwF31w}DY zfhOj%*Q%z}W;`GFnQU@?4mI4WA7#vopUzvbb%T=n=R^!HeJYIh#kVut#x0#$#$HrP z8L6B(PR~Zohhn|Z_N_)rx>cIDtS6=<AG(sKAj<=+P^nG1Yo`CG-w^;S1G-I!vH1Y6 zCxKdJn$iyYHUkFkm~E*u1w%f{lVNCxe^%sxF#onqD{w@cB>aqPW4kR&u2O)lAkMA> z+%}RHT{!ATTH6$7^ccJ(;hs(wMe^4`7`As2fOkN6yl|>>8sdsiO@DN6eA}e%LR5Zk zcKg1JY9YDB4YujQ<q8AN{mG$A=5h!Yo1$v01D`z<TfQ7j>JV#It(VP(R51aW0)Q;P zE$yNw$;_b1t$u;bS~+vp!foS7XP#Jd4peXV5S40~GkFIBnv&Od76;Y+79~D?Zh>8_ zRD^aXFxOlib+J=v7y=L3+DsuR<fBmD4Jh(A7@;+k7Y9IwFr)bZ<5=|m+pT6Rn?0}V zXg48&cV#;PxERqBz*yBgvCUp-s^c;&G+7iJVyc}?)-9i$T(MJa;&%!Xu-{ZwbU~Y~ z>^u|@MV!TcjS?DT^(kdFBifsNeAp~*0d0+&{Jy%{>u=zIU&jlRJMG5JQG4dXn_3?( z55J@%(3flt+SANfgQqM3erC#>eJ3dFS`{VLG9I_3O1#6kC|!<QKa%*~*GAm0M`{wa z1aY*zvR@RH;|mv-4GN^yq+P$*wnAyudcGT>6K&?y$Ur^tGIv{;;FIJfRbj8;j1}ES z1Bal(V(-u-R*_>*l`jC9`~5diAVQ@~%39YrKdFhj9o~H^2sF8<!lntpz!zKxR>L*M z`oD27EiQ+L1M<HykU$NdRG*%;+agpEZLo{N{q!IPhb2}E(U<iHFv1<S+|~ziblT}O zx^+A7g>=<yo@EOSz4IyLuPxmes+lP`$B?X0$anAwo5}4q{m7?b7p5bIOAmfjcy)p| zyhv9}Wb$konZX1fi;F%tE^5FfT5mq*NeM@kB5d&Wl$to8BEJ+|qXp?MVeUT<Q^^N$ zEdAcxmgsAInJbm#g0)wsms+rAJo!IuqnFi()S|fZDm@cVRLZ}=@?g1lWenXE^bbjl z4H5$FVo-or-W857s@*)SpO*8l-(ly&Bs~)2cyYk?cScc=5*(S>u!D0nACA(2t;?^# zV<S=Qlg~eb%GuRs2U$s&Oj$jDSUdI%k{s}0TWarIkSCYV>!GCOC#pW54RU-nGcF}9 z&L<;lsghD{>ENWoNkRqE`ofgVzEMAOjxv{P4%jgxpS$XxwH|$q*lfy5tJ_X5Xl)5w zJPdfc=;VgZQrLRV-Z9~>jQtK(Z<?TElMeR9;AcA(pn&X{k24LutMy~{6guz@Gu%x0 z*j3k`VqR(sKR|MsqA&wYv{ZKLYXK;Mw~5>jSNH)=ee2@H;~$|$&R{E0;shaY;Y%E< z8zF1kr{@_iFS;A%TzF=ZXG2MobmoFcONEvS36ZK}P}SUy6SKSq?})?cZM$o*E;TD6 z04=7#`biA+E*{FnAT(JeRunS1ZI-e9=I2RCsylG5L2M43=Tu;{t*tVs4$bEi+p@5a zB7xqfTk)T<OS&L{*hnwFO&6)gpo3I|<I{MvSYh2(s($uL-fT={Wmzk=dc_D5E|4Q{ z7e>uAOTGeJ=j2otKNJN)3%oFd?s}j#h|+1yu<d!iK9M;OzL!75ped&eAF7@siq`$# zglu0>*g4;fPPkKN298V|A@(|={k>ns(&*2pNTrd1By|u?UZF0g&z<n0VB32n#T0Xi z2gGfs(8<-E>~7jyPdvtDwIH<mQO`~oHE_`E!j4$e0L2s>jLj#+{Mk*gpHu!t=7LC$ zsNQ#^PwVzxO;qSVRB;ayvWT8tesmn6*F5ib<s|zh=-*t3ICKPlH29L&iF)I1O-+B3 zyz0qrO@|(Z9U^%ng7CU(p1zMneMp`377<6KY)i0#Yf>XG%W=Ac=l%S?wot5B&iMKs z9Lx5rh)eH}w`^7rm|62Qsf9)pz<KD~#8x9(9nMc{o%&YYL+I_W&YFCy)s)>iBu=_I znwWcxFHr!4J*3sfsy^6AC0ASJ7IK-Jx_K_`EKQ+(Rlz{EUy3<TX>z6a)9sQPoztx% zPrfJ;=pr}izMS@??CkR!1gxW=33*c%_1SaQ!1FH0eLODoEMhD}2z{<6yuUgb@8rX? zGS>t&TK?2fXtE2j2Ga+-AwocP5hBIByij&HE2S7;=&P26WT>o0y;?&%WDugC@THW8 zwJ?5GDQHvOilN9^lrCek_xUic%%unV<A|9`Jqk>$L;~A9L^Y-SINO<eXgP#FRcdnI z94))>Ush{@^JGgIoQv?EP3R4ZLm56`9%ir)&z4BPAP_oye(KJ{ll9aCe3Q5k2ilqL zgTK#L%(24m(?Lp{K1j5oOto?i$2#>Oua0DDul&ylKSFG&<IOlv-3d3AoVc@<k96a- zH*Fmp#}i!Z9njaMkpH{SAVTw|VY2jKji#$qFvlC8A0MeZmC7fsAZ-(^faW_20wa&9 z_I!H6pyO^8#C_vs>@HDs9#5p>Ls(4V&p-3Lr>Gh#5)DT24+6k(a70O~aip^%yH2#0 zK@qMcu7wQRI;VRe))<}s8`Gr5A~E^j_0zbm;rUa?uv@=4Hgx3a=d@;{NP<Bj@o7By zTlfL=?W-%mW(_!B8XS4^XScw@!78Ck`$l>m<79_OZmUWs_m?!}-D#mThn^?epJ*s^ zW)*X*^-mJ;OI^}S5}ua{!_ssCjRH5prQ3?3fi59mDwEM6IgK?-{dHyk!B`aKfWGpk z;huPaq|^{?cH#LrCt&&fDVM84c*vEeDZpDS5aA0GFW3N8=v-DFnh(yWmIIr6b9Tmc zlaw3@0~GgwCBNpZT8_!Sy|YPA)h1v6D1&zx{|+@)_vQ9Tyes!>M5Z*zMD*Q;3oX!w ziUX{L!m)f%i(gS&en9vmti(Ep#&eH31(!~A`pK~L(Euup#eX(O&5%dkuGL=@x+PP$ zMvFjB%p0G+m$l_%9bVtb$T@%SGDDq=Ut6$0^>Vgq`gl#PQA5_*qw2~U*R6$CvZDlN zM;Perg3e^MZ}hFJbv}KnUFy4hPQzA+HLxBFc)r+>Zix4A!lpXByv&`gSJ5k`>bGa9 zsION{%fk7M9q`o*1}n=`VM`v~oRk-tmd&Gg%dfF(7&Q*6!#mbtuCP&>R=JN;dl-&| zQ?Ao$Lc$P-D1%t1n<6!7U3#24Uq1_~Y0cj)eYV-T?V+v#m`A9MosmJ;cmqnsJuCxl zhg_47#yp-bQ+4aDQj}s{yT2n<cQp(efjedE3yIzmbATGKT*j9fEa5jYpXJ_c1aayr z_t#Ft)!x**Le_+U!H4e~<7M3YB#QxC%jn&iA*~UL@tr%?X%~1-#};-2Lb=fl^L+Pu z{qfpSI9snY<HeL{WEGg5OKZ~EE2{X4cWT|%t<I3Qga{0cILY2`+~?|P%Y^rq$uWC- zGs*DX-XF#}^r`Cxd1{k`gb_cHQL+Tj)O&v$?HYuIlubvhVhXX<f%Z_tGuJ!LqEk$> zXFZXj+X`WRD4u{Dy#U@pxs$&Py=AYsqZtTgo1UttpijHPyo&~24wlqh(NROu5j0(| z4_|htmTt|4VN2diDYmGxpiiI62K61`hvwyN0Z~bTwvZYR!QGvQJi9xCrd2161DS4- zL16%O22ppK=%DG@pD;5bcTiB!!)9%d3nOjNeY*~W@b)}rD>vm4zvQ$_bmC`G&D(^Z zdDQU!yQxT#V}o>%q#F3~Ww$rOlNGl2$i;Dl_mjc;0<f0J9w}A>L+2N3(QVDwHJ6<F z2Ll8Kw4hXEB4EV9`6YsN=dTM{=@2K^q+BXt{<2#FAS)Y%m3Ds~4KPUL!#D@RV80*> zjDS|kGv%VS`@~AaFRwFxqK|dF>s$I&8s8qoko~hQH!BT?4MkwUM)wx`oSnJCrsihj zQy7_KNtzU>Hi`{zCfZvJLoz<W=rv$>7)wBR+48$c`&Tr7@N$ybKcJd5z4gf8LItj( zY1Y{*CWk_QUqvju`OB$G=IN2aoSS6+l%Aq*__flH@WU-_d0E_J+MYmvc&uk@jA=f; zg|ezB5Ue^5LWKo$NjaFNdMei<lPO#R{7Mw4?v*ANf)SWzhDwTU1k=Ad^6^;!b?S4M zT9emk5DCV%x*EF&Z=r9YX@LDFtMeULg({-5SoPWj5R2sz$^*Zg3y8S4GHR@m_zZ8L zpwn60wo2_rbg9l!NoWkmip)6#>Q+KYLqeR-29hWf6M~#=@@s!lWiH^h`Z1+o0Nk}R z7fmpg`2SB<0x23h)Y?FZy#5*Kn#o*_ONVS_d0d;%dVkj<$Rs8v8UI%filM^6iX56- zfo}5HzmDB&WkQi}te)f7{7+E=IciDVzJa4M6WCf^#u<oq)lL5t`0$?dXhHA_I<L$` zwaZ(++)iPLC5BwFSu^ygv~5M|62^=*3>J5(Km#5ZFOs2T4^mMv2uGjGR#{EzW^<o& z3>(PgVf&tF>Efs03trwr(Y<xfX6ZkgU6X;@vk7vf+vl6XMKcaH0in`l@IG5jiy-d* z;ohm9E~?D?A7H-~4!7ERVD;03{jL+CcGg}Z?2}iAv*?PA!bjRs6^gzofd9^ss=ss@ z=~4|vm?t&N0hIAh8PRg-9T1)T#lJLn$)Ekha0x*O-YRcj6%*_T>*0lBna^l{{Rf** z$gSuc-Yw&&t!*?Cz$WB=drN^f<NeQJMoW)`4joYBYh9SPs;SoXvi;Y@e(!>eGo0Pf z@Cd0$#&509$CU)WC}>Jhz#z<hjeRH2Jm_?*5secFkDNaE5Jj`oN3RXFl&#~mI21is zDkmr;u(+uBR4F@3);UXe)=<LmiarK)v|v@uX-sLtW4}QDlNWjRka9+U_}+4k&nn)5 zylQ3_#eu=JTmi-ATJ|=7y(UXm(fpxA)&%s@4#My82u&jHYlUSN)qu4kqz8!xP&+m< zrdFJDxko$c$g5d=s9aDqI}Y)rSP=G6RAO?GC1gH_kh^m-R6V8ObD>7}Hu6GaWAu!9 zc=KT!A!OAiI&@#6O*!;bE?R|6JG<ffxK=7?YHle%T1--tyKh18gDV_LmJG@7UiRHH z<*TY@hk5Cm6{_%f0h63pEYr};r|M-!kEQegWQ6JU9cSNnP%0o#b^JJ?qjs@o4uKqr zR#ZXtnqFZ7m5$JX*yGZO^K>ixh9{c}*{ToX#$wQjve%8UG<S|g$A#jzETzm54_@n1 zg}ADf?TryPCD5>@s+>_U+2Ko8JbHvK53Wgjh!!&ZoWnhwm^O#DUS?lrd6C<zxDV_n z_|D&-%m**o+f`AxT_gx@oN)*jFnxq!mWv%c%oxl>z=W!*yiM57vMWr4+@`qza4Bd_ zci|p-e53!2Zv_)%J6^&zC&P`mn(Ss1{&fEuJCyK%R#9w`mW)U!>U27t5(TtRFG5}s za5_Q_@+KE@VmQ=S1Wh7u?@vAf_OYwN)g)a@4zP|z6mZr*I+tEuK@s|mh{EA_64;sO z+=ie+O;M~cqU`-WnF|C8&2H1R*L=XsWP2e}uT{w@ADqqlKmY&&8)fjC^s*tI^FIzI zu~rm0F76#W{Vp$rZkq|uRe-6R{NAv+lgRC9uod9X#3;KWu3s0-*y%kON-uuI&NaP4 z#wF=>&w>xaO1%c%wiY=j#b=>(26-Ap#@i0Hg0$zd>~_LDL7fOFOR#BUTj`NhnuESl zvR?#>BfXAbGpV5Fdd~%p+GO4_1lD6{=z@6lQI>t#w4e42eSJAq_T;y?P@X7H{#D?U zmLQWbwU@U;MLB=(UObH{|4cyZKe`{QSdLCXz<!g?xa`hKBGPFnz4x{52s~}Zo5D}2 zeMhqXn6pkPZ|{!>hrei_4N-^e-J!hLC4ou$^}ichMIwBAA@$Y^dDBhG@VNvSTFBaR z#U~q0s4*iC-&>a-0E!Pe`zrk=bVN|yp8Hdknk%1Cv+z)1St37}yn+ktOeze(w+)u! z@UnT*>1<71@U=NS8)cP9|I$5L@}Wc#1)Y1i=U14!j~vddcUj*7%S!5{`0PJrTIabF zoMxx)diW@ZnUnw-_YK_vQ!nE&nH8sV(O5S6_EU9-0H?n<Agw{nqy0bfHpILyG?RAn zyFhFOh=t5DobOo$`G+O)40m%rzm%o_2qg3dMP66+s8VTYxV}<!g5O3K92s0Nsp1M8 zjImJ6le%$B4H$E0q_v(I<at+LutU{Wj1g_E@+Wrda{pwK^NVi2P#(DD=FZl4#=48q z6!z8B0efNBF=XNJplXFsT@!ZV7aolp9S58z(iI5*(=pf=ZqBxS+YCV^_B<~PVXRgB ztBJhtC+^_kZA%7HV?1XIQfUYDOtptg?*0%jl4T$C(CwrwKp>kwi56jItFjJf=%A9& zO~wSly+H&|H*2<^%C*O?xDDpyLjZ#t-!A%AEDq{v5@F<w5RoVVA`lz^00000000@K zd}j~c*VGmt)UgcCpodZDD%W`cj+(_Wq{PrROGVka1S2bmWy6KAW0s6byRaCs#<{BY z1*xV|A}?trj`7FTKO`QFmlf5si3hCeK(wZ0v0oz6S!QhnF$2)GCaDGvqG$*0P`zv$ zFn-!l<9z+3rg_ogF~zNhaaiFE8^tIZfdyCPAp2=TGszJ1b;*P2B8Eejj5{)eMu8&^ z({|q!jg`h!+G?Dc?%?Apa6Zq5-x%GCB$mbbZi5`UKM$T=QnuA<k3f+<Z0$~ZkXyh= zexuGwY+oG#caE=IhJx1L$jOk+e?*yRFwcn%Zh=-9RY`Y8k^wLYl}X5gYwjvp0De_0 zgDy;QeaHc$TOq+=i08U^Bh1)5>Fq3NFGrxnZ=0)v6|<o*7i8?I-@L=zxO@6{Orw}9 znBZ(=Rk0Bs*Zq48<e@91KN*eqkbpK{&dg1`zh3+uA<e4O(`wB$wm6RRp$}{w7Y$~S zP<boBngmFz;OTLs0_O_n{ftHaUpQirMyN7ytbejpJZ*MEfw#Y!=Bb%6{YT&daf4ki zKfN>7=`}e~I=8@!eIQls#zr7MWn0~AjZDL9NGA~ct{g=b+?z2^6?iFYo4vz9j`FNW z8mrQ8*0)f_TCZfD-B~~%XLQZySD+tbiyll`G94E(Ip;m=ftq6_s$F?~SnsRb<Wu75 zUU$O!Ra4u_EX(uxXQ%FW4i%-gudx>E>{HKOJ?zT_J&bUhI9g<bqlP~R_Y3kDQvy~q z_VGL`oY#Wbb%80ty7U&90RyaUjewsfcj0=dm*QuJf`A&80?NolIC{72FNE098|v5j zzzPVn0ivXtNxhxB#F&4nm!|R_ed1#uX$xCz&r4Cot0Hws>z3P#b+9Q;r1%4Xg2*dT zt6M9uprq_CmB_IRf9{&)EE^<DP*zX!(hh)U`zUDp-~a#s04Wg>cdZr_Ix=z{h@)wK zi7W3FOm4#!FM;YRRo<^3ll>SvPG}6Z6EC0Fkig%5ZQOx(nz82v+V1O|<)g<)ze~jv zWKxg*vWXMy$|-W_29=_LlN-U$&xfw&z+Nd!v|J@Gl{%Wx)<Kl~#~7uQ8A&Ip(2v#% zX+CvTn&6+gc(mL}R*Bgz1u#>iq%|hKI1nHG?9Cf=DTBJD1&llZ03Q<-rUcl5>hz-c z;6ntH=1=20bv0O_yx=6<(J&g6p@kSr#9Ww{H6@lWsT?fZ87Td=zvjq{SNV<9#}FR! zxcsB(olqF;x;t<Np;m?j|3SQKx(+AKl#qCGil^#WE%Z#naySC_8v`3`yQ*_>^eOp- zEO_DUONe32UOtlCPNTGt#!aw!Ul<oA<I{r{%>F`Rup|4oFAJZTtIqOG0%?x-j<SAP zP;y<Ev;m8I@t48RV}WsF;cewwOr=cX2hv{<*B+1*gs1@Vvtc2nS)&dRE=Bu_@ihPA zGzQeM#+TWqGIUfj+Pa8ke9L+1BC(xf-__u8okLNr9N5GJC^r$BaIpK>#JMWB{J&TS z@VT{j<fk-gTwoW7AT!=pLwQK3FU_tBi()k4C~Mc!?v@E1F+imz12|_LGy{nOTU#VN z-1X2VGWBonC)eUM4qnvc@!nu#n9_qccgPr+gqsO5zA3|P>rHiKhE+p1AO&Lp0dp%J za3cvcu2;+trBH6r9f1`L(H4iT*@ZuN{^|NThid$70mM5<sE4(FcMxD}iBVWrr&4>_ zz*BKr)-K#5)~{HKzQ84Bf~wJxr@$P_I<vxdmB~MAqgO8OIQXlY#e-gLZM!MQ5~=k2 zZ!NnoYCjs86J_|7hM#+gATL3=glIQcl}vvMl$4!h1PH^Lw+HR5eYiC0%u!BgbaQ;; zka`t1D^>uY%U}Rg{5ZU$T91(k{IHcx887=>-E{g^lLtgLc9-!PP>I-{I%W-99_h^O z8pc_-dli*0(D}oQu(UQwEB*!Y=>W@gN~z&Gd(YdDPH;Jog7O|tYdE0#>NSGrWV{rz zA!QVgQ|a7Q2C7EbcH8-`0AV~r=K3rC_b&>au~NrJ-@OeHi3^1^1f47&q%8%`R{jk@ z;R6+Rr5{nnwzZ06QOCvPAzZbVncC~rSK~6YxeMn-timxC=?Nq19;5ryw126W=&1WZ z>)*|QrN!}mwCE)c=Uq6hl)Zi8T`CVTYNGM@YkMliw<6hW+HQ3e4!Wl*wg<lfBIwz= zv6Ni=x8XI+K4kcS`}<xrcs!8!jh-}b+1Ewx<I0LMn4CkMKtIbLZEGCzF2S#ZQjs%q z`}vP+^bd(PC_5FZ)QVR~YE?sh;Dx3noym}p4v)5atqK=w;R(GPc}<};==VwS;xp7X zo7ZbekBDrS2)<xN$)Ik6bT?E^HGi{HA=K>xDj#W;VU@AGtZ%?tJzkv{&mX&>y01rx z{VhB70-$SY{J9(DqT=eFQvM+71N)u}de<;U(wGV0q8Kldb)qbk*K+RmQwBzpC)KX? zHLQOcn^L+kDQoOJ1}`i34fpA6hVdE*%DgWh-m*7XtEgz+UYvb`o@jZl%yeuv{~PHh zzjAWy-b9=lHq!f9{m$C1Pw0RQfH=i-TaaYKtacdMTDgL=yJJQ$N>o@OCU1K&VnAF* z))6g^F5>!Ev4{b?T}3zDLQfE<V<RKP(*;y=x2Rle(Yn7rO(qKh8-Q*hUBd+5Q&lyA z3#rcxLU?$ZHLM#9%ObEY<HRC9dRb4N0)RlD<Hlf_TJsoeCWXHK4blLgOML}^1b?v` zhm~n;A(S^Wm`cq<9N6w)3ai;3_)s|Av`%J4zIBh2`B5Qm__P60&C3Y^{l)Q`MINw3 zrSlPlR$9UiR&Pd}P~&Ddi|K*fz+#|#mt-EnW!=#Ef=TqK(a4|<D?u|hl`nNnm-VW( zsU&cT-T(8sN)zyEtChc0gkUpQCmrsJ!74}zQ#4)ySYcq__v#`Uhe^7e2C;3<y813e z{{M%2ZD>*H!cvC;`F#?}aBk8&((8Ny9eU8Ge_`8&!ced^rL*D_X2gLSZ1w^R#5|S; zWI;3N5N(TMXGN^d!wleXFD|2WOf<p|WE3381qPTP$2#Mv_pb%wUeO%Y@sWMX5!vI< z*O7xKgaK$gm&4OaCX2k<1)xTLY)F|os~<xaBPbE?S^|Gl6KPODwjt>|ZOBO~UFx<M z<#akPslopSe&)<LP$r4L&JGq{Uk>o~D~?WHv^&gAk*)@RCk#^B_&q1Btk=a9`r=_G zGw&DBzq3~Oe^<ie8D_vf{C)<(^fw%6f;~$mT&@@m4y*PAV(GNB8tQk30Y_hx7UazA z`adwfj$&bkvfO}<91>hSjet*OyX)OtP=Z`l%Iyk{K6P24`F;*!k(kwiEK~sYnksd` z=d6uZY50%|ipsDm#f8gQG{Q2+YjC52qE;JO9fpH*uuC0kTNC%w9$*z>!sV;dVHsq- zxHL0`yE@+xMWND!+of?Bj%1*}EA1<@n2;t<1qSP%LQOI_@DY)e4Qw~Nf33(r0j0(0 zT~rhbK(l$u&_>CL2T?P`n5Ua+KnRN2xR`XA27K5uLARqwz=v6mg<<hpVmEWnNizDh zsh^xCD&hN^L4y5`33~Pa<S&L*<hhJ~gs0e<1#rUpB7*8ow>t=CHzZ9>6vyK_d~HQ( zIGFBC5=r<xlNqGT@=wn5sHMZtrpf#zO=Cb#iA4o$LH)gXC$K;#U3G=B1Gq1x8bW)h zH;yU&z`CUcBh=hcS3-$={#{1MRX`j~p-F2|G!Z#*z0Q6;eSdMvdzx>5Toq>CTaENK zu7uc18V;B)5iSyEMhZLNTG$^K=plt~qS;5h_kbG7b(Pr<)U#4`#JIJ|mujcHz!o}O zF9bNp!V%?lXy!Y*Y$*KW2H6>Nj!LtA7N;PWCJQ(AWANCODSK*C*5XK&ibP$?wV_A) zSHTzgHr}|7*5Kl`Fs^_7z_{Spm>6)b!I$A#E?W?l`*I;ZzWRElniT61&!pQZ5yh%X zd_^h#3N_DxfBdi8kK@Q4zFN6R7w>L)ft4}X(E-;mH+{|L&03y2dK*L*o~hmsI9C&Y z8(S9=6EpK~!*bL30?XgoVvr8Ir3)xsnNxcPhGaNzG~0k_0QOi^OFYMzeBPPKyvpNF zDgeT!Oh^tza#@}B-C970&>{O$F(_=lFeH0_uGuyF@AtS)TZWP<e5H9!9a^bKmH$(l zOWPAht9ooZN<8hyf_-E}@CW-W=*`%VODpZYz`(<crFieQ5%Kph?1pa{nFF*s1pvQN zHTYt;y_t_yQC)JzMn(RdOk;6#7b+b)CE6auDCe!wF<yPcoAel^I}2V$f{T}qu`q16 zAuHZlw$Un=?p!ti39b6}J(FlUYp=UMWE`dYbk1iky(yACT9lSOv0M<>TO+#FjMS`< z|KdN1!{3*BJ<diU7g_F@rqMUfNl$GoO^l)VN)~H??L=-$(7Ch2vRz|qh`Eo3XbkP= z!V?|Q$|!^;UXr+_X#=p=0&16@tYZfow435#*g?4}uvhO73>%IR?=jDm&}0<%MAZTA z3DCV{Av_6LSgXrKFY*9l^Q)H7hRC^HC76ZQxdhbDe-K~!fHSK#5r}_lIQV%hQE(Fo z{5C*G4H$4C4#CKBqgBw!!z7rtHGlBEsJL>&Jjqb#d&2Oit^o3WlX0Dl?kwlyKc{kT zL6QUGXRVSAp;)1td_QKZqRGXP5RnP8h1~~iPOs}PTKX3aB}ugmD3<gSew6s#8P5d+ zice(sh67FpvTsIPsM;4X8G_mClVPmlOx;@tdE_kaGM;(B1eA;b0_41E&^vbTkI68% zWBDx18HvP4o<7_cOS)`S^z{L@fya-`Vk&(FMo&Kl-|h=+J~6iBhzvfK9FE_hxrY9% zCVF67*GY*={~XuH@Hx{YYDrU)vc4Wyf8P2UpaZCZ5O}gC#<kX~))c_72}C2i0^Wk6 z_B@j+u6GMZq!~-<;sP<@WyZEa|9r?xql6meXe=$#6dun1L-mVm0u+<$%dv-ts_Vs# z==%qln}l&m>R$%u>f5%La=on6Mg<?lr5@MIzwYG?_>VclS>z?^2tIte^a6$lYqW*o z@&=HS$ejqQAfMgmA+vp;wXEh<ZaW4jd2DII^F?z+iDGL{O-!v5B$pun^Dox+i9^l9 z;TE_SmaL$2zftZBvRyu=y<7!#Yu~g|F+8r)MG|(k2K_QuKg?`OXTENc!#9M|I&8_6 z&>bZ8zyJh400001F%SR%0r<YLBrB$58>~EYn2sXkAM^XpMfs#R&@>3t*SCT8fs;LB z#91_-!Ayc6sE&g|J59<{@A@(z!X;U??Tn+G&+%49MdR&0FA(1DLL?cQ)CvK;3ivn! zsr&{v8g@4GxITkf6=>A^HL(J#ViB}+0l!K%D^_R8{BxIIZ3X*+HCX1+k0+kI*Ohr? zJAm9}p`Tacf&?{OfPz6m5Su;cGT+#2{h35#o1KV^nxbhOV+|OCrlno3&m=hcALTM| zjN~&P+1qVJQd}()-u|TW&WTMH3KI{bd#ga3Vjn9TX&JwnQCbS>eJi;l?S*<MDy3a+ z`XdGXWsX~lxoZper7qS?$*Y(*!uR)8_$~m5;Fq6wrw+(0)iwv-!kUNq$bV#*d)1oA z&CSqzyN^vPg&L<&Gm)81<Zt`%&!Qh3a)|=d!T5z#Uti=heV6-aU)O4PQW`_=9NVT4 zJ;}?XH*Ur~GQH-Fr_Gtyi-=r!PxZAUSGE<fKY-|D73w|7Z2S>XNf{q5gqiujCB<2) z;Tf;bg@Dx+Wn@>wkp$tcxXGt=Vfc5Xk|PG6P9A}L$q4x4xZ&b@SBn@E;Ci&_v=&5_ z;+5SCV9_n&knl6!^q^9wTbV8Tqkkyc1nvr_%E)?+pp~FW2bUuJe?{mry1k?GK-`fC zB9q4<aA$qDz>aA_+I7O;COi(C$wi&~9Lz%2-xUZReD!6g^Jzz|{;TimcTKsms!w_A z@vqB77ZvAqWQr7sajEQLFadyI;Z#`?c?x-`u|xrqnYM^a3E}vT^-JPGr<U#1KG9Bb zrB7TugXEBy00000C1Ar3j(W3C&@DTe&MvMd8KA~%ILv$_qjM31`e`h2BwL{%bp$f2 zm6>VB3k<`E?6Y44*f`3o@_49ySYhwXqunvWpHcHHjf;9(S<llWJhwab^82q-lM21x zmYs9-pA23_4@otw21VrxFrOM@I`fy*urM1&Ex{ZdwSre8Rf7Rdg8K0%qKh~Qq6mw# z)l{A^Oo)b<FJ@-=KtPtXdLL33N^Gw%xf!?)YF~xYv5#dZWs*obgk2U#3~OE?U;qFB z000}O){XgTTuJ}x6X*#Lfc8D&x!>NFXavg<l(_V~{|b+NPD<+-a200M<Q#~kN8aS# zweA^YOsg%kc}36}0wxv04dV~j=OZd^w8l`!g@WWr*wyr_RP;mG+hPk;9yIDVIFU#g zSGcH|hb({-p{DzX^-=$`EsYf<9-3h&i<_5o3Pv!4>LCZgzqPKrSDhSsJav1_#_fZP zvOQ9NcLluuv-B9no-Vf_eKfn0I74~+Z@-`{g=Ua93dBWW#PVOf%|_35or!t71~Trn zqX8VI6$Lq+Dx3*XhvrI2%z~u^U2cXVlRf^$^z%hV1?um-Q2<-tgo?7Sr@A!$5uoOG zFKV>fqaoEM^xm%%(JG7L5jj#Yb~Ba)d@5?K2p{9nX<wsX<`368w#<u6ZUkY=OIhm- zalNrHuc3$#1S9Rmk}^~UeA5=X4yiVr(E~608WX8Ow{bO=?|e4MOQzQScWhfYe!a;h zOv}44a4>Zw-Cd{O)==taxh96n2!<`<Rk14FJE$t$#|H1;7pw@;)&UlpIYrO-GRU6B z91I<7+p#vVif9ax8g@X6%TPo&z0^S0#=U-Eq@|n|`7D3T@{MLKD0UWDo`wb33@>q- z>Y5mDdGW!qFe_L@dOcA!2h#uEpSxrDNayb?(Wh_7%M?m|ziSQ>d0JJ}eQUjz<Xq#` z3$K$=&>Z+0O*xhD11_&FF@}^+aSL0Q?<b$*S83~^&lHOhw%D)zy#+h=#V@A8id*pm z>Vt#dSP=YjbnQQI(TtTqBjU4e0C+Oz218OnqQb>9^25j^XJ@rRsrZK2OY2T4Fkz6p zC^x^})^u}r!W8}~u670Wai^TgpghM#YvxPqafoGWL5V=wvG2gKx9P*I{8}rk%xn~G z=hnyx@6L}eD=RuurDX@tsx(9L)?`bvf4>7@11tv>p<3@%d(JAYWm-LUjVh(BN@&9N zF(@7VJ!6|;$4K|>he0*EEnHbvZrg_2Gqv*iMXwm#C2oP&+M96NZ-)EYC6+ylA-DKG zbEQwqkul%XL}4ihYX!zLoc|ZLLYq<4w;FSVHLCHmurjcjghn^=)^(#gD)f6E2$9O? zR_m|}Rle#t`(50jxf{^Wnjw0iuW*PBrK=mU*67)fHE}?9cY%DgdOLL?2&{TQYSzfC zq(T!jR`{OBD8ZvFu^ndIC#hs^H2yl;15O$UDbOjTEW}NY*)I|nJ>719L`MYiVv|+$ z!PRI+T+SQIym#l~sfO4dPl9lQ(G(p)T$kuRaOzUgWccs5zIf826#`L`@tsgFbfKH- zm*#Wgv-lZtpIH1Z**r%PI*qBzF7yb$lw3UuXTZKrg1szG(7tOe9t<QVZR+Mw0hG5D zJHcHgi`9z-wItwuJg$3S9u5#i9`NrcqU{GR2bn}-jfQ@L7i@ST*iXCwXa%&(y@`=i zmBJbtc`n?+@Jp8W67_0_ub#cpJvmd%rBcG6FN_Zxh}dqZ8tkfDUt4rAq~8(-qc*#9 zIo_k#p7B$_T0Dzc6_LI7C-gh0LPB9;-r6!N^eF!J6U~xA0Ud+ldws15^oPBf(7xxt zA315{+RoF+K4UwppPAoIn~ib$W}`arc^h(;#6Fp$RPv^@1?Ui1l}H3&D^SqTM6|>( zVSS+j6VdSQaQ}rF{u}{U`Y4sMB;LKoG6)-E@h?Nb5881=mV?!ZNjsO2JUyoFiTlr| zeRN(v=3tiXJL+p|6m*)4oT?uo(xF@wPB0f(@6N7JfsVn<2Orm(se={}j7p-D6OOye zP;#Im7N*Y%H)@v3Xgt#f8mTkStz5B@P$v$xLoiV!9^)NWSsHvE$$}qvvb!UI^C}q` zze0!u?eyT!;0L~wbHJI2cTM$|0wm<%yH1nMU+U?1e#AcRt5N&gGN!@|O{=!H97>TG zr*>6WLZLMV=a9%)5Qmh{deJ0Ee>Fu~Z(!eg`3YHMXy{+B3plGO=B(kA^1>&t%z>a< z6CjkeQPX5(J?o7aSWAw@cavRMJP`2AckcbDDwW%?KFF%YdG+(DfetjzTAL628MaC4 zl*r(DhQ?^z0lV`s%Hz}*aj^v;cN4hIJDXoWx%*++)zCVLXLbVjtHiHASytD;_=&-X zC&m*yc^h3V8nXcGsGqYOUb?ZvGsJZKLMFkZ-xV#q@*`ElGj0xYZM>7%+a<k%KZs?i zcTJvos(01O)_&fM5JzI4qHlb?1=-{9fL!ccT3DCne=`#Y%-ZSpU+0-zt;=__Fm{sx zu8K;d|L|%L3cEV7dCFUYFqW5=slVwKf!|n*lw*NnUbiRI-p$`RMSQyTs13H4`k^^i zFOn>#ueU%Tq0AH|YBPD4U=GAWSfUD>GKSOiD;78hcUF5e*2pD0SHr_50nU<dtjCpp z@vs%}<)n&bxURt^f{`UTJ|6Ry5wV~$z#HM2Kj6!kR4A8>5XRyx16GZgQbhYD3;jX0 zEChxKuI{r=r?hS#Gn7{xRryxrJ2tzf8U#ZB@L6$YE31vew0L_?Ewbv}nljRL;}}7I z+mbKpGBg$#VgA;U8L6Pi;XjSv@@cT%7b3@O`#ce*O-f+l83@AIWAHUkZcq=}IbRxp zp5j2!4NaLAu7hFN4EU9RMDxBVj0FZ`@Kult<?Xu7D@i(g!_2|+ylrD5jtu3qb16qF zfh`tYtDK@(`{%3TQCAJBk77L^aH58k7BN(&3?JGoUjhZ;azk4ti^JQ}EJJd!awfuM zp0Kv2em30;<>=DXBy*bK8|w()Co!G$lDWGSQC~#tsLu3OYJY|crg?~Z@vZLfQ*M&X zTp-Hk2BjbP4-|DNukLwrXkv}P>&XT*ARuiPS)8aW_MLC|iJB{CLWy?tj0xgCQo;pI zEQ-ale%L^1qOd_nK#~xQ3L2?U*>y*tIME8wF#Sd!1WQLqHS~@Z`-~(Z`G3mvr4*wN znDQCLJVAWVYFBOKn-yb2W0PLx9MQRpBR^D-B0)nveFv%0Z9FQ)ifoh1;X3t{@FLQ7 z_3!C!&)cZ(oN#$aWp1jfWdI<=gQYx`w2`4&;uL8dTy@YAo|jlJXQ><sHDu!2)=CCM zLviOSuR8y{0O$QMg+ERdOFvMsQQ0qG`p4Q}fKVjb=t%-l)$O~t>5g;4{`2&wMj=)h z`RD5}W%$6arNF)D6QO-JZ|L0QFLYTFIN(ng_jy-=VKXYld{<!aEaA4wSKcX-NF$L| z`NIFx8n!r%ujYBn)}Xpw)v+VU9Y#AcM*%iQ6U3kO*G!9>oyb`$D35wZa5ARj8c*L& zZCc!LVaYqOSW+c$)P_2RD@u1J4W@5;M0BVtIfFDdw92_|ir{LuF7>O@oLYKa>~!Le zk5K3bph`9R4}pi^jCjTZWRf$-0h)T<R?ZZ0*B;!d>S4!{4=i@@QXq4v=)es68SOqp zVYBSa!xF7jqwX^;e?xgcN+a4;gb6ZN(5*9=By#Jhe)$o>L?%rZWZj3ysP0+Rf9jII zp0(zM-Si$;WfLxJ6pdyeQQOLe@8D2{b0>PuNPTxjt2t~XhJY{CCOlwf=%-JlBi>`@ zhp;ERZR4e@)Nu%u?O2^OG9PmdduSWhUWOH2PYXwthOZ#*nY+f-FT?h0GCAf^^J{Lh zDyW)CS?H4J)TqFha>#uh6l*Q4SA8x1;jg>qNe8Xi6$K+m6iajJ<faw<CdsXu$m3rG z1>pDW4om2(DjT!IY>5Y7GAS*<pmKc`7(WPBFz|2Sz#3ZYT7q+4QC=`yeYif+Cs?-$ z1xquUr>Po}9N^Pvt8wG|c`CEttkG-3E$VcuWr?H@1A2!51l&#O%cR!yE7NkJ)(m_* z%nPJf7o`7%QOWzGr1;OJ+!FudKJHSn6Go*Y%YN-?Rm`lHG<3SHdk_)%VO;zacj7Bb z4`rM}&V!&mfHNzFG56lGYa!7j2Itj|tdU4!Si{Z3+PjY2tcD_}Yvo!0pZnfS+zoVw z11gnzTfbo)jJS#4%Bh4L<hyX{f)cr&L*ojz5rexU(UlI=sXfJ*bqG+AWj{$NOcYR0 zdnR0r-@a<Z47Njq^pLkM=LXEFfd=T+Xh~qy@0Ai10d;26X(<Ae+@vMopa@uzm@p6q zBi|%!3?sw&c0DO`76pQ?HhE)O{KXk>cc#I36vnKX!&r36Kqttroq_bSQ!G;4!Xm7Y zLn-h?4O2NPO2nvCia!BD*u@2@7T?-^icE8A^;<OEH*-C(7mo-_p*H5N+vTU;$i)}i zM>VGvND|d$w^B^tcm6tAP5d#*t%*GlOtMN7V1uei65R?j@LZN;U%wRv=>m-^#qZZF z3haW=Ys5T6!WW637c&KkF>a#FJKnHrY#$>lrSE~+{Tl9Cj|gaO9iry8el;fj9QjER z6F6~ZBo6U|X|9Idb^Uz&(a;J5!r*LHBhFkg&a@I6L4|`OF%<2tYRAOih!JJf(OhNR zbpR6^)9agKIob({4;+2O+HDS0EjYcySdD{4CB_`*IO*aq+ba<ADDD&UR7U8%3&Pb! zQUGk?Xuv+VtLMD*QJ%#HgrMwZkgpC^%hBLf*Ixv+uHt{Nr!!7gTqiK&#ZbNz%683Y ze~GU+ZG@i;M6RF%tQ!GaIK+wo`s*cAQzT38$~e${d1;n@nr}bF&+U?kwB1v92`{?* zFUZGyNSU1`u<_4hK!ivsns@nAcUt&qAneD_`nG`qSY}|#L9mcT34U0lHV!i2(D?%r z{5~7=grDfg1m64MMF0?ag%w}wl`b;a_U41^C|bPPB=WgLB@`7{BEsNQ<>BX5nVa3C zYiMSW2v?y?Pj-zDRk^r+@)d15;aAD86TiL_4O5)|=$|YywFD!>YO9ll{>FHkSEJ+J zwZbXX6o_EfoVgukG7owFV<B^WS-zn?OtNsq=$c#`&YN2E%h^K;x;*iWAkj+%=NN&D zGmYphMW%AcD-P4h-3R0rqjjB<Ua7%8B@jsnXuOlk?}xAmN(sglNav{-aG)~^aG^A_ ziS;OzHo7wcNkMb?lfh;M1WvT5@{vdEGC_4SVoHwEl`}$yRhR3!xC82!$i%A-4`re9 zv3%@L`~B?a$&20or<$q5DBuxVf6MPr-a;cjHg`L4ORl?}4n=JX{Ll<#zty_CKpT~A zW7_|r&}nkx=kqK8!-89F&1w2=vhrqxlqzNszTnGzc&wKmd%BVeoxuF1Dsz#|Md0Oi z)S^^>n)r%z7zgL&fXb*xrPE4|k^hEEj?J8q^_EFuQ<s1ElF~@KrQk8C#~%TqFN8qU z47-hkoI~IBN^}f9vNz6c6pm*FBTQZs2f(OHV21Kefmy2Z8(^NkPtov3u&i=V*0X|B z{MW~NuYWwj44uX(ido!<zyv&@*sR=igFh@EnV)_0)K4bbe$#>*YW1CLo%2yy@$-AO zH;Bum^ISFpu80d$uwGB{eDTyiAKGkaCul`#i<*{>?pN2il5XIg50rOWe*~KcPT~7* zt!bwgv9EoK_{|rtV|h71+0Jd4*18v3-z;)apaw|2UWx>`A+|Y2GA?5NP(4~rTypW3 z7*Y2J)ozTGQT2Y9!L+`4_Ub_^DdIzYDfns3K7DA}*2FS<xoR4AhL;MuNU%68_LTpd zAM!l?OW*b4P{+5jDas_V*#>j6hh=asXB#bRz~-%Mr1&{bBQll)?i6hkNy0yb*g~Iq z1KXBj=4VqjyV>{(Ku1VaHLkrrOsMD_=`AV}AEu`_{1bd*v&ni^k@($jKfp5>4E}Im z9<G!9@@YS4Ng#SXu9ifb13*Jxs?M{?#?DJW&il+?a)bOM9yZbsKbCWS9s{Re49g)o zefwrQwDxJ69tlg(Yp*hM4oxgtyvAcT5YwhFPPDQe0tkUz8u9aP)97Ts+o@*#(1}fz zMUi)F;-q@YuyIF_G)bYUh$yKt9jvNetCxw2u(Q&<73Rq5YWMzTa9KH{!U6hEu7`Ql zJ!I~xiTeV-&G|*c`BS9(rD4iIHFbU-+$ClgI5<J9$}lEw26L{S^*JX}#y2!#JeAZU zW933M$imt`S^%|5_q-XALQ&X-3UwlN8R!Vi5{vgqVJ(!-(*`6y?K@>Inc1TR-}X3M zvbb#}4$@oEGMHHv*Ibr$`)=nL<Pm(Ei54BE%54Jqhm+MGVA#`WH%z?N>6_`r^<?~+ zu_X97K+)(>xd=-B2oRP<&@+*fF1j}Vy?8=Zv3hZy@3(t77|Jp4Z~`IK3ji|SfjCr; zjSU3iv+u#sRfO=YF^`vEJx+^_Kqya4K`id&Ro=S-c9zl^S=45^9%nfzHwH&dRcqzT zoMAGH4;owtFNvx^D96S;LJEm;G3FM+r)HyfI1{abwNa_BIv76oOe4VIOL@N({2cV; zDfRfG0<&2sY^e8+kFGgqkU7%$ZU`YCzbgv$JEqP|19B-9!$>8Wog!&2OC1)P+IAik zw*PrVtz#~~0>9{w*G5GOvM43U@NC|BO@UFsob+IoC5R^0c5thrpDs&b!?2%^5`RT> z!*Dc{`&1F`)V$#^5nvvg2`YD!MUm+mR+GI+qRU(0oAr#$Z<$$N|LJlsR#UIW;>V1) z<ymyFThe@u>F@QM%=O2{d;_u5tW|#duEC4j?XjQswU}R_p^5D==6pS@Q+AvkBZqB& zpu=!Xh(*y<Sj+F%5vDY(2h#QbO$;!UKpGsaP(Qx6UyA6ogc@KXFn$Kao70^@QA|gZ zrmNIcNKlIM(;<2s`U+~|?^9^!G?El6WIt|!_U&f0850yNW=GM2KkI3jZIG&dDcq0c z`ZEf?p)gy;q#4UI`0^~^)6<4|h8v}IMwquvkoEZumo>c9`Gs3aHicXb|KgeXyvATd z0e}{tt1T6W`K`yzyB=RS#QYdm=ciuI)GypDP;N1Xx(7a%o4!p)oM3|ZUz!ex*P+$; zDP759H4>#}laWA=6#Co5*HQcK(t3xs+A6URlS+R0u}lX{@{Td;dTO6)eavP_?R@Mm zz_>@fF2|y!RGF<9LFtxh@bTss_!W=Dzfyu{?(7I>nU~pkt5N^nt^JP?N6?y;czY&Q zw@Q3F5yKmQhM$e97<9<Jq>z^(&A|tnyB<~0hsQ(1m()$mMG}#QsPx+I{S?@jUJUA? z_eQRzZZuTU5k7`&CWrO83Se-!PRlShER_?ksDe~xwcPFKEl`Y<1!i`ou|xvB7)bc# zFJH_!fIw%6c90QjN4geSHwEu!c59z2j;XC1D;(e*Wbi^+i2^F*79U#-aYp7(iM?}i zi6ZINULgL>Y%L6z`T2O?fCN{XPP?~kN;L`n+Q6x#p&#SW?fz@Rf+Bb&Sr~AvyG?v% zci+EMPaWaRpE1}?BI|^<2iOA2HTKe53YTs?={$c65n5))yqd$pEE(1mqgDtdBGhwF zmo`4g00000003H{zzwSlb!9;XUbIZNa?lQ_`#CV0>Y3hZm1eIh|2KCs-gH1}Q_RFT z2^BZEt$_&gXEQrHq+wr)+P`IZ5^#8B6qM@AQR_uj1q3oEC3Em*Wxq6chT6G<m1WX0 zFD7TKfVY4N%y+f+$L26Tpf)NWhgc`|yZZ&kld{Uq!Z)bvRW6<rTPg%(rOvt7w#(f6 z`HhOpZjzQ+N?+G-u{Pi#BU_aeAdmJO7D>=sl0SZD0#WMcnQFMVjYZs8wA+eOPs&wW zjVLhK+&9B6U{-Ml<6~)DMfQ@+MIzwFTdk{-qs?Pj!lQ;TlT463#k&uHe2eRE86w!0 zPP#OaqzvCp|8aM8EJ}BjN6mWZd(Bt5UBM^(P3A~0CfKQa-KsBQZ{^2uO%61jx`i=u zL=*?M7g+Y{G5$PtdSSM)ddjSz8C&{}l`(eV*xo6mPE5U+<CRtWmK5U->JoA`sw2f6 z^EaB)$YsfjkGF^X2-mPOu$pLXJPrdIcsvS1)tzSgie>CvvuWbFP*W|dXUZRzq%q{D zkdilkNd?H}*(yy)J_IR8zsDv6T5dQ%P5VpfGHZ1qU1p5qSr++CSjiR|)&Y9H*?9G( zuz4QPPs!Ql$H~~qaM_#BqWtIpfc^F@d+CfqOFy++U<pE+@wdD<@@fm%+4b+bRtOaM zJqtdB`cy41(@|gAvc&$Yf9?*Vi!GfV$RV^Fd5E%|l<c$k68)yXZkw~&^dcMGQDHn3 zh@Z3%*(u|$hXr8{hgtLLukIf&M9uGzN5yrQOGMRa$=I)AP4o-n`fzv@`~V2LX^Uaf zOSyJRXBfBN^@*K=K6Xt<y&x2<i!W>WMqZ-aG;U2tzZsu7yqqM;#<^;TMN()^tiRco z7wRg4k(N^XxqlAXbO9y4t2XBz(lQ>K#BgoygR^^J5w5{>T;9TTyh!2DRH2PbvajUu z40sE1@6hGkd8e<1EZv6lRBWII<&(<{SXz4?W4&_k=n3&unDx@upJYp#-!8=9((+Tj z`?E8^&<CEn{+txozD==@6d<;30TSe}QnHb>in%Nlt`jIxE*45Rky6lbalQ$8pvk_U zi;XVK{+AQ-E=4mT0zLTgW>O03zkmaQDk(XP>~<`>tPq8-ayjns<@Pwv3~n=ULy75D z4dlp~*1bsB`#~n(N>`a#G#o0Hcd2g|L50k<A1i^kwAdv_g@z63K6VY+2W&#icZD=s z=^&LzeS#%_Dzz;D&KCnS*Le59M-EOnFOGsR%+LiXva*`s4v&`?ybUf7MIM0oR<`!; zXL8~vC?5~y14xBw=6lc*-P@=RQ4L}2Vi)VtBQ(}ju9m;MBfGR4+e|LXG>DPM;^p$u z0pd`WbMdO#e`4m8mz|9=I~Zm((RH>slSW%K(VzR`753)ZNDJ3vx%3~1XRf{}@!pLh zFU{-j_NE!BW|&4Lb&ip+000lUbXTm2QIe!?k?p0CL&F~#*p#tvdm?^ABbxf|wY<f? zM0xsp<DtV7?Bi*pS#Ve6lZ$QA-`8!Qj+^RYoRNmFwgY*3`u(3wLU`~}Uv|2j*2hZB zto$Rx{Ka*RgGqm)tRKy8pJ)DQ_B7ZCSx4-?_bhi7lf^Rbc}L{m@Dn53)$`F^(08tS zU}W2kJ+-WAW^gh;*TyV?N`siw5#<AeAv=xWk4ye?eCex4AKt@EmqA9mcfP5$lbQF^ z&7cxwxh}?0AB_cf1h5$$#<F^h1$im<{FnbtZV$>9ok88sTM-A?%D#?6!T0B;3!U6Y z1JYa>&~2&ds?(D&W&LHkzC)g&`cq>WE3<?`FcPqtgvHaye4vUNKdqsV6UI}Bs`rtj z#<kPsF1YYS@x436>C&+Sk^j!E+8n;d!J6@3>|GM0MXH5B!|+Gwwi}!TmWxvDY=hB2 zaGi!)oA#SatwQqMB?;Sj<Hc>?^fLbNkqJPJE#rVa{60*0i3?jt{q27)j3-gpo1UU_ zkTig$wlQvlHikxM0@lhCkb7e^cqQEgKa|*F#XNbRcy7rnZmkihslg?3o)q6qsbqH{ zJDQx!$@$HkX1q?ScQclU9E+q7A^sySwenT_aum}2^v@@##5Tly;-Tr9kSR+PUe^V~ zZU9y5p@lsGGjPU#`-t(I(so-NfIE*^iDe1m)sjgJX?v7++WQ#{oQNVE!51oE#yl7; z2Mh-IPu9^Sj-wbZtss>?0pfZPLydY!hrnJHPr4=ie%Zd={`<KG&9A*AbLwU9y-~(c zNc&7=^GfUC4boq#mVl31iyFTCHQ5sKz#b}8p9Urg#EbEYlbd?oJQx6E+fmX6g`f7; zds==}X{cF_d*=L3N_5i#Ck9Ksxub%YO3}kZO>poTHg`K0kX3ls?_mZH;&I167{#<p zn4MAmXfI~5Q0q`6`mIH1xV2emIUsg|dxHrN7@Ke9i^iFa6RcoOHNk7WXs4^dwdV0O zWG30k0DvHKV7&fPsyXcX`7Earo*IE*y<zE=`$A`5$X5tQ?EEd*7;<688CDM59f{nt zZ*)t!)9EfExK+O-_!?lBY%3Hx<+w3j53~u4*j_iwRdyzTXYsQ1xx5ep{8nGhU^Er) z=*ihXR*bwy-dEz=Ua!c4m7ad1ipoSzi+5Mjon!47J2n1h#_PHKIlyW{^+}D%L`CCy zbW}Mny^i%hjsD)1P>IEbV{acz)8{esPJn8S9oWZ&Sz=)3%&c8o%vu6|A&A|904*O6 zgo%}LJ~dAVtkfQem+!J{xiFy!L`+S(XwbOq4&XnVv8z1=bQ0|8_+jaxCwp!6pyvoM z4%bg6TW$39hr~2O0|6OVG5d9+5a&nDR4Zhz+;dI~Q{I4A@N)_INT-Au{L3lEWM!B? zC-j!z>K|p)g2qplcZ<r|1vV>Q?HIaYS3~|6O?kEZj_&*|*T)%h3Osvh?-gK_Ni@0$ z?95`~j=x;)d0{;LZA$^DKQxL}gMC6fG<lXK(X^v_7(ME2vyS5`ZG-bh?~s>qu8%z{ z^evDG=>g%KL;pg#Q;vEugV03wO%1AA<-LYLuaf8<EpSIm%R3g6y8Ff-;c87r8usA! zfewP#y<ENdx8zj1o_{-f>pZKQ)6P4eTzu<zxo%5&UDCk~TkH`L@iJ)Z6YMqk`KIn@ zafJ6>jLAjoghkJd_2j}!Vw0TMPOP7o#`f@10~Zo6W=;4+;}+{B3Ktbb0dUi=wsKLm zV%k!@KIAf1GM;jW4foldKvT@U<;t($z1oXf%u>UE+*!#Z<rntY^Sd;M=pz`%GXmzN zW!H#vsPnsl2KqByslWJj)X#B6Nxbwu8=6W`a32S3)?r(pOUorWYrq<K_dqu)uwTnp z=SBUqDaXVqP;;Abb<^bAx$D)<Ln%eZUu2A}Q^4?LVE6-m9{eU1Fl`Bzx1%^}5OXO- z&arStcLE2$)H`!jfpiN?S*t%_`}FCbmZ>ATK*NJ=m0n(vd$VmvF73f3us_YY_1n-a zAbR{lgZ`XjWpU{=!{zXSh@c|WgXz-PXZO}^g#%M~qB6RgX1&Q_M7dKoc2w1YLjhFy z9IBi%DIo{se}Y)94+6>QfY4Vi-a>g_KJqF;M*$|Ha~F)8bCKu?!Y8_o*{z09Lm>bh zZPDmLF_7uqTxO=qyLX~jYO=6{jwQ)d+UvJGnrMo7NXeCZd06v1@JAHX{!u;~kJ5ce z=0YhuwI7ngaYZnb7X^?<)Y-QmWIc;9vy^ZeTcEgewS~K&;L2YC{4lfJF9^M#R7=Ns z+CzoNc&z33hf2XHYs_$qtUlYXVh)Orvpe3G>1h|_Q&>qbiKJlZ<#Smys_=K?d<a1? z`VyWAcTN+|UNrFo<!yC;sT!}!ZT~+aNxUR^+23%EuIGFajUGELmXGN4@~Y}cN1$;U z)cCwo&nUDG>ls=>Jh0^bxXd7t*614^QzuVCJ|6CA9^M+?9Q7EsAA(i(vmx%1FGJHn zW_pZfX@|qdctyF9oPY$Nbje`BPth#kgd&?URewp`OBx?KhZ6Z-gVmzGrTM(Q<FID6 zh7~eEJ)9u+4BsP{u0!&~f7p76@Y>kX0<=uoKRHH^g2cRg(w1W@)*h|UM*bQcA6q}^ z|G=fa8tM_nOstG4+33n!GE_JoqcxQqXmZJF6_lY~ZQ7arLBZC7wwoTqEab<1nABD2 z6VC{mzT+Y{5c58!g4?p1PLO}&QDbr-OM6=BR(KUfY}}mSoWGfmLWv4CtnIZD2d&!9 zUIp8fQZK>XYbAHA&!(BaJfI0h94VnJzSU6ar&m9E%zhfzD`k$u5yP7n35^Vqu!Ns< zdf#d9Wg`em!S!S*EAffrsxSl9Q^Y84o98iC+lkQxBWjNG8xg2fsRr{tK~lj3THT?G zNSkHzLWUGV<~sT(!L$#FgM~wYo6ML`Mz84UZw<B-^`kgJ-dTnSt<9JO`gB6tuv6Iv zA%dAX8e|-lShy1r2g=IxdAtkdB7OihC%yK1+!S2E6?-gA5I#2S4$S9S7p=COK+YFd zAOM|C6z_?lu3-^3%o0a{0J;h9;sGu3{`2~3WFp-*Z7d7ci{=~q;?+0jHG$Aw-XmD> zAe;&I4JnnMpx9JZd4yN(2DH5o6T;rkd}TFEU6>O?qz-+n33=**<Vgy(;8??l0lB=J z!tHH+cda}Zqid)hvL*nw37Z-caWbZZVRc&wkgoR^oO&CJwAo9N6P~>?kX-)m%=AW6 zo->Tn#R9DjPJZ^H;0XsC;3Ryp)aBc13M!P9R3{YiUZ3OKbCsv1jZ3vk0)U~0+cyaX zte|@KVRt|*r+Z^Uw>vfk)n(d0pUiWnx=qosL6TvZub1*$(1^!3E-yd&jzt^apbSdg z<VeUa;Gs0~$*ygZTQ_bPtp@!ZC+;|{4`(!&&`;H3kj3~AMwhRky*+pKoQY;`v<2ij zbO_J`(5xK{yhQ<c`Oz?1?}4|i<pLO9K$xM=j{Yzg>NUci54WipFqb*w-&xWCe?}5J z`6o7@<|wzlfcKTd7+0QG!cjA)L3zxXT@kdio0$AVN=8y9i4abI#1<IsydQCd$wR&c zu6He=`CvjGmsL!dCkO{;CWVMw9-kF+irmIi{Xo7tHqeE$wE1ai?p}yJO8HD-)9L|n z#+R5lhEps8h=f^Gk@JRqD<&ZxPl&fl?-pVSu^!`xMVU_hWp0n(7<Pm<M337awa1fh zrd}mfWCyh+UQ`$C%i5io_pBB+pVP*Dw*Y+QR+?@_F+lnX%Y>EZz+|}=I7zGdVyhes zmkXbgK<=0#@Y05JsEkZ^c7kMSZ1bvnI35_Kb8jjW-`kj{NTUAembOv^m$iaA<i!>I zhUIGwe8{Tnp{Vv3&_5CQ>bye?m~T1A0RTF<T1dwsKN#9*N=v^v{#(ADcZ(kIDyYcf zu%=JFjF69T=d;Yv1!VO3ql3$@uh@~D4nGUSns`1Gs5NbP+!|AD#l)h1tJsoKN#j!4 zk5lJwYLgY2Q&UP`VlKWOr6-9Ta47pZBUB$4%6R!i9;O>(2o7e^N#;f6r>2`#0&PRg zI;->2{|&{G<S*T8^7U-=!yGIP5|(Pu<ecJW{>SeJ>NLG_vO$0blpxy}I%B591V&h_ zP!)iqKjSx%r<13+mSiol08G+vVA>uQP>eR$b(nf6i!K7agV*MhkCn*;5s)I6yDD?2 z42i^qAZQG>MMbW%08K9S$UhLiw0R+(TUP2GD-a#&lk@?Fd^bx+i~6<Jbkr|B0SHqc z`3%}h&S1{sk(r&sir#_s<1wmBn%MwV%xuy&W*MLDebq79N(_YWXuPfHV8Wk*2u@A} zBCik1_!*v3EUeLBao;|FasydCg6~#%U>*-W^g#(z$bvBd21I)V`qD`XW{lGEUV}UG ztjs=Vf(^B(7PV;o9JXyBryt-{A?in@QpaA_Bq%+pCJ_}Ggf2aG0R{42UUO!|K%sa{ z#TKY#U%$!MGtOktBH2Uy!1C};o8+r$!9ZR<kG-YcUlz9#JCMD?Qq+H=d9Gr-ui8Qv z^io4qZIgOPrAZx7RV|dZSltrC2spNr<a9yD^Wn-JoIVISvLo$10;B8c#*@d;MyPkn ziN8d=@>5WYj<!`xl|K@_@C4~Hw3p+Fb1teEo6pc(^472^FC6p{toWppQ`Cr0e@mX3 z^_knv0xIGX=8Ma|<lX%OdO?lyS!iprN=DvaU#MD(P+qOVw3s^lD=2Imw1(3se%gdY z6d`6A|1ri9bCnXp;Xyj12;a!DJ(TkOakS7}?;DF9CGUL=H)6HxS-y+AruZ;y^8!pT zWdlWg3X|gqJYOo(1h6y`tHU+c&F$l3@A>@caWDdgKxqG0aZDM^$yq~XZvq29UAGQu zdUcRE1CVsQuX624Q*K;6T&>|75p<dKd#?P!^I$;vePLwt1RR%S+YU2b_9PrtoWu8_ z0=z|!DPa?Rf_JKD!9Z?qZ%BD2>!hYTqQ;_{sY*AJGq=Q)c3D(Zp)2}!u(D5Jyki)m zaTC{jFLf>keq>XwaPaBc(1;dYUuwm%nvOAd`W*~^YV}J_P=FCx|A&+%h1J^hmANVY zkrec}n2w4Jq7Eqo0O$&-H?JB=xuhQDih|_6WhaYPOX^gLtmK<(46Ljb4ptnd<Hh_n zZ|DVB>P)TdyoD&0XPfk>ZF0=zTXTqt&pJC(5#c#U^TrVHOqxg(37&rD)PLZ<g1m`z zQm}9c-NZ`84RJJ%5v0m`pUZtwT--g26zIINGBa4?O)5-m4pW&tO`)t<VDGIf3`UpQ z+9vb>H%(Hmbqs@iEEsx@D&Ejf=hdxl-Qe#qZV5AW#&WS)I%=JKQ?Etk!i)CvKtNf` zK{*y|iEnR9n(i8ZQo{HL;$ao7;!7Oj7-oGC?Ojzhg<AHG>Gda_u&r!hfyi#bOz-IH zAoiG$S7tHhJqTQ*OQw>HIaUvjWexlt)Lk-<4*3-(9VN;)=+X}K@H<|!!)QdC7g%ZZ zy-MLsA|YgIA=4(29}y0+_U`gQD<8mO;}xsqcEQH%22Ox+PBi7m0KM`crkjYzov*>e z&O_8$i3Boa_XE?7!BgzA)J{=$_HlkQ%VUYJMt&FV-rNlW394Eed6DqcSe%#}ZS%~g z3|a(v%*-}L3m<sutv0rw?)oS%F(Aip22$+wE0Y7YeHG|>ULv;3c}tRV8>ihJFu6jr z;qFNRXWWNRB!IcxyjI&1uuL>h#7oh1d7!RRHsDE4E16?G+qAiNMxmnd*)p>-gz;A3 zSX%96u1`3)MiLLFi#nt>IS8cn-qD<fRy`m*mlU&coW}Zw6(lN1+mRdoJTxhK3eAk@ zd+zI-%DX-)n^~9GAFgp>Loqhc#>?Mi{C;o;r-DomULbkT({wjKr%YipPq|>ITGy-J zE?)yYcUjS+zN+ZX*w*mm4~tx%D}x=SRFMhGng}PJeyyV6!$VSDXtZHe+RSC)iV1NE z*$d)Nz8l?4`xgsHRrs*g3`d7Vor%F%1#sL0ug#HR;Rj>fDN@6*HJEQ!3V*^nm>ddQ zLF_CIg)a$h{p+{jRzsh)A~8EtrfD*c69!h31mvLiJ}y_Zta;K+5*-ji0Qo+S)b|7Y zF*p&+@~+mzuUhN-=J$N_t;5Xm{pK`eLAT;ZbLiu{GhY{-t{!}IY*fcZ@S&Jy%<IRn z&eP~j#m6RP6)v@;A{ITo$Cr90i#S>K4LYG?qMq_y7eC|?iO2qnhzPTgZ&=Obsq$V) zK#eIt@FxESfBAn%gqhfo2d%!OxDdII$1?@Ih<tGNdS{8NY~m4|qc39@qab%@*#3>6 zS4Z#l$A@7ZY+Ieo6$KIm{(DFMh`+O{Mza0e!ecUCRU9&Y{HB<ZDDao40tz!4fzQV8 zZA%hVDQ;?|;mv{cV5^p=7GcY>@PT<pn8>}XQr9-D<?lm+NHFR?b?3Ei`7<q-cg`G| zj~TFh*jr`KQE8&K^$*$VGA|)_(OnBid}qjHo_DES_OoWOutXfxO3L3=sc7<C0z(g| zw&?OSYv-r20v9<6(?c?ZvR6C8!*BU6b;e-!yr9XyB{4^<TTlw3Y<f^>LI1)Si+e4A zHRwYAwY{^pOrt<yV@3%v9tUX1k-y}dKP6<T0COqM!*-mf8#w13qU}WVxY_8S`?!Q5 zhFmuiw8&I#cG{spae_Oby<0Jnd50X<&Xo~R4d|K-qb)3=UB|$cBuVZ=JG6>Wv#8;6 z&WARsVQ(DDdmfmJN`|{5o?j3vS=+8Pwzd3?OKLy?<+T1sM%`FD2f;ohI)VJQ*C~{$ z&F9R$yVTJ|!S#aS%Rap??99BY6~Y|wLe;6aqBmnzq`~-UOw_|KTIbyIIuMB++tCnK zg)Z~GnOJUY{R`x%A(+{@%3(soV*AeT?2}UQdP$w44BQe|FpTs0L*5Ylm#srh$0-IH zE}<GG042aCL#Ziq-wukh!T~KHs<L95(bK)5$EQp<_6W9T!J$j!j8Wsj2acivJY!6h z28cEYKcAx|Bz<VzFvVQ_omB#y-`e%I_F?C+X2q}5pijc0SiS#wOm_1Xl<O#pCzoZ3 z2_uM@$9X*VcizV>ghdT`nXgS&&8w_}sbYGrFy1TaPlZ?3IHL;s?N>#a5%nEs&uQ<K zk5Bj2XiMHo^8t_hR|#;mR_J~Sw>p6rrrs9`1B3DXe;3Qs5hblRdb=TTAtKpAq@{A+ zaHE7$W!38tfbtN;B-IQzT8U5wdqhlYz9ONxzt;Ky4ty|T#0X3O8_t-0|5#E^EaTKK z5BLu~6SK0Y`dcdvEaAJHaOM?<WhWFXG!0cU4G65PR=C5~QOkk}CI*$yh(^E+sXYJ) z2)Qs_b9YaTKFv`>6W6uA(m7bw>Uk}=Cmr0>A=<#PEt;<$Jlsv;2;F|x9YXupJb80q zPzMEp_Ly3843qzsHPhHw$9+66V*fohjv<_@{PO|<S&qVlm?e~U0kgk!yq?kS)dqnb zgWRX1(oh)aHyeQ7goMj7pW(IhkwoXOn1VDKjD-L4`z!`f@aq7rJU3luUwdt-f9P<Q zOaLqDD5J%w27n<?(uQJ^fg4d?bve8}rYK!)G&@dAlWKa4P!NK?HwJI3rEP{i7{KDY z*QT2f^kCgvCX_GPo}CPax7|;2$41elByl-MhXXB}{VLl|E1PmlnD>O@oH%>i`rk@4 zD?_hg+`cV?O|D12BrG)M?s6s@8rey0l7n5^%YUR^ENXvgKwpjNK*r~dN3hx=pMSBQ zENCWI3b6Y346@eOF5@Qkg888YmXvD-%b={^Kc&IzwJf;L3b3JUMY^o~-DHJJTlOLl zUFf5}5=XC8IZh=aG8~GfaMxA1G7otyj%Q$JV{-}(0~G1@TedXPAYvg<NGUY-ue(n2 z3&aOVCAud1&l_(2zlO)aG51*v52v4e(J|%V1y(W>hLJ02`&d%6mg7XP^2OI8X*dHx zZ(q+lLZ*dgj9_J1WrUh`z+Zju{>ditJ9=av{WCNVmtL1REq8$`9BaGV=|w1YcO6H_ zaiJy&M=1!d?pHYPJx6>9ij~?!jxl21IpQ|GUGoI{*o>WUwC_D%!#wMtPRaTrd*CF$ zcilVNu2|()*Ws!Sz~ga1-@ot|sLHMrSDBIkRm!<#qhQN%5N?b<VDK^tRabNg;asaD zw0B70o$!-{<|sYGh;_ac{V|j&@6PW-ZG;BfTx|Zq4J?jspv*0d3C=}dQ}b&k{u|`q hfr0K7BRl>C3W;(t<`muGrA%zBJa!ibqMt#0&H#^13pW4& literal 32348 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%0APqJ#4Fr( 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 diff --git a/src/plugins/home/public/assets/sample_data_resources/flights/dashboard.webp b/src/plugins/home/public/assets/sample_data_resources/flights/dashboard.webp index f73ae849befc94ef9d262725f2c440e4c0bc15b1..2c50c8a1471e93a4d6f8bc743968935b7d03559d 100644 GIT binary patch literal 31426 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 IgA3=N083iyNdN!< literal 21616 zcmZU(W0YvIwl!F`ZQHhO+vX|Twr$&X)hXMyZCicr{rbJ}_2~U8Sz~7>Sy^*sX6`6S ziiugM005|q3Mr^5a1iMHD<gma=KxXxfW`pvC5UB9m6Vl|lqyE--627m+nx?=S*<<h zn(l6u%=+y*6qt%bC4PSebD6zI60shBZhq+QvfR${r|dYFeD8dbr#U_SuDw8iZ@QCb z@w3)(Mn}?1T&2!x{0=^&Kl~p3p1+lyrd=(fcF1>nV4H2u=(O6W+VJCjsC-6=)$-(~ z<wgzG@pS<rjv;(pfrt|bU)Cey1i;t!i8zA%uUW_z<a4QB2Ml>F@qb@}oY)ilP7+h( z*leKE3vI542+Y+xRkyjbgER(nH)*`+W<(o_ex%p_;hrf?B^|P<zlFUm;C`%T;5$Ih z(17r91tN~~PZa3)z)!ljDKrn5P*YK%1nrYFGSnU(^N~dx4E?a<Hl%wwo)Cs#b7$O0 z-g-Y00kSwFK6Wrh2CtdhL0IIz)S)pzta3*|^rD)ooBFLzMFZBDq^lYvO;g>cF7`!S z7a}M-TSQ{`?@UJhCPQ*MXH>nHNE%HUXN*cwj)+&1%dQsFV28K(P^%hzyE9ot<hE+P z(h*aXK5sJmv5H4TbRIq)V9s$__+|qgl}mYmDACs^7*WuFC6-!NnosUMQz}6LX>S&5 zlS}^fnK)T_-z4~&d0km4%EeG@{a=TkY!A*!L(YiT&bm&Fakc?u0YMp>F1s7^Sb+6+ z6>aZhnSR4|)j-Th9#tmrPD*&QEcW+$9<F5p6e@#HKgUW&qGlH&S;lNxt1RtQ&gwug z@eb`K4)Yf4`(5-UC?A%FCy<E)z}9R;PUCTPmODInxoE4($ZA;pj{Q9y?5KuuZ4?*h zvrk$l%|~Yj72Z@}P&LDe0b}VHGy43yy~!JGHDsbh?V%$~eJt3ROOO}8?-qfQICcc# z<I?eI<L1D+uH|iBHCgyA>p&SUKpo}y&T?yOyJYb2yrU<c-~((pT|JW&pZZvj`>>V> z8dkOVgL1`^_tTeG0?-)@3QeydmHkzqq{m2c3+dfA4-yq11Y8^$Ue-ZzX~Bv3Tt%1- zuh`r}sM6?$AI&H*f22ukvq}fL-5CuBGv&x>X%SI2;M|-BdqB~@<K13u70@W1bS0c1 z`2=;<+y=VKP=X0&B#WfL&vh7^-yq}pRQ&WXWR2-}+e*Y=E{H}YVV&-me{lbeBEJ+t z6W~m2-@rE!Blz$JE-+hi?dH}-r-Yep(kDO}^54a44|N(U79CuDlYA?zo_kOQWj{1D z8Y^U~M2=2}0A=_W)2wYZxZIMwL!{^)#12V-0HtWU>Y>vAZ^Zpu{kw6~ov9fn0|JzR z|5jE&JN^?C|IEw(#RQY4iykITXB|xHzjjSaLVz;=Q&BYgpVI&LbN^{~Yi5qgfbid_ z`3J0rd3WbsF3y(m17CqKdcchTA7<e{-XINE|K9!|3<rpRX3Y~OLoUCo)A)yj7&t$R z)nWz`#}huUf!fF%H%RuhEmmUKw;9c{D?)Q80x7nA=P%k|6+r`wCiNnhIpIvxjW3b^ zU;TG8X*!Qv+5UI9I;LS0d#M-`BW~!cY|82+*M?o0By7>}%brAgo4SJ(dGABHQY!EA zDkVcHlBrtI<X5?gVGunvtGikmsksLFxzP#5UfV2{$$}({GcVbb8#oq^g{YwSA-_^` zLb{hRTSNc#M#dJ<MpRApJ}_tSeQ>J!+o58FU&@Ikz&7t;!792H6j#m^l_k+zgVjLo zgb$8>Ji&;o0s%0%cjm_R&VZh>@sJvj>N?j~9#eQ4`T)-;ORnmZE9~BfmNST?4p9mm zS75NSr>u^Ky##w1)-BuV7DQV4gPiJao>t1{Aru}VBKE7i7HUoGll=$DSbYkd3TP&w z$@=2-5cN;chn3KhNQe7o;=J00j1<G*71otYXER2{Xbcl<r_ffZYuOO9hPzxQxN(l$ zTI1L8!mvV+O<~HEw<fxPMji_KU)Pl!ITT_4!0&neAOVP!JFLDW&oPm7=(A2!qX}J8 zE|cwb$P_(gq%M>u@YXq_fhEbMzwANl-$=r65565%I2(t@j;ZUot@m+#3KT8nZKEBX zuwvz<j$Ys;%KpBo+phunDMF@fFpGQUoW5)C-aUr#7(?ADziG)RI2B0jjFiU*5q634 z`x8)~LfC(JHfvNt^mZlIP>WwxFuH}So{Maszd7rc2y}WkJ9_9W1Q!d2z)nVn*iqO8 zU<c4x@KHP(&sb355Wew{q6ta(xddU4M<ijRl?MZ4ETtqO?T2-;SV{QK8y7c`3U{cu zesTd<INl?-Db7QpMNEA9V)n>Yri-O?quV&k2He(*u@eCR4LyZ0D{F%6%%a2^SZdh$ zmQiNFwi`vc;1SJg(6T@zz3a_&VNP=K%kwS@VY#Bd))AaRw`njDPB|KieW+MzQFcVo zXtF>wca;`j8oLI8%^6w4a-dK;7;5<v`oo5ysOLopro?tfi4$FK^iwG#o8_&&1_S$I zWh{>9(U|mz-#gk?wTr>Q?r=i)veW(wp*sXO6hum3mA!^;&*Z&~;w57f1+?uO;iSs= zxg9;q%tHbSfO!=GYD0aw@i2KtRJ%~C1%t}*>n6eDIwVgLLub?m!t>j5YEtSA5*Vf! zab=n%;Y)QxnriRe<cZS%sSD(;30{7;`_)~Q2lK)2tt)TImmFU~kSW!fc;A(;Q15q? zYabE8!5M<l`_mxBiocd|U1~q>;!A)xFuDl}|5U$;UCBg9xGkpbX=p2mToZ~Tbm*7{ zBSN82&0Mnv_Xvh=aQz`E+3{B`+Dv>+|R~G-*WGk06nqvL~c16O_#`${@A7WZ}IE zlSf=VQz4I6QR5w(WnWXrZ;VY%PrdGOVop2osBBkBx#DW1*>^p3S$(3pqs<i6+=6f* zfPO)#dH4C$yGl%+`&dh7PG<BiLcQ&katY+~;OalQPVLgE#sZ7wRFxE?Y}VsVOFAyf zmn~^QoCU`>W%W%f8g^x^(f7lDSv>6>engRlaTItE4WW~_&t~~+SCIff2rp4(YOS~s zwIdF|TsG@4?5t_&94qSSHtP8!aNOq82txNX*KFElI}+ViAC{s&D-=M|4w6BgX5BhL z0Y0-^si+PO=T@O3KYN&btGK!r;#uof@l7>&id1s%+b9DZT=xdiY}JlFQ3tR9Qq*`% ze8#zPCSweiDXs~*3Qhy0LntKKR<qKcrsg)0uC#p^xua5`n8h8xlE<LcQJ}60)BSND zQaJx8_G7w>)S4)PY2cxsaKdqC==-FfH1EdLcKh$yz&Ez78}>NrZ~Jn{^4J8t);kv> zkz!VT1xB+}5`I&P#79*?simmt;g~iB7zeHS*7+lql^+w=z1FPSff2LDn6IB2hzx!p z{B6<kdD5O{6#aw1)UVAgbKg5o7a^Y#I}gm_XpZUt8>RdzDs%M*DKz2$63^_t8nLFa z+9PRt6Yx*5Uw$yFE2rP>1=C#7YT8XTN{-n=6C`bU@$1C#eY|W1{3IDUw!6LC83Mnk zW9FQgZkdXNQyM});`v}Z%?Rn0d}%CXjaI40h+>DcKoWf)Y@@wRb}!cwn8Ae=t4^f$ zduf1TF?KB2ogb-`*f2|fg#TTGvV)t;R%JZy0`6C9IFK(dDUB-=oe^9hFy|&;wH=GK zB*#=S6CC)r3(;dh7SG?<MTN&mWs;a^jD|F!3V5-Qz{}ln#|0wI6*8v{97m;%*lbQ1 zUQBcHFVU#k8&okO&SIc+O&7HiB=S!e0Wkvc_-!G?(i<3NXd4^hlCCXqCIvI3a?A;E zrW4cZZvmR-<m>qej@S}ZY%r2iHr=~;V&(yiOMEQ=1%wl2Gr)a7ITm$|lg0tnHd!^- zH?+G`HNS15Jy5%e4igYDh5wRc|B<2lbjUK_*x<)NMEIwE1YIV%_S!@{LRQHE8)Su- z{At*%PH~7|l(&;u>3tCN@svNQ>}L)oeBL4ew#9tGcv<;j_v6bQG(%xH>GN%8XM|sl z)+#g7Est_DI2-Oe9SL0hDNag3$nHrdV42QbU?@gImyMRyyCU7uE>>6rcSt!R|HCi- z!wyy{_NOgpX{>x`9Kq*}9)x3XhrSp3OVtduCM`#cEFQBjE6ec@`7tqUu>P~@L&UO_ z$ZJ1w0^u^j77!RBh>P27%rYnjpTQ#W8~ZWxnEIRqUvobUEJ6D6mykz-(l|i7qM2+k zrJ)^xlufN3tDBem9GUppUo!17EcpJVDL?~2@yz%l1v}V_!Q?ptWRHm5D?i6+TGQ<i zYDY&?s{~CVo~WaIDs$a7Nb939bot$Nq^sW-M~wZgdE70S%)<Y;DX*T*_lx&$2D69R z0#{ak7^I4hyu(I6^(BP>ylDB3sF@jSKW{nk^?BfR_ed4Sc%fyL`6}gOj?l%BbDN6~ zGw7xO{&|g^2x1x<i2NGT;dNMxaM2|lZy8h0VAIr^%Tij#!eFFU4vpO(M%<Z|IX;~i zxhO7D7&-kyJ&3ZEPLKp2Kc$sq;Hv3TQr~s_7iy8FmTES@<eo!5eW}LH^2Ee|Qs3h< z7)qfDv}v))OH#@tEjdHbyK*Hpvvc^3<#mA%XxCbykXRLSEo=nUIXVCGZX=7);5K_a zU#1yz!s3b3-nzs^i@g0Tpv%ELKqLaaOd4uj6%?VHa{d+ZuhF}c<Q43^6Wi&&TRsO- zHS))p8`}ym1qE^saRg9wjn&4w6;8PeiAm*eF#oM-0S2y!>&4ZqTQKJ41wpbHPK#^y zNyWCi=>#Xvf@?`}p&!10K)-?;Yph6A@<lZRtYvb=p@RKB0PWCsopWMm_&>%w6hR#v zaWjO!An)O9jJeA0vkh9W7Os6_ZjY>|dHQmUeKsIV#f<ZI_yxqW5vxS8^%U;x#=MjT zONg7jW}SROXtBU>B#odrc5KC@1Tw+eU?t}m42rmAyT@pigcuQ5*eq5CJ|m1)!Stl_ z%>xv+Q}^Iu<+`52%+Q6C*`9+q0eusm@)7j(z<mIJ=O?`XdvTodlnTGGR@OPRBsb5g zx>f>KqCusZRQ>Rytyf})GfuU|_N$Q62G1P!K;bxDkW}l7Dk4lG<Sz6TQ-PcToxuwV z9gBia2{VJnbK=6N)0>Nu%e3>*B&GafIT?Dadj;hro+iAuZdpP4EiAjC7|P`O7x4QA zR|5hVi_nc3#%#d`9xyHqLUtQZz>ynQnaBUPwTXG(lw_mb^g{~>&7O^DjPK>a6Fy}H z<9CF6n1Ms~E0ei*2@JQ31)CAap+;rV<>jj+bu9!Bju<m{Kft5gjk+A)mJvtuWe`+a zqd3lpZK+o|=!~jMbZ)uM@vtZK5j>O-Ju0vrE+IZt$m$&mO%HptqC@}^?uG1(4C+g* z(;kyyb9B5Sx>M~P(245Z)o`>biSQhlB1rxXk84f80F2z52?SjwRKVOS*-OrnsF&*4 zil=6gXqPPomxtpj5Povr#ob{Y1V1g)C_Xx->^@J>l4?gkP-W_qlS`6}!Csm>EA=e0 zKl=0Dg&_xBDrLJY^l?_E!7^ZZTVEHCmU=K&pKn1|!czB^a-zwYBHEY?D<MeqAYkSd zPI{_WnHtiZ!?fL@xt>d{I%RGWhEXbs?#&ZzD-P&+dmS3bR$)qtNv)OFk6gt^rbK(f zb}eGzgQ9p0xCbEou&_o1o<mFPi{ggQYW3NSxTI{<dzex_*icbfpxNoGU?cRWcG>9E zjXqE&Ow72%8illP$5_RAK}YJklBeoxx=|qZ)oERG_*x`dvY>%tNMIGl>7L!jIksbW zvo&V*^%rB0LbruHdOmc0E+U_%*?otuG0Gz)caQFQtD#_{UN2FDT)1_6DcdT?O-a20 znm<<LI4#GD>aE9=oyRmz`l;@I5D^ncokoMfA({^o3oYasuR>5=O{Fc}Xw4v7`^#z; zzhQtt0*OX#AGU!za-NBP13;?cPuNcPM4E~99t!*|iZpIc0Rz?0vgVoVb0sLy=r^3c zwDVwuk&b8jt)=>`49%PQx(YyTPVx35rtza+q7C(L%M?Y&eSQs^+P`xtgldkWXguGM zE#iL=8_<!*ptI@Tz$mGtlS)(JZTL%K^yb#~I_!RaDX*p8gUP{V*b4zgZ1P*mh&+g? zr`0Rp6%HcDWnExdy;u<E4Cko1YC>a+fTX#UINRA+=cfYGZxQp>xaTH%GH9t{`Zaq4 z+X?&uVmeKj6h~9TGyQG`F8>l`T+h@jYMt?L6Fqwr3AzM>BW`E(b86@+0{PlDL8`da zgi7&GD`K84Xk+(LyyNXNS|-zrsv1ltpopjw758wg*>j+YtZeh8RND)`s`wUh!7pI^ zm8{lZS6(cR3jLp>GD%Bs$&Wt9c&0ZWY=bSNo20+LGF-xhFqBXD{z0(1sqNg{<j*?h z!Y*~*C<s5je&;mrDHW8qKU3E-g_(u91>~mv>O7}p;&-OweutK~@)F#adke!0M7e_a z*#M)G^han`hpQM+bsl-u6Walg)<In9#qtw~Tp3epV;-GMEIRskB<k?5QHX;fQr?yR z3x)ds80?p4<mx9d)Q?r>xTr4TA5fi7s`@bXBan{`z}6EMC=vfV*Vschz$oQ-ruq>w zQxOT{$Te!r-g58BUx949LhYZZH|zH=jZk^Hs@gbd(;b5Ik6_CCIA1MysRqUWqb&Td zGEi72_-et1x?8opfhj^IMV51f(@h*(4&vsyw_hI9TilOoB;9Cszd21hKX%y0zhPxM zcSF_5T|qTKMclsq&-)NK$~9w54@Kde{&yIUfC{UO-KjDrOEBP?3#Dxc0xb4w6V_bH z;y{FIp2KbL)fzsTA6{;88XFamm-7tLgKg806=w$F*Y!xbtF!e5u~@_UE1CR-Z_f-h zv*oFXzXD>En7XnJ+*?4A+>6T#{H1pD^}fG<M5tluK`DoBIOjmj63UVVkVNVFCJs5f z)ZfroCR(`T#JmqIGuIqn3~h>tXQck4yD%dXBMO8;%LiE};WPUwyk~u|>F&b=@F~5q zIc8~a(xj(nO8&>(@JrA2oRh#2s6FwZc6p3%a%U2sJ?Sg}Lm|_r)I@^W=_tFJ{r(ki zUzlr4mVtHs4Tg0O6*fB}_&Moma!LCo`E!M?(zi(Q^wnKyeKu~8Zy1E+UsAh^aoo@u z*hgWv140bn11-=vO9vJ$4*fy5WM1GMmO;a#3lDtaAiH|}#{@gO^5_R?XLvNy;db=N z8=3O3qC5=w)#pkQzmOI4%Ru!2Q$KF@kGM>+ggYEF<-R5N(BAHjl|W}vAJaV$zOH{5 zwkxcsCS2Pp#((yn!!}&8-e_8nmo?)iUjOjJQ;Xr?9wjX1?|afwNf2E}n3(0P@c{un z<aGG-R1SsYcjoL37^X)~m43Qy@62H(OmQn_$>f&zj!Jr23|YHo05&wYFoL?Pr-%OD zc7kaZg@iMycb6WjgzNWQ(doxO^a|n-QF8T>e(!|=WR?*Io^E=~jG0-qIY$l1pYLrR z8u#gVY}0k^LYw|fy(ow+gXm~AcFtHzc};RU>{Ra<ZeeW&##%(k{Qtz^OmM2*MrX_U zJT7luFpSz!xnQnPm!F<0u=xKG(fBz9yEgAOWEECX9I7{Y+$d{=r26gZ?iK62|6#o~ zu1&VntVe6F3-vjCR$?jfC(+3AucwRHP0fE4E(c<l7)|&Q)SA^Nm2wVGr}%o7c6I3n zCSC?l)%VXYkx<V&3z<O=vhp?)c6T8DUhmVo4_BaeVCr=UbOK8&atbp%eU0d+7)knk zh}>3j-sj?|Q~}{{<C1do8k_|ln%qJ){-tT4J&HX7v^+hu;T3~L6dhy^y5#uYe6X3< zm?exN>OnhvS+7U<b^DHMoLf7lrhjU(h~HbsQ|xgr#4%yUi1g)(Tn<y?s_Q@HkEyCX zjO+aY=n+iF*Wwi}uBXE>e#(GzAIW>V{c*4tPZ3(9P3L>n8p`8if<`2Z1PuoHKVD_~ zxJMCLO>4l8xcR38YMfZ(w$Um=Shg}lnc;vL|4Sq)8J={C=q1Yl06*VP_Z#$JVt2~( zSe+RreE>i?wh;vA-sT^B08*}pYBPEWj(2LZ>+3A>Y>$f3M8(+WRh&q6(Y)89A}){R z8uG!Iwe%;mF&=rjV@OExqrXgEF(e&3q+G$#IKqy#IRVuNhePWcurMoRrh8@4N2!mM zgExO+Oh0H5R0k+JjsEUoI+$TW)nwI5TMzzZKCG?rVgsc}#uvG^9X}#u_vjk_Q-y&j zuvBa7%lyaEA@SsL{>*$X1kMw6XB@alcKC%V9e5HBJ@dVBE46%_>fJ)E*~001ADqW` z`Wlt>m=)RjYp*Z<AT!cL|H8j=+xed<M<?{4?~`2{_PM!@`qoNf>lspE>m^Xh17LUA zAwQL~NHAnB%!<6R_1<jk<GC<{zL+1^02@_2HCsFzoWnI(T>5m6@>iiS`r_g5fz`O* zNZ}2hOUM^wT;c_o*;E~T0}4bu&#eA16smI14ObHs8^d=`Q*~L`HL3hDmKMx1aeej2 zDT{JHMbP9I*yyT(Sy3Yb+I%|+a}?8N>7^J)yW9fhm^O-%QcIp?l<p4CY_1+>!yNON z@{oWmkTCmpY7aSXHj?*?4fR%7dV3|ts5FX0<pJUlv1>R>bN&&`z_VZv)2n30bup3$ zn@gFfPjMGdc%Y$Y>fh>Tds=a<2NdD|?B@ZV$g+Eu;`(I_n?Uoj-8>rV%8&qD)>8Er zH4>JTsiXR_Q78VPTJe`8GIl0zr$bvEI;TSGk5<7(OY>{!*M(SD1s?b&t?s2Ca||-R zst>*L-`Cf@RGoudWZ7Wai`;fe%sp!~Pb-X~YjLw4Ml@-&GG`a(a=O#7fcI_Wv3o^3 zEWTZwVKh;4-P-5?^Hb}aAMuzm9NhMs^$zt?N~==5-DnNjmA*see%F3w5E=Fj{h&x; zED4#;Gk8nU3|Q+?+>BG@mCEk6sA1;LM_WXMYQqK4Z^zzz%HhOldCKheDM!VO(sO*K zd5}6a2e4w{jO*Z_<mdHhD1W9Wp}Wu?zCV<3TW5mGGOQ=THM~B|zORjAE4{Pp@i50L zMS#8`4PeT3wJS}L%*c(mMRo0vxbDc6m-zFrUsQt<D|S%^_jM)&=r&L@2F_p7_|p1W zVgxWZZu#mT-@p<Z3Zp}_1y>WmW6ffjC?|=c6aCZ5?Dc(~$RHmj8j)53Ci-jxJbI4X z(x3>rc~s0~Z#;ublYGvg1>kc>4xCtNzj`qwO~wOo4Q_5~o^?nJT^3!c46gYin`sNk z4>ocFtL_VB^KqV9I5wHsq!x&BN28WmvOCW}?4dS3?fjP(_0D|snAmAd6#kr5@*$2Y zk#nJ5Tag9*kS_&akF<z;gV?4Sn<24EQ#46-ReY)O$xha0>2%3eVparpoO7WW?G7c~ z0+Ns*<-7yGLhgWy9Wu>T3?&icYSM>iq0>#9sZw~C;fkDZX(5<yQm&o%q8$+wDM0%4 zY}R|ny5M+?hFHFn()D_3ntSIuyuhZSF{VyK76B`VZ9W8-6F9V8t;Z~TvVG0pK}nF0 zG?o`7z!=rh&tM#wsp*7+h?ui7GJ0Q>0f21u1u@ORN$CwkzRJ6XMYgx$5ZPMsTyTXm zrWiC8ww|ssw%9B#iC?SXXw?Gtc$&3juJF^R)MS4N?J80o%I%OkVD%<Jg{n?C4<2Nh z!jwu2hlxKd0G3Whx+q29Lg8>}o-QeJsf3UvCxYQ&=L0FWmVSI^mIjwmYY<H{@|!LQ z2v-X;yN8QR$9>v$B~Kyw*b%3VWE#wj^0n-9k4d*22GJkCbsQ0*Dya+h@>4MbL*wE2 zHarDleR0D$7tD%eg6eejL%eEOy=~H!(9zqYh$o(ewsUHzm&qMq-nOVu{PaGQGNkja z9dFxRO(?xn{)}tzlHTWoZ9SkoCUc}JnFbl~!yy*f%(1T$VNbHbovMYQj0GmuG8NB1 zM>jG=nHoeRzNC~u0+}I4`?1CwoS0ZxL(;oNI(Q2_(!)25?@#=(y`VIJF_fZ1XBm4l z;mL$OaF8w5>{yAZ%yZmM<QCjI5dV#!R49Dj8u(4~*y;N-%oh3;s(X(|IDV0yhpPt2 zHh>HvkjKIHc@qh+Q?8{Wm+3L{w{>ekAdzqpFjDo55I?r|83N3{9vzp`auqQsBV$v# zVV@!4XR;V4B{M1F7k?S7Gj0bTG9N#+F8ey*Y(T@Z$Haabo_yb!)i;B=rm$Ey?Rdfr zE&q$Zbh}b8E|0|*M++AdbA14CePS($HhO*=^3`LVf=1m-E?J`-kE62SL3Rx4HOSKr zIz|&<tTzZrjrb#(o5jZ7$B*!oI9uhO?6pHeSO5bCz@X1sSh_f&mQY;{1(<yPfZkDv zp>9xq#Ayu<FA_6tl^ia#M^he51=E&c&gLQo3jD8DjdYWGQZ~{EoVh0e(f!3drg(*N z6>;g{Y0*yOfG^66l?WW46Yyj9kwcJ89V=5jO9?qRt1F_}c|DPC%GaE0F$;lLYkIsU z(0-_7veZtm!KPO6EbpIeM7D06Noep!+isAZk<1j!Z;$4Wz~?%Wn`*Jd{1g{r7ytmE zzk3Vwb%)G*=i8r#ZIY}p<g3&oM&D6?@R*DguiglpTAqhB<&-pT-@=Ok?23JY)uw?6 zlUN==le@s7(!5<(+sm@mlQfM99Sb`;e?meCxRNd$1i*G(3(WUg`eLSBdY@X6Z_6Y& zG7%R5WZwY(?*|m7kKJO(&%&vd?OP5$>D7EeQ^|>D_-}9@J-88XS|J?cS;{evwlJfG z#IHKE@NmiwePeQ!^<EkVxX@|yuzDWX3<AUOEqI`BxBoNDmoHejSFLt_gyT;jyu%j# zs+2n%XkLr6y`8PFMc{e}@+RkUFblq%?-Pk%ZP}vC<?~)-So15G`u3!xvicjo+mM9K zP!Vj{SQ<NNYr(mu<pQGNrl)OWR$F+Kymm5yU7{mZPO|W%ooOsogFVcAZrbQ+&iFdZ zDp#e!A6xW8@HgR=?4l5%1)r=3wo+BXR&ZClx_HkZ@jqbv95+>Uv5t99+?T|eM$%kG zBosqg_o=V1e|IZenVZ`F8jCEeQu>}C_E77`FMn~-tz*SaQK(Kk==YJCllsIJ&HbIu z-U0%Svil+;6zjrd+YHRvty;Lc4VgiB^)a(9Vrbv*HtJs_W}Clb+6-P}pOaslHyq%0 zO`X$N!`bA}1A<UPFVIM=K1SsiNTi65x)na6>d1l3(-DhGdK<9Bu!72IeZ{<+$g7|H zTD}%A+w~Q^S2V~_b|&@!1=<~{bhEP;d@aybe3g)kqv;?p{qn!CbHA)7zIw?m_YCgw zdHw@m96?dNa>I!K^FyT|&mZ9xslhUdE3YQn#$_>xHu)89vW#SHrkug6r~LPi-lgcn ziuctgcGko*fC{OzBriMrG$!ef(_mZ!#e-rHKZ{l}*9WzV4~hV@+H0QaH6R*SZX~8S zfYGYItV?)E?e0RJP=ZZ=#^Mvj-R)U3kdcXfTLp5a)n=r*b+!6Dp2R9N1NkxSVM|bd zrMd;MMk+(j<~>ceTe0V>2BuAZ!lz)(XjPpeE@Q%-f4Q_fu+<^m$vUQBZakSUIr%Y) zDrLKuNw=Labm+JHbcKt!WH*_r{%yySV!5Rp`SWsB`U-4~+2A00uiKchum!C}jl9TL zT>U1G50ffteHjnvvp?ZAv`*#C6w`n(2ki!HA{s7?&$lrcvL+|pErPwV0R;Sksc=vA zm5AGQo13=m1Dj}1p14!u^Jgq<Tm44hJXnPv?L<HfYvFdXu>Gfb0QcxNC{ep#N&+R; zKB`Z=L4++cvt1o4d1o2j(x+Ig+k@<HQ$_&+83`aj%5l7yo1Buk&yy@(qMp?E_ex^g z-y1C}T&?d8FJihHoBTEzAn7Q#*bStp9+BJ$iiiFDo|4mruU69&$*Bkiyf*x%IRrjU zNuZZL0sn6Hfv0DSn7}zRn595$tvLVo#S!47P%%PBi#<`~<S0GOX3YxG<KO7ghhCi) zthMiI+Ka?+2W(5jzxcDflh7z*n8vgapj9MprKCpQDSyh}1GZcH8TLxX+;X6nMhU)c zk56rBE^2-Zu>uhgJmz>+u8vC<w#D!Eb7TQ_lecBb_D0uaq!z#_#i%$@9p2==k=K$L zEoLHJ&yl}$UwP3gPZVT$k^}z&Df*CSSBn$1(ToW3BcBTuM^Y)ume03xIo+Rn-$=&B zqEB#dt>Pvs<s8Q+n&e|Ui$?x76GTv7S)~s{8%rTIKdQQDKwN`pR2XZa;#%?wy6H@8 z2XR_4%7J$1x7KPUu^Q#$#p=#O*ZNURu)h}ZOB&E&%uwZY72dQLl6bqY6T$AXE5A#b z@=Vq@tl{^g&l7f&R$*dlf(Nre(9uRH+e@C&iKxDR*y_LRFCdrRBF4)AG2I{sxL`k# z*|>L{x7w9r<IEn!xIHs#`_Q0ei^^0^^0VN;bAcgqYXjF_*yzL7mjQ&lgxafH35)0# zm*vCLtm+&<1P@(YKX0cGwlw@yH@hrwje%KXXC13tIbPdn5G`5W6)!(_Fh_?b9klwF z69dNnc_Jq2dgNmgDvFQ)Xyt=~OR+Yf8T3qA=5_pP3Kcte7Qnv0*pibobD(yCaQDgC zv-m{I(k``TSW2x$PaG_v8ADVnpn1)nFz4e>BW-}(4!q@<@3H2c8oQ}}Ldm^C>>1{T zSqOHm@}Gdr6GN{==xy&GqNzuM#7KFF0}PdLW&ihw;6@mI9LssQdttnvuZMozSG(_A z&2{0PI%0>MTb0=$&yWi`<ASoShnmWJnH2};z9+u+TD?oR`Bj~3eTs}2<WM!|8g`U` zxcmbzG6~-Z)XtMg(adX>1$kxKFzku5mT1Jmo7bosw3;QGdEl@8?1g(lgl-3QbAPTe zY#)SVaXnpX+#zRBnF{Nc%u;Ev7bCo?1T(F5D~6`9*ThfZW^{^bi5j7i_^a1+TpLez zfS&&J+B52-$nl~NGk0zEG5Gt#$^kZ6Gz{Pg^MSn;H3Q9vAjS$03p0|u!iSki?%&ZQ zD-}&45V)_#3^G@sb+KD0QjrJiG2k_s^O%iX5FLCiaXu8CU}k5YOap)~@kR3FPTlCz zv%_skDnquQ02T0&q)<YBh!s18u3D&w?wCB72(w4~Avcgs^yqxQ&BBl7+9g$6J^F55 zuX@x8byvBnQ<YtA)9x0y8LR8TW78(uQjJ0TsCX@aVlvp&a`2DY?1>$<tmlW!TtC%3 zn|V-dLODH`r+{}nn;KiG-L2=bHB19#LbBkLJA$nHE+oCdMYW|6e)p4gdDO&Jd>aH- zM#mP4uodensbun>{`#TaG|VV#DkhQaC1ppM`6z<n%EE0&Ie)mm@|K`wnzaNflTAN+ zvYN1i{Tn}rTAO=ZyxSs5IE3{yiv6nXdrpkva6u5X$0edV5<F62Tg4(-RhK?6pz{ui zj;<Ztksp`r*Jmd9zu?iBX!^Fz<xnxgFbuyni6bz0K&n8#aGP8{QVzb<@T@sWP*!m# z8;)fbB-`1)yH?}FT8Q{@&2?MZ@+Vmv6Js-Z<{o_R&fRi+aRbb93ZH<5mNM_LGRHQ` z3+mJF9s9sSZbCDOLf6p}hz2DE8tkwumg`ywq}ank_LnAThWKnsWe-~to87qTF>1rC z3`d5na3au^xe~$CkyFj~V347YgRo_hBZyN)^^;~_4_evyg9l6?@$ZJj!C8JaJU_te z*k$&mLjm~nQL4JyUc19%@!J#Pp*nRIyC71VMY%nyW~m+G!zWt|AAeyZ%xoo~lHwA2 zu>vIuIL_U7uJDN-+u_TIjI)bBGLvA=#~`o|Dzo=w)PScId2K!$t##u>sT*D|$*>Fx zma>+_B_<xtQ_nzX5L%jq*%Fska513vR$uj6%WQuvpc?4Q+&8<9yg!3Z<`=kg3gG_I z&r8D`b`>8p)GiPUaFuB}wYYm5u=78j?GSDiTmrt4yq^{B$NqX?hb2m;IR$ja2d!eK z`JNsb`lm+@H`icd#sK^HNXckgM71?a+TppH6&+9GDsRUoYr-l5A{Brl$@8MpQRDD) zA4zALu{fN~e<!1~XOQ|H2%DeT+@CFsUr@eupbCd#EI41i@jgM{QdOQhmsA=d0FDmW zbdm+9+xW$uCBKY_O=Z#-XRpNJne#8`wScnB^{gdU8P#r7s?H7XTRI!#D~*w8uCl<c zlAb;yL%3$V^sghEhp<;Vb7y|i(-KJ;WNw!E&A&yROV7%ni#TaqfdSLgESbSA2J|I# z7gkfRo}3FfE6K+<RwE89EXHy-cA^G<Uwx<%eJal85K<)nJt$G&{6Thz-OhYxAYl34 zX^d`!q65b-to(P`RVYbBEEbzb#j8Awfox&i<A$v+ykgcK{007Ic3sv8-9zfc+Pe_J zNq9-mvVs~ERMj9JxHSN!zIkQ-EjVb1i<Y?;`W-iXs4OFN?>a!gG437l8^t_;K6Y^C zyCdxCl-$L?HrjIP&HpP!fVHO<;`<nXM5v_zIx=gEWDP9}*K!#-qMKB^It54%Kv7R& zw^S%IF+I~~z+q4|%_UrlVbj@Lz^5`xYSH3rfG-ZhTqLw3YgD&gER7ze8%^RV^@*v& zAI)du80>040=qY-zO1hZ+u59h?i#+er0UB!_2%r;=_f!ZMc87)JdYee&0)t3@BV&A zZnyB{n5!dmnyIu;@#zBTj21OQuX+1z?;VL-SWTOO`93XvE`%bG6aafi0BM*HMarOi zmZ5}Nb1?s<{2*Q{Cr<W{gERs&DVbNfjP9vg*H0OSzH~bpNJ$7VNx>W%f+iOHWqwal zfcMG6a*QJQr9#4`Ty2#Ft$`8u4?nW@VFp3T5efbKmvry^mp(Ev*zg1IsFa-UD%Kg{ z9J<=GpyzQdO3Dn42rYaxHi;kWr1g=_L3>25<M;c%X~NCZtSe@5ie^0otrey#4)>-r zmu!qoVrXww0(a5KQ-4q9DC)HWOj7^gvp>hlANyA#2E+Sc*^OJt@s_w<i56FLUFaom zg+@M#tUhYK``^15vQvR{PEz4wU%Er(<EXnE1L!b?plmnn$M>5TGy+$(^ZgCsE9ep( z*DC!B0IcqGTFr1quOQsPD8@Nom9UhypFu?^hP1VxPAw(*H4SIO7Mg8CI<`R8jV`|y z-{(0`x0$!_ri`dJ^~R}>u8wGsImn`CBnFp?IV#dNqXN<rre*BeB!OT4;BS1kZdep) zmqStkFzCGsjKLhzY2#f!srHW*pg7=D?WL4k3o(&M%vuK>Y-CJJaXY=OSKLNb^z0ry z)^6tw<~%(GqBkeqpF6-_q2XpeL)<--Q|DX|yvc9|7K{*GT?uGWC%(wo%G|6zuXfOH zbVI74>Y7cZwSZTk!ezxdp#*-UIWP~(Gt19I9mYhU4@c$U1+S#@XMpT1+D~L{CXoh7 zxl9e4)^}WP`r5+q#wBk`Vw!Aour>HtRj~4-(d(xhLdpDk&<e`xp&!0+Y#pVHFTaDC zrBjWVq~5F+LR4%q+xzY&U?)HE{UdNLfW?EJe8mJmD*-zdi?iXfu>-W3xRX3i1YpN| zGZZ3^KUVvaYnBAtAn4t>_RpgsOC{R?WtT2{>)&aHep&`+)#qP~B$iJe8ZpZ6A9p$s zo!-NudSzOX$9pehPI`Z-JsV~m>FiOAH8Tdbr|*>#+1F>nu)NW)siIeQ4C$eZi*oVX zKz;lGAuN%RI$<13V9<S`j_!N2b23Wn7YDSub1{wAvMuz9jjFua>MRLcqZ24khRS19 z<7-f}exA?T#qhO@r?8F(*&DoZFja0A6Lj%>!3iVmTL(xL7e0L*NMeS}4vk)#x4{?l z2O?p*Az^PqvZ25oSxRCv8=)^d|Ma`7A&?6S!Sk<~cWdrI;ug?uh__EBvSeD%Rn;+W zgdX@dl>TTJ4=9GHT@(-(Vb>ZDO5WK9|B;z;sp<O>3?O%<Ix~(Hr8xp!c*fJp73XLx zTG>~7I0SVHuJfpJ9R1)XzF6e)()>y63Fmh$NX(Bn?pj095hjpPsQHGw@7RBdHFUpW zpkXKL;^KDwtkJicX;bZx7GJuW)#%*eO;&)qNc$LC^JU%PlY`-Z7R?mDboz}TeMt`s zCoA3dfLt{~V_i?`vhVuiM~l*1slBB)b$cO_T}`Q|4n2ve*FNuqKuWx?QHWFQy#DH* z3%*Xa7<asjV)4mAf!qF^@Dq^dW`rpoLV75>c&FGSrJR7{PhR-oKVyQ30$qL9`=li3 z7TIJ%aV3ej94LRQD5wmN(0EuFcn+MU`%vKUIc4!AU;enFtA2tcF!P*T7{3T`@w>fn zEO;W8LS&}btSakOda+~|4IZIBs_C+RMXcB-6v@D5%qa6aD^$j6Glb0KRFkViE9}l% zP1@wJW-P0d{+g1tr(9Efh)cb%R^GHzCcWjCZg-3R+mxTr40eQ}XR!HJV=Y{P#km(* zAPGUSdSRYBX2y)Hw3x}mc!YH3O1Pa$Jdl};FMs^HTqI9quc~axjDiY9@<+m?CF!@E zco3f}VduHmAw%ChBo%5oGb;69UY)s&^los>uqXA-%v76<hlz4GPX4uSsc<8P0{c^v z&XWyg;jqD6BwNj2+TLBw;<TDoVV@EJMWXY$*eT?Erc44!c;dar0o_Iq3fdWYChWB) zbTa%ASO9FOodJ6q6YMigw@T?MM}!!Fu^HM7#;x;7?*U=dfQ)KucXD49@_SHpM+)EH zabtq(EB!-mVzSWp9a9U%8vWF1$WX*QGvM;`?CRJ}q{V(~O6I6u>>A-q+sqccaLWI- z_^D&|g#Z~hzG5L^w|T>4d&7F^Q@%Far*gB-Rl1~;>V#PuXtY1^nHh<^(9bJTKPB8b zHkzeq*}^8OhxG2E$0xvf<Hb@mL{B|CcMsB9(yv%UjB{A(AeHn=9Z#m;V@N{>v&|?c zmZ&;2&e`IJEa^3^D~3XW>OOxxi1N%8sP?bg$hPd`<m8(x_ogwCD}VFVZW5y5&wA_v z{)}I~pt-I<hOUsJZ>KTZ3qchnToE+rwmab;qHo91;(LNfFici$uLW1_BXQsjLBrQa zU4*y`5I45Vw|n*=a%GNcv&s4GMk`#R)Ydm2rLKZ7bpU8bjtH{`Ct0WC*Z{Ik_WamA zj=oCt^hvYUbniB=6h{H6^HGh{HC=tiI=)f)&fNFTE`pxu%-(;5F@R;yhB@S!8%Y35 zL{0oxSb4Bj7-F@x2|$`OKA7f!)KZ|AQqF4eTS3hDK$}s>w(KoXd_{af4-XG8u^1Jd z6`K&$T{ZvZu*9kXJvHk5noDP~8H>Pj`*`QWcY76JaVYU}BmUitr%VnBu{))yx`0<Y z8E)fYxIP2LNRp&|$T_s*(-IuR!S91g69~jB0#uX8l?lQ72ZNIKk_BUYZG7z8>sQc2 zQAx7|By87GkQM-^OxJn#*ip|GvZ^4oMN;`I0S2~3PA?oIvU?SaQEHD~dR?hR(R?5~ z)KC#!B7MRmkRSr0FIeZh4^g*BmEtbT$<JPHC-H`}SOKc0y?EOz<mSdVp(t?c^OR6z zl+OcdUqhJ(dk65SVsk<6StU4lL|c!!XKK8qX<0_#JmjrM+;yFgJ*<431V3ZZ=1Vr7 zTsG1`<nAnNw@A?DrIw<FTpfHp+H-FBz$LdT_yAV$BceF_+oOyI$GUzEH1mr=h>x@6 zcyc1&>t3@T*HDcL#qgT5>b?1Z@g^%XcWWrzLWc}vX6BifZ=A@0oPpr1*d^#Q^%_0r zX9*K*mO<(U8fa{@cE2H1Fzim#;^(U4^M3jsSLuc~H_84WOjZ{SN-Ef%+ka=rhe%mZ z{bShYteQ7n#F`sE<P=hPebZ2W$QB*NhqB9!iv`a(>hDk1sf40GmT$H`l62<?2@nG8 zl}T`&fut??LikE`)Oc8^v>_})RP;g%Bvm6m<0ko{br+=1$I2ash`Vx`SsfoZxlX)| z%}WxNZvK18oy^5Ndl>_uuU)kk4IFo087W3A|7VkciCTho*upZb==}kK_yKlc>Wy+T zyG#m<8AnTz0s#CPa8t@wI9Zu26fdoxu+((j>cGvQ2*Qr4v61zpp{4gWGJ(brSKU?B zgB0thi|#k!w{1}|4I+`ZpE(<h8EvX5$D<oiQ7O?L=QbnW9y6#;J}LlQp9WXSJm?+C z+P#-{7fm6wMcrqeF2^~3z>F(~fG+@DxP)Qa4aS|j@cCyZ7kJUb8pMI50j62}>lqYo zbjU<z?g0n>!b%ktUbQzds;Q@H$@F|lYo~34pmmnCZqcf7Oj<B=X`+RFeSI~alI2YT z34>_k!#<(ED$>0pGtkHzTfOdjP3z?QaQN7obd|WZcOU>D9RcD833Z?PxO=|RFd#AX zt{3Ta)yI33_j$GjAwdBPFZV2r?i@!e(75`n!)Ym%cq<btUw9GZtrTVd4U#pwC7W)Z zW_#vRDCJgvbszV4dERgZGXyJob^<voLj_kElyp)X4T9Dw<JZV-k;)TdJ1Iw5rgdk{ za0dE<wFa=(3~|sH5I+O<0q9TK1+fx_9+#6qu3@`gf_a#If&y!%=Z|?1_>Ic0rLYux zy&sh~x}I#udN>!ua})f>AF#Gj_B;J(o8RQeojg|J$ZUgliLMAM`+Ym`UePq0GlRpm z*(Zc>rPz%LlB5y1T@15Q)Lp>9zgLqYD54DbTpV1$wqor*7jSC;0Eh?T8>^oKj;$3x z_juCc@FQ?due@hFU_AKI6PGT*Whbv41g{7Uo~EvnTxpNxvCg;vss$yyp}h)8G?C0E zJnnblpZk{KxlHg=1*b0(iu8Lv^TO>P3NWEZRKgGYjK%KH#`6=Lb8Fgfo&o>>*};_v zG>ab*0juzk*O1POm|F+ztfv}QM;tB5%Y=jU?aBzh7#tWEUW#s+dcQ`qE=eU85N3hR zMYdjlM0~Ao>}buj!7&|^<7;v2@<0LxLeN8!)7@Pn|LEKwi{~(8n*d|zn@}o$QT(JI z2>}=BXp={TVK2<6yu?o{foTLb1!%F{E_=+ys{c8$yZ6wPOxj-}Hp5ID;t&c#sVf9n zhDxo$?{xw9tmbs(f33h<y2z@)82B@m!#gA6Z_>7#iJ{i|<+|7m8mkl%OIQ{C=B5WJ z9#(ifOhC6b4Rjq36IkbbDs!1A{ot6`fO>a0LM*H{#61)W71frU9rwBp5!|`R@r98y z?sY<Ea7T<Q9^k}&_1I?FD6WPQj0E?t+9r3~9UH}Xi1*#q)aJ!F@kq;$fwIB@p7BM9 zEcXq#JQtyOaYyjph0(8FZv|E#?V@!r{KoxO;7Rh-!lQKPqFpwep(<1lSd}(vI5H5= z^OU)%UyFRA=3eC?vj;n*n7h)$==7ZxjO;h4tl&|S`U(D2E_RI}pMy=DZcg(iM;lnU zI)`jYTMc{C7wM(0_HtgCFH1>80WKWY-p)pn4wz!mZs#KB*j6+3QyXmfP#)I_1_mF1 zVLs`Q2lZy=oeB!%hFec#*SwT^M}dhpHPxDh%Wo}pd^a%8KXWNIMWYCd(pdEGLY3ea z+4WyQYsT$x8kITW-{ri+Ncs$m0d+E*A-9k~h_<@u2QLnUi`MGB?3^7Vxvj4rWSi24 zed#J8a*p#vJ4sV13A80Qa>SLdrnze&=2z_6*qHex<`=Zv(Z3tV>7rO)n14^XUjhpn z{(Nrkgd!x85R{k4_mG*B`|2>affK$RtHXfUgELiQF(Zutnppi2UnS;9b)|JT2ZmXi z;M(&2`6ArGMMW)}GiI8COQFXO)X2qiA3~(VvRk%<wx)ToA8Zf6*IsfL9y9zro`*Bo z=|`ReV=P%rO~)mDo1gsy;MJwu6{++T-_G-nUU%C;jw5kk3pF#Kg{-DLAC!stby+>W z9P*XlA1+3y1<4XXf*Z}iFgI)r{XvszwZzjEm_8~MaQn;TiAESbS;g_!qNo#$WdLjX z;9<bh))lPTf2|A!!+b>w?W3|K7OmvWebn*LquO?64uY;-H04h2g_ncy?>xjZ;Nf63 zQk5u8Zvi<EV;X=FOpFWZ2yMyuP^izm+fk8Pc%1*vpb&6uWBOp%JlXy3%w&mO>29&V zCL!Ok2$4t$--olHAmFAAeIWy^eF?(8+zAa+I|Nw86%f`VrA=QyIYnK^sOnAD2Dk8F zA&v-}#p$|`{&N7pR2Q?Wc=wfKKB>{`EeFpBu!2ngK5o!e7KzD1orWn$+z-c)T2Y1t z?aGF(a9qKAjJ{FQhgqaF%-C;K5^)v$J~~xUCElt<LR285t{%d)y0sjyK8*K%KH;!8 zn`L*#r4fQ_E(9Ek(Yoik?KCAbv&zcvY*K?N26S9hi^=2zSVT+E)7Sop!33+JfTcqI zma=gC+$p*1B}-j^qQyjWd!j$ZOTu_hHCdSF8O2M|;U(sQ%KMPzRd~tP7<H3CqB9(v zuiF5iT(qXc%+87KpyhNaCvY_^P^E^%Ee<<NH1pDS`?W}<IfDo?{@473s3kz2c^l`k z>u(AivT*Rw!_Z)=T&U6TZ&tQBXureMoLNXdc|-z`Jt_is?MvA@_n5G}z4QPb%1>*d z_Uvwu04QRL<YK5?MkJP@>*E<`UqyfVJ9ds#MPU~w5Cj=12knE)h&&s?Qy)ZgaSVed zR;IKtyG?vr=U#j}Ss;YX*+|3p&02F}E@D81**+lL7ttE%grIjH^Q%1&gmY01GK*xK zfiwevCHVgHMkU_jFw#J9tz2U(Z!fo&bWlD)Ocn?LAeAe&{`3YN>SW#k3`9DODc?gx zG&o(V=^Fl?^9+(8Lc|0u=ZHDEXLluAd%_T`qvfTv+&q`KS8P9A12$OvC04flvj4jk zb+^dN^S2QgtQz~(&L`sC$e*7dn=zzoOt%I=z<68_+#EMPeXZq&rY<P^J?F5Pp0!TZ z_j=*ZQ@|OA>pXH%j<5}uL;9;|0YfB_FzrBSI|Rvj(&>Q6?_#RNG-f-17h605;woyw ze>@LcxN=2;cJxfOI<7i-O25LcjCVSBK5^Tm42W*wg$Zg{?I!oti4-&MZVs=oBs>vG z10PD!EY>AhY4<X_`OKc?MlBq|g&khrIVga)r=+Vm7@^HOeHmUjubGNn7XdOI*;K1g zx}DAttnv~`3j_{_N-Hl8%!nn-ncB?x(}SW=C*oX(p*F?vFgJW-5XV0*UnI&_#DPr4 z-!;&b^qktgtPDUM2iwySSJ1H)-%BZYiUpq@3THUB_FV#Vrnrn~Up}N<9~W=&f_Ixg zK|VDSAJ`+STDj4o0CTDI-gl8<>n9e;8PU($=ZW``P`o|~2mlkPMrGFcP>C_8^doUf zy_}tLS`umNJo`^*vZMGHC4aI-wyg<19g5qoSwAy~*To#E;D9k>!cUGMum;-18c{QI zxn0NR8Z07Ttc=%WJF2(|aWkoC%k++xncRZY6~-ua)A#Xfj+LvY)96pa<Sa9*=dW;B z8~S&Bt;RPrk%62?DtCmNw+t6<y)8=3z1+M>#;z4kt(P00+`JF7brg%4P5W}(oFXT4 zw<l4@@w)1-=t|HE4Hn~{TYSZ+yivMQO1*g?z2-h8FT+nU7kp?<eAn)QetEXv=~Wvd zfzw`DSVN=0Ob7~Et$29{;o{8QI~+!&oM>!Ul=>cjP!TF(&bpXHy%Sxe{TG##;ZW7D zw6B3qozuVm3Ky2QCh{|u%W}Moz?YYHvJNo1+8&klsV?^(2wXAEgG*0;2~m4jQt8G| zh%#a@Eh7tPWZRT>4N_mdZxKfRp8#?bjqKo(d`fN*j_A^fxJW2&^kg=$pb2y|@MTcT z$d?5hehWs!jMMzwDRRUG(muP%asgSt%qO4!;Bph%Mzy@Z?}}f;0|jMZB@<o&%>j&j zw0M1p2jEPPQ*b*uiEF4;!Vm{#?Av@Ob3@(ugi5tkZDnjK>swwYu=Y6IuZ@e#NqD$= zs&y+V3Ltf&j!RU^sl<v4D|eo*ty+A9rd9n1xp9q<55b(@Hkt+Kb;>5!X2sqN9_H0N zVTDGlo9s~+MTpUIl<`T#@7uy(*Xu)jxYo#T0Hb>t&(5%M@U==-{POq=V}`s=&d0Tg zP0TLW;p>MtWCa<4x`I0l5Q-*D#b_bIm`l)u)d@4ntgch}$#x%f0Wt##M@T<RZRHI* zr^#KPFK0v8Z^<Qw<x{c$73R~}JuiYS>`0On);Zf_Sxt&NEXhR?<2q?$n#-$^G6OyA zFIx-WSA_hL44UWX%2RCwKUN0-HXm9WyU8{_J@94TOk4w`V^V>bhd+WoYF70H)UL|6 z#!&BK8~g%pypmj5=2!fzO6uHY5kMbz=7YAwAg9qq9%x0nl*fU8aMNHrh~1Dj$nHw# zZX;I|W@!V1J!-xe!^3KjEymM{bc&*F)=qQ>|AGGG=V7G{iKjy5_h_Vz$Y%S_%MoP= z6x&OKrT{ghV*}L;0W%ns@7jcvq@zYdJ1GjkdmzuWh?}Zih;B+yGB)(1gKNQ;000SS z1=5E(^7OG5#A~JWA=PM?u?6xo;8lW=pMnM=+NrSAEB-L&Txp5AXlou@1?#qU+)*j& z?l8xh@C1VD+!f1#nqr4GB905f)lKKa3*vhUYO!hgb0{2A;Z7*ymqHTu*Y4GA<o@66 z+=$5#V<uiPF_zM9yI>=+JRC*fXF8CL;+UXWz^Yh;8vT(K?oo$8R$Rt$u-av_#-~0! zPWd-aLiF!1IWgY5l{z@=#j7Yc2<1Bsoc?DMCw8Q8`cE*08YHZ?6Nc@H6mt&`xW{Mc zl=)yJ&pBKAf#VvCOgNE+t^x>~6=aiLoqKuw`x2~TVK#%MhoW6jfnd}#s>7|nb3-*8 z?e6n4jLs^7o05U??1ZOSGR}*saC4%v^)fUh^@)z^-oweXsm?R$@Vu57Y@$NDYt*?* z|7WL6Mh1@4rdI<Ju)HBF5(s>rfM!iB95RFjzx=Pr*v4t|OtW3o%UHTOR))*PPwAQ} zIun94K`7b7A&tc5@+?0*AA6Y-LiOyYp6+B8B$zJ~w}=<u?A*qmb6kvP-vy2O^frc0 zmi53SkJ63T9+N+BlpkPRlg>LhrLv|5c}b-`tc5rfRId22U+>77zP#HkE;uW-?U-~w z8A;@0vKpFBrX{64ot49)-1uD(ZVPBTZ>2_#J!;HL2E!L*m`Vo?8aAYW10wr+Jy<LA zb;+Ul@!o<vv8K2_-?)3VDv~obA~pWTK_B+M4-I}0$=(H#)TuMn{`D>ow@N<vIF3?u zxNU7bIEM`T4t78edz$MxTgy!EAzjUjT(}cm-Vo2`n%>L(15s`0AksNj?2+<~(cx*4 zl#lEf(^9g_-qmcv>c;BAcQKhb8LTvqZ6gzlQ(7A`Git*{Z7N?9G|O>zgUb^@wy8-Z z0tKp?Sn-jqC04#C0HrYAXt8pshiLnvkqDl)L$;nMx&1BTa4ARnF&|b?Lq)N@_<os^ z_pf#^?)633>{>ldDq~0YlaJM{GvCcl5=7VY9G$}F&(Cf5;ahQ-%^KL@{&UedmG9ta zDT#q6zt+a!Q!xGWDtE^|m{%^&P(J%z6du5>2P=?u^GWRZQPi+6_yl1qLBHsEH+1or zf8f@r8LR_xd#}}k7?_ZWF{GFK`jTxSt4j~8{H#_@+%>g<cnW!hrI|-S;k4;Vb_dD( zU4tnz7>$`&+mDe(*jjsRyZ*cMKk)u4Q&rjVZp&*Y9oMP}h7iOe96JezPVYBx*47XB zX-B{MYDuCgB)-z9usz7({KJaq7HK++q9HQ){*CDv7WEhV^1o)KO?@Ivlw^$+v`DRv zZOay@b0sl={tSBDFd=S?gyp&Iir4|Zo*WJarq<J6Q5;@lOHzLPzhlsG<SXqr^h2$e zlIrKT9xgikz{Ccd?`&=cj>EFvCWYXItcd3><Pz+4ZB-?Z+mlkLt$n2Tqn0-3ZwkV3 z67IULiCna{r`u4U$!TeEJlVzZoB-=%7pFj@lK}+9f$>a($NDGTE#1l-q4O4t3k+h_ z>hK!9qkwXda(5bmJOLpU5fp^><>AN^2pLN!dO71B1-wi_nAJkFQHJ<KVPp|Z>_`cs zDrb#xprMJ3NVUyn7>wqtW8xg4-8W*N*@t#-$l799DV>2wS6g;v8G&z#V3H=VW7HO9 zu<T>(AA0ss277uHCFp1X1)^RR{jK+=E|9Z^)H{S`V6vvE&vbSBiV5cAm=lX&!$Z_v zN0s(&&BLzC^zsTJHBC_LiRMkOxejGx;%7uw5|yfiC5kHtzcWNj-?q)IIC@&tix1d% z+(af9*pSAq1fD3~pq^>4n8@j|ZSJ(VU;)mFFSD>u{nWx6G=Lc-FpN16`@>t$B!@3t zU0V=2`+YLqNH{|T&eDs?fDj8s82lJ-xbaV~cE!x9K6MQ-{J<g4vMrQK)R{+FFd<9R z{!R!x{6Sf}>QUcS`ou+*1ZE7qU?RQM8Q%oVdxj)xt!tqrbGYKkAOjsQWH9H}IxUb$ z)8)}iAYfL-Q9gE)>n=3oi56Ix#OG&YXEX#NL*_aecGih&chXbPJ3U^GKhg8}<AEfB z3yT=&Q>k146s%2nal~Q*e&b-OOc^t&0)c}w-FGmT`+DLj>dWGV;h?vSYk&h4m5~Jx z=hMivFG2`T9N-y#yGY&$H*`ysv|D6puFFnP7?Fd0K=Sv9A;S44UXI-|I`_bWkaTr& zSbHzoFyQ%+-&F&dE~^ci$u(#6jS|`<on-I^j@sOe-!wH!BmVWtyCXzw71U$egqZhA zf490)@#FJubn)p1vuD&V0ukYpdmKkxw(^U%Ko8LUViONB1SvGS_s0GMd|KNhSF8^= zOvt`k92~99<gxRsl0=ijL@aaAdxe*+0?Y^&nn#KBN*NIzSy}9f<{?15e}A*>6+KWU zL2q%0fDmz+ug=hA=UZFZe}Yotp>5@Qx0KW^$+OGQF0|2YTFR%dK%Qsgz7<%FQ63y^ z0I~Yz)zS4aw&EjxW8{#cfyM!z60BB)<T=RI1+#uWASC|9XgFC<5FjjpQpdL!_!8<5 zIG`bK5pu<Ysl}uuHpzlFD`Mw<H;7Y5;&RW&K}{a_;1g#S{RuJ!!U9T7>?EoeFo2OM zg;~7V2F-l8&{zkcYatoV)fhS_!Zn;zi)y4Zibu%^N?@wt1r8SB+>VZvW!eR7ERdQ? zAEWK=T|Y&HJaH%)z@+3bFa5zDb}UR-4+(RytK1@k4zEA+_tuDaP?AZV4EYocxf{Z? zG)zwEvG-tZ%8rN}Rg-RLJUgR4|5|Sc-*@3{w1I>SkTr!TEUxm2Lvnjb<5Xy{Uf-_5 z=Jy6?>ph5lB~}oM{52~`cGCBMBVc{-xYOVO0005*wIWHs_T2Xq*1;l5Fv+V1{uLy# z9`Ek$v<B#UJ2}L`U?12PFc6tA^2@`K!_@?WtJe1AcPqqY&>jFHup2EP5$lkK{l&`L zo$gA>aKD#M3#8#IA@9<@!c=_{0l+bkPxg(W?u+`D#*be`jAM$y+TjNM(1(ZUJSS|+ zz1S|*;XUGG*SFG$s_nw7p15`CJy<BtQXt3!7Fw428vG?!-|_BUvf^q)2vhsBUkQ~b zU}0pRvw6&{m$_BqY0X6qMBD?FMKhLG0>pc6j1e?}R&)1UlNl)0uSw9*jK6tBmc|p2 zO7JS^Lz=?xwZ`aaSOF)v5Q7Ja51mW%f(7z2AQZWdF>TT>c{-MgTt5gS0*{j!8LX$! zE;r0F<wb+LejWM#luH+k!h_17f_yxua_qUKjQf5ZI;(y@omx1VG4<U|f|e@>g?_a< zY%$Gn_-?)z$J-i(IcSaH19-Q35F%*+VS?86qVGu^1r`+#>8z9y3^zl{mP2B{nmKc| z^#1In0H0pR>9<0?#8Ou57I;UqM-xYRbxD_gsfG$ikTcb}-}_u;@`>I9Bn%z4f_ZTU z9y22I*iril7GPYBsi;4zeJvEU89C5uMx#sPxcY5y58#Nc?LDX7<>^<bHUE?jo6zpe z;pF~NN$fRLrc#MsvTpt|6SHr5AQ>KDo{q>K<{ba=c{C>m6V~gXFXbr>(j3AH^}osK z)wp{Q)`|t9a4BvHZd!F}&!&t9B6DV$%UC(1!}kj@eE)B6`XFtegNT7lfMU1eZLec| zA{b7hQ7fm0GB-naFVFCW!(lZe{jK-sg?m`ml9_7wLh5O^qsV6gw~j-aW19aj7GPXp z){e0(>QhDmjo>Dh40R;^-cchx2vprmmXZcojkNL0a&M@2-F%%wBT_f&@I<zo>5eB0 z5oxjq`U)*N^7hoaxSeRoXT<%X2N3a|Sby>)&9q*J^PQBLOqn!l>QPw~g31>}v3V(! zRe_?q%`6AfFII^#AQjcH@oUghaXWaCX5thch}(P6GkMcDrJ#9`hM>VjC6#zh87$s# zrfxX+xIhF&-?8XNOBBQ=5=r?+BDCDw6JH3y%w=o-$X2~jz#(<i8lkef;SsB$<;U;| zM~Oqrgcj3|85|>W=gvhy+U&ESJHRHsxe=d0XAlfXiJ^qv<Bbw+)KCUvJOMvG?w+D3 z?w!$CDpmeTI$n!9Vy+B}))wvzngbkK7<ZyS`l3O}IN4W8awIOL`=N+vC%?J;bY~4G z(uV93@+P^J`vKU{Mmf6=J{+`bCc&?*W%&3krw3dlZ^{|VbYnLcIH`(@4G1E_p7>U7 zeM{7qXpv_b(&7l30adF5oAr@+7xh?Pt5u|jGSLC`yfh(47zQM>ADMYqH=mbC)dv>X z^{gjRt;$~oSrJu*DMX=B4ODi`R`~7*P$vC%lZ|fkudKM1s?d~NBqd&ld)eelOXq)} z$B|Ln?>(75FZI2zKIkKQo-Y9-JSj|aTk{+lH9bZ)EzFZ#*=@ewr)GPYco)8`TBCSY z8!~xz*nz+;-fH&T#)JLH!O-L6ZKFstHsFOb+!_@s7FVnxA=Gmg8}kKKa|=o(-AQyP z5i~m9#ZdA)^9BQ3B&2<uoKY~?jhCGZcP=HcM%1oxG|5Lc5@h=iRLr<1UyLgRg#oCd zTucA6rjHN-Bd-Or@V1p*nx$ZXWiaW*rx%S{vmrfnk^1H)R3#ZO%JFQ<&@I%pqTA!5 zU|U?^%%-78EC)18eC$0RC3h+jHLHc(nk*f9`!VHp{W4ug9iYPt2m+zc5Z_TF1)52n z<8H{f@3?Z>$0OJQ+v0WOg*EaRm*-|B9Wad^>TjFnc*(gf%U%H;HT1B=jNx=q%lTn7 zdDc*+drY@{I|5pDrr{0sA$-1_ag|WQK@=a!=);h(UDlCoSiCJL-0wNE2vPDG<4%oY z`IRtOyKTk-C!-NPQO<d?n@+@x<fk)p+B)CcaR~k~W&_<W7ctJZR~uAzC<eJoaZa}& zXuE~0gyF%-1L&rMQh7utJqQdKW69RXY=J)T6|A+<%-7KMR{@f2*3U2MYaP%whP)bI z+x;rf$1CJ!!p^9ENk$@w8TBz~P6z2n#`2^~I6Yt-*<BCkeyyP(hJAv1aF8qRktiE` z*tu$mCaHAJm}PV>*O7|s9K67{35t9LV3SZ;B3+a{{=C>frSVF1xyzxqvx~;G7DkTq zKAwT*Y?Z71Z`#4b$7-LOH-6v>SiM`_K&(E~*Am!};ihuqMmuyW8sq=_g7@A0uv)!J z5(!R+M4H40El~q>lmXP6__4JzsSSyXTTI`4*%={_N7{LQ)8;dhx)7l)vgY^HVm20m zHXhCRfzFVSfoS9bl=r@SRt}dkWL@#-esbftn&Ztm4>u+0`_Dm<9@Q6FS0k{*Ef0tr zr~;19Dr{7I!geDS_pP7+0}hd%?)c<QaQvWg+#4(kDrP*0ECbf4xf@ad`3$%m?L;1t zJ%KO40n{%oh%|9cR=Nm*p_dsO-7T|UW0}#b7@sKlX8}YxO7Uko=?jw+rc;Xj`l+B| zyc8Xj$WXv@Zflf3iaDpLu<)B*ZSn@MOg=$<4pqY*(&zVE?}8-+fB5)&J1H>k0&<!U zAdXtE61KJ%+|zU(qlG#(u#-0REC+)a1*SGj0PB@%e_hfEuc43t0@~QBL|Q}CTYI4r zFof^ee8(2OOM^)?)!l3(p1%(OOlQaSRKJ@~-K!Z>V&33W)(C!F#FPjO$>Mq1#c7lT zRsd%dB<s?($7*!m(2cAdhjWeqx0t<T8fz<PK86vNCxwKc_g$MalfNf5ir7jfXwVn( zDW^x0CnIth8GD%dn#TB)HCJ-zZQY9~`*o#?v_s%@?%Lz!{%9UT_j%kpVO~O28?Ky+ ziwu{c;oDFb^2=6t4t2B!2Ih{>19L}bfHDGtpd+e}0<FrYK#XV`nCk+JkPDJMtty=f PA<n?_f_P}heRu!>b%4oO diff --git a/src/plugins/home/public/assets/sample_data_resources/flights/dashboard_dark.webp b/src/plugins/home/public/assets/sample_data_resources/flights/dashboard_dark.webp index 3cea45093ddac355b7b7a14dda7fb2b1ee12abaa..0c3769a3c8268d54fd771e3efca16db1bedf8bae 100644 GIT binary patch literal 31330 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 literal 28074 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 diff --git a/src/plugins/home/public/assets/sample_data_resources/logs/dashboard.webp b/src/plugins/home/public/assets/sample_data_resources/logs/dashboard.webp index c5b2250190ae0fb9df4cbaf7003d6d721773655f..8defebcc5fbbb10e8e20dff34f35f62a80deff73 100644 GIT binary patch literal 38660 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 literal 23410 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 ZWkJ?;O52{-yTKtI+^YKh@XEjd006sLNgMzG diff --git a/src/plugins/home/public/assets/sample_data_resources/logs/dashboard_dark.webp b/src/plugins/home/public/assets/sample_data_resources/logs/dashboard_dark.webp index 0c5ff2f6cd9f1195e61b0d702358a061355b2b0a..6f4dad0dad1f9e9dab373ea2d7d8383f05863faa 100644 GIT binary patch literal 39936 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 Uv80IEhv^8eC!w>3`2YX_0K7PpbN~PV literal 29896 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 diff --git a/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts index ad334470205aa..d90d6855879bb 100644 --- a/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts +++ b/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts @@ -189,44 +189,6 @@ export const getSavedObjects = (): SavedObject[] => [ updated_at: '2021-08-05T12:43:35.817Z', version: 'WzE3MSwxXQ==', }, - { - attributes: { - description: '', - kibanaSavedObjectMeta: { - searchSourceJSON: '{"query":{"query":"","language":"kuery"},"filter":[]}', - }, - title: '[eCommerce] Controls', - uiStateJSON: '{}', - version: 1, - visState: - '{"title":"[eCommerce] Controls","type":"input_control_vis","params":{"controls":[{"id":"1536977437774","fieldName":"manufacturer.keyword","parent":"","label":"Manufacturer","type":"list","options":{"type":"terms","multiselect":true,"dynamicOptions":true,"size":5,"order":"desc"},"indexPatternRefName":"control_0_index_pattern"},{"id":"1536977465554","fieldName":"category.keyword","parent":"","label":"Category","type":"list","options":{"type":"terms","multiselect":true,"dynamicOptions":true,"size":5,"order":"desc"},"indexPatternRefName":"control_1_index_pattern"},{"id":"1536977596163","fieldName":"total_quantity","parent":"","label":"Quantity","type":"range","options":{"decimalPlaces":0,"step":1},"indexPatternRefName":"control_2_index_pattern"}],"updateFiltersOnChange":false,"useTimeFilter":true,"pinFilters":false},"aggs":[]}', - }, - coreMigrationVersion: '8.0.0', - id: 'c3378480-f5ea-11eb-a78e-83aac3c38a60', - migrationVersion: { - visualization: '7.14.0', - }, - references: [ - { - id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', - name: 'control_0_index_pattern', - type: 'index-pattern', - }, - { - id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', - name: 'control_1_index_pattern', - type: 'index-pattern', - }, - { - id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', - name: 'control_2_index_pattern', - type: 'index-pattern', - }, - ], - type: 'visualization', - updated_at: '2021-08-05T12:43:41.128Z', - version: 'WzE3NiwxXQ==', - }, { attributes: { state: { @@ -1285,113 +1247,132 @@ export const getSavedObjects = (): SavedObject[] => [ version: 'WzIzMywxXQ==', }, { + id: '722b74f0-b882-11e8-a6d9-e546fe2bba5f', + type: 'dashboard', + namespaces: ['default'], + updated_at: '2022-09-26T17:19:19.470Z', + version: 'WzQ1MTgsMV0=', attributes: { + title: i18n.translate('home.sampleData.ecommerceSpec.revenueDashboardTitle', { + defaultMessage: '[eCommerce] Revenue Dashboard', + }), + hits: 0, description: i18n.translate('home.sampleData.ecommerceSpec.revenueDashboardDescription', { defaultMessage: 'Analyze mock eCommerce orders and revenue', }), - hits: 0, - kibanaSavedObjectMeta: { - searchSourceJSON: '{"query":{"language":"kuery","query":""},"filter":[]}', - }, - optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', panelsJSON: - '[{"version":"8.0.0-SNAPSHOT","type":"visualization","gridData":{"x":0,"y":22,"w":24,"h":10,"i":"5"},"panelIndex":"5","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_5"},{"version":"8.0.0-SNAPSHOT","type":"visualization","gridData":{"x":36,"y":15,"w":12,"h":7,"i":"7"},"panelIndex":"7","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_7"},{"version":"8.0.0-SNAPSHOT","type":"search","gridData":{"x":0,"y":55,"w":48,"h":18,"i":"10"},"panelIndex":"10","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_10"},{"version":"8.0.0-SNAPSHOT","type":"map","gridData":{"x":0,"y":32,"w":24,"h":14,"i":"11"},"panelIndex":"11","embeddableConfig":{"isLayerTOCOpen":false,"enhancements":{},"mapCenter":{"lat":45.88578,"lon":-15.07605,"zoom":2.11},"mapBuffer":{"minLon":-135,"minLat":0,"maxLon":90,"maxLat":66.51326},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_11"},{"version":"8.0.0-SNAPSHOT","type":"visualization","gridData":{"x":0,"y":0,"w":18,"h":7,"i":"a71cf076-6895-491c-8878-63592e429ed5"},"panelIndex":"a71cf076-6895-491c-8878-63592e429ed5","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_a71cf076-6895-491c-8878-63592e429ed5"},{"version":"8.0.0-SNAPSHOT","type":"visualization","gridData":{"x":18,"y":0,"w":30,"h":7,"i":"adc0a2f4-481c-45eb-b422-0ea59a3e5163"},"panelIndex":"adc0a2f4-481c-45eb-b422-0ea59a3e5163","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_adc0a2f4-481c-45eb-b422-0ea59a3e5163"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":0,"y":7,"w":24,"h":8,"i":"7077b79f-2a99-4fcb-bbd4-456982843278"},"panelIndex":"7077b79f-2a99-4fcb-bbd4-456982843278","embeddableConfig":{"enhancements":{},"hidePanelTitles":false},"title":"% of target revenue ($10k)","panelRefName":"panel_7077b79f-2a99-4fcb-bbd4-456982843278"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":24,"y":7,"w":12,"h":8,"i":"19a3c101-ad2e-4421-a71b-a4734ec1f03e"},"panelIndex":"19a3c101-ad2e-4421-a71b-a4734ec1f03e","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_19a3c101-ad2e-4421-a71b-a4734ec1f03e"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":36,"y":7,"w":12,"h":8,"i":"491469e7-7d24-4216-aeb3-bca00e5c8c1b"},"panelIndex":"491469e7-7d24-4216-aeb3-bca00e5c8c1b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_491469e7-7d24-4216-aeb3-bca00e5c8c1b"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":0,"y":15,"w":24,"h":7,"i":"a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef"},"panelIndex":"a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":24,"y":15,"w":12,"h":7,"i":"da51079b-952f-43dc-96e6-6f9415a3708b"},"panelIndex":"da51079b-952f-43dc-96e6-6f9415a3708b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_da51079b-952f-43dc-96e6-6f9415a3708b"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":24,"y":22,"w":24,"h":10,"i":"64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b"},"panelIndex":"64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":24,"y":32,"w":24,"h":14,"i":"bd330ede-2eef-4e2a-8100-22a21abf5038"},"panelIndex":"bd330ede-2eef-4e2a-8100-22a21abf5038","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_bd330ede-2eef-4e2a-8100-22a21abf5038"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":0,"y":46,"w":24,"h":9,"i":"b897d4be-cf83-46fb-a111-c7fbec9ef403"},"panelIndex":"b897d4be-cf83-46fb-a111-c7fbec9ef403","embeddableConfig":{"hidePanelTitles":false,"enhancements":{}},"title":"Top products this week","panelRefName":"panel_b897d4be-cf83-46fb-a111-c7fbec9ef403"},{"version":"8.0.0-SNAPSHOT","type":"lens","gridData":{"x":24,"y":46,"w":24,"h":9,"i":"e0f68f93-30f2-4da7-889a-6cd128a68d3f"},"panelIndex":"e0f68f93-30f2-4da7-889a-6cd128a68d3f","embeddableConfig":{"timeRange":{"from":"now-2w","to":"now-1w"},"hidePanelTitles":false,"enhancements":{}},"title":"Top products last week","panelRefName":"panel_e0f68f93-30f2-4da7-889a-6cd128a68d3f"}]', + '[{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":21,"w":24,"h":10,"i":"5"},"panelIndex":"5","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_5"},{"version":"8.6.0","type":"visualization","gridData":{"x":36,"y":7,"w":12,"h":7,"i":"7"},"panelIndex":"7","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_7"},{"version":"8.6.0","type":"search","gridData":{"x":0,"y":54,"w":48,"h":18,"i":"10"},"panelIndex":"10","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_10"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":31,"w":24,"h":14,"i":"11"},"panelIndex":"11","embeddableConfig":{"isLayerTOCOpen":false,"enhancements":{},"mapCenter":{"lat":45.88578,"lon":-15.07605,"zoom":2.11},"mapBuffer":{"minLon":-135,"minLat":0,"maxLon":90,"maxLat":66.51326},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_11"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":0,"w":24,"h":7,"i":"a71cf076-6895-491c-8878-63592e429ed5"},"panelIndex":"a71cf076-6895-491c-8878-63592e429ed5","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_a71cf076-6895-491c-8878-63592e429ed5"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":7,"w":12,"h":7,"i":"da51079b-952f-43dc-96e6-6f9415a3708b"},"panelIndex":"da51079b-952f-43dc-96e6-6f9415a3708b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_da51079b-952f-43dc-96e6-6f9415a3708b"},{"version":"8.6.0","type":"lens","gridData":{"x":36,"y":0,"w":12,"h":7,"i":"491469e7-7d24-4216-aeb3-bca00e5c8c1b"},"panelIndex":"491469e7-7d24-4216-aeb3-bca00e5c8c1b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_491469e7-7d24-4216-aeb3-bca00e5c8c1b"},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":7,"w":24,"h":7,"i":"7077b79f-2a99-4fcb-bbd4-456982843278"},"panelIndex":"7077b79f-2a99-4fcb-bbd4-456982843278","embeddableConfig":{"enhancements":{},"hidePanelTitles":false},"title":"% of target revenue ($10k)","panelRefName":"panel_7077b79f-2a99-4fcb-bbd4-456982843278"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":0,"w":12,"h":7,"i":"19a3c101-ad2e-4421-a71b-a4734ec1f03e"},"panelIndex":"19a3c101-ad2e-4421-a71b-a4734ec1f03e","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_19a3c101-ad2e-4421-a71b-a4734ec1f03e"},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":14,"w":24,"h":7,"i":"a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef"},"panelIndex":"a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":14,"w":24,"h":17,"i":"64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b"},"panelIndex":"64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":31,"w":24,"h":14,"i":"bd330ede-2eef-4e2a-8100-22a21abf5038"},"panelIndex":"bd330ede-2eef-4e2a-8100-22a21abf5038","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_bd330ede-2eef-4e2a-8100-22a21abf5038"},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":45,"w":24,"h":9,"i":"b897d4be-cf83-46fb-a111-c7fbec9ef403"},"panelIndex":"b897d4be-cf83-46fb-a111-c7fbec9ef403","embeddableConfig":{"hidePanelTitles":false,"enhancements":{}},"title":"Top products this week","panelRefName":"panel_b897d4be-cf83-46fb-a111-c7fbec9ef403"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":45,"w":24,"h":9,"i":"e0f68f93-30f2-4da7-889a-6cd128a68d3f"},"panelIndex":"e0f68f93-30f2-4da7-889a-6cd128a68d3f","embeddableConfig":{"timeRange":{"from":"now-2w","to":"now-1w"},"hidePanelTitles":false,"enhancements":{}},"title":"Top products last week","panelRefName":"panel_e0f68f93-30f2-4da7-889a-6cd128a68d3f"}]', + optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', + version: 1, + timeRestore: true, + timeTo: 'now', + timeFrom: 'now-7d', refreshInterval: { pause: true, value: 0, }, - timeFrom: 'now-7d', - timeRestore: true, - timeTo: 'now', - title: i18n.translate('home.sampleData.ecommerceSpec.revenueDashboardTitle', { - defaultMessage: '[eCommerce] Revenue Dashboard', - }), - version: 1, - }, - coreMigrationVersion: '8.0.0', - id: '722b74f0-b882-11e8-a6d9-e546fe2bba5f', - migrationVersion: { - dashboard: '7.14.0', + controlGroupInput: { + controlStyle: 'oneLine', + chainingSystem: 'HIERARCHICAL', + panelsJSON: + '{"1ee1617f-fd8e-45e4-bc6a-d5736710ea20":{"order":0,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"title":"Manufacturer","fieldName":"manufacturer.keyword","parentFieldName":"manufacturer","id":"1ee1617f-fd8e-45e4-bc6a-d5736710ea20","enhancements":{}}},"afa9fa0f-a002-41a5-bab9-b738316d2590":{"order":1,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"title":"Category","fieldName":"category.keyword","parentFieldName":"category","id":"afa9fa0f-a002-41a5-bab9-b738316d2590","enhancements":{}}},"d3f766cb-5f96-4a12-8d3c-034e08be8855":{"order":2,"width":"small","grow":true,"type":"rangeSliderControl","explicitInput":{"title":"Quantity","fieldName":"total_quantity","id":"d3f766cb-5f96-4a12-8d3c-034e08be8855","enhancements":{}}}}', + ignoreParentSettingsJSON: + '{"ignoreFilters":false,"ignoreQuery":false,"ignoreTimerange":false,"ignoreValidations":false}', + }, + kibanaSavedObjectMeta: { + searchSourceJSON: '{"query":{"language":"kuery","query":""},"filter":[]}', + }, }, references: [ { - id: '45e07720-b890-11e8-a6d9-e546fe2bba5f', name: '5:panel_5', type: 'visualization', + id: '45e07720-b890-11e8-a6d9-e546fe2bba5f', }, { - id: 'b80e6540-b891-11e8-a6d9-e546fe2bba5f', name: '7:panel_7', type: 'visualization', + id: 'b80e6540-b891-11e8-a6d9-e546fe2bba5f', }, { - id: '3ba638e0-b894-11e8-a6d9-e546fe2bba5f', name: '10:panel_10', type: 'search', + id: '3ba638e0-b894-11e8-a6d9-e546fe2bba5f', }, { - id: '9c6f83f0-bb4d-11e8-9c84-77068524bcab', name: '11:panel_11', type: 'visualization', + id: '9c6f83f0-bb4d-11e8-9c84-77068524bcab', }, { - id: 'c00d1f90-f5ea-11eb-a78e-83aac3c38a60', name: 'a71cf076-6895-491c-8878-63592e429ed5:panel_a71cf076-6895-491c-8878-63592e429ed5', type: 'visualization', + id: 'c00d1f90-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'c3378480-f5ea-11eb-a78e-83aac3c38a60', - name: 'adc0a2f4-481c-45eb-b422-0ea59a3e5163:panel_adc0a2f4-481c-45eb-b422-0ea59a3e5163', - type: 'visualization', - }, - { - id: 'c762b7a0-f5ea-11eb-a78e-83aac3c38a60', - name: '7077b79f-2a99-4fcb-bbd4-456982843278:panel_7077b79f-2a99-4fcb-bbd4-456982843278', + name: 'da51079b-952f-43dc-96e6-6f9415a3708b:panel_da51079b-952f-43dc-96e6-6f9415a3708b', type: 'lens', + id: 'e3902840-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'ce02e260-f5ea-11eb-a78e-83aac3c38a60', - name: '19a3c101-ad2e-4421-a71b-a4734ec1f03e:panel_19a3c101-ad2e-4421-a71b-a4734ec1f03e', + name: '491469e7-7d24-4216-aeb3-bca00e5c8c1b:panel_491469e7-7d24-4216-aeb3-bca00e5c8c1b', type: 'lens', + id: 'd5f90030-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'd5f90030-f5ea-11eb-a78e-83aac3c38a60', - name: '491469e7-7d24-4216-aeb3-bca00e5c8c1b:panel_491469e7-7d24-4216-aeb3-bca00e5c8c1b', + name: '7077b79f-2a99-4fcb-bbd4-456982843278:panel_7077b79f-2a99-4fcb-bbd4-456982843278', type: 'lens', + id: 'c762b7a0-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'dde978b0-f5ea-11eb-a78e-83aac3c38a60', - name: 'a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef:panel_a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef', + name: '19a3c101-ad2e-4421-a71b-a4734ec1f03e:panel_19a3c101-ad2e-4421-a71b-a4734ec1f03e', type: 'lens', + id: 'ce02e260-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'e3902840-f5ea-11eb-a78e-83aac3c38a60', - name: 'da51079b-952f-43dc-96e6-6f9415a3708b:panel_da51079b-952f-43dc-96e6-6f9415a3708b', + name: 'a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef:panel_a1b03eb9-a36b-4e12-aa1b-bb29b5d6c4ef', type: 'lens', + id: 'dde978b0-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'eddf7850-f5ea-11eb-a78e-83aac3c38a60', name: '64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b:panel_64fd5dcf-30c5-4f5a-a78c-70b1fbf87e5b', type: 'lens', + id: 'eddf7850-f5ea-11eb-a78e-83aac3c38a60', }, { - id: 'ff6a21b0-f5ea-11eb-a78e-83aac3c38a60', name: 'bd330ede-2eef-4e2a-8100-22a21abf5038:panel_bd330ede-2eef-4e2a-8100-22a21abf5038', type: 'lens', + id: 'ff6a21b0-f5ea-11eb-a78e-83aac3c38a60', }, { - id: '03071e90-f5eb-11eb-a78e-83aac3c38a60', name: 'b897d4be-cf83-46fb-a111-c7fbec9ef403:panel_b897d4be-cf83-46fb-a111-c7fbec9ef403', type: 'lens', + id: '03071e90-f5eb-11eb-a78e-83aac3c38a60', }, { - id: '06379e00-f5eb-11eb-a78e-83aac3c38a60', name: 'e0f68f93-30f2-4da7-889a-6cd128a68d3f:panel_e0f68f93-30f2-4da7-889a-6cd128a68d3f', type: 'lens', + id: '06379e00-f5eb-11eb-a78e-83aac3c38a60', + }, + { + name: 'controlGroup_1ee1617f-fd8e-45e4-bc6a-d5736710ea20:optionsListDataView', + type: 'index-pattern', + id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', + }, + { + name: 'controlGroup_afa9fa0f-a002-41a5-bab9-b738316d2590:optionsListDataView', + type: 'index-pattern', + id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', + }, + { + name: 'controlGroup_d3f766cb-5f96-4a12-8d3c-034e08be8855:rangeSliderDataView', + type: 'index-pattern', + id: 'ff959d40-b880-11e8-a6d9-e546fe2bba5f', }, ], - type: 'dashboard', - updated_at: '2021-08-05T12:45:46.525Z', - version: 'WzIzOSwxXQ==', + migrationVersion: { + dashboard: '8.5.0', + }, + coreMigrationVersion: '8.6.0', }, ]; diff --git a/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts index 2e4413dcba0d3..db6d9ce049d23 100644 --- a/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts +++ b/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts @@ -220,62 +220,81 @@ export const getSavedObjects = (): SavedObject[] => [ { id: '7adfa750-4c81-11e8-b3d7-01146121b73d', type: 'dashboard', - updated_at: '2021-07-07T14:16:23.001Z', - version: '5', + namespaces: ['default'], + updated_at: '2022-09-26T17:13:00.935Z', + version: 'WzMzMTIsMV0=', + attributes: { + title: i18n.translate('home.sampleData.flightsSpec.globalFlightDashboardTitle', { + defaultMessage: '[Flights] Global Flight Dashboard', + }), + hits: 0, + description: i18n.translate('home.sampleData.flightsSpec.globalFlightDashboardDescription', { + defaultMessage: + 'Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats', + }), + panelsJSON: + '[{"version":"8.6.0","type":"search","gridData":{"x":0,"y":69,"w":48,"h":15,"i":"4"},"panelIndex":"4","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_4"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":16,"w":24,"h":9,"i":"7"},"panelIndex":"7","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_7"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":58,"w":24,"h":11,"i":"10"},"panelIndex":"10","embeddableConfig":{"vis":{"colors":{"Count":"#1F78C1"},"legendOpen":false},"enhancements":{}},"panelRefName":"panel_10"},{"version":"8.6.0","type":"visualization","gridData":{"x":36,"y":58,"w":12,"h":11,"i":"21"},"panelIndex":"21","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_21"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":36,"w":24,"h":22,"i":"23"},"panelIndex":"23","embeddableConfig":{"isLayerTOCOpen":true,"enhancements":{},"mapCenter":{"lat":34.65823,"lon":-112.44472,"zoom":4.28},"mapBuffer":{"minLon":-135,"minLat":21.94305,"maxLon":-90,"maxLat":48.9225},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_23"},{"version":"8.6.0","type":"visualization","gridData":{"x":24,"y":36,"w":24,"h":22,"i":"31"},"panelIndex":"31","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_31"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":0,"w":24,"h":8,"i":"6afc61f7-e2d5-45a3-9e7a-281160ad3eb9"},"panelIndex":"6afc61f7-e2d5-45a3-9e7a-281160ad3eb9","embeddableConfig":{"savedVis":{"title":"[Flights] Markdown Instructions","description":"","type":"markdown","params":{"fontSize":10,"openLinksInNewTab":true,"markdown":"## Sample Flight data\\nThis dashboard contains sample data for you to play with. You can view it, search it, and interact with the visualizations. For more information about Kibana, check our [docs](https://www.elastic.co/guide/en/kibana/current/index.html)."},"uiState":{},"data":{"aggs":[],"searchSource":{}}},"hidePanelTitles":true,"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":0,"w":8,"h":8,"i":"392b4936-f753-47bc-a98d-a4e41a0a4cd4"},"panelIndex":"392b4936-f753-47bc-a98d-a4e41a0a4cd4","embeddableConfig":{"enhancements":{},"attributes":{"title":"[Flights] Total Flights","description":"","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"8fa993db-c147-4954-adf7-4ff264d42576":{"columns":{"81124c45-6ab6-42f4-8859-495d55eb8065":{"label":"Total flights","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true}},"columnOrder":["81124c45-6ab6-42f4-8859-495d55eb8065"],"incompleteColumns":{}}}}},"visualization":{"layerId":"8fa993db-c147-4954-adf7-4ff264d42576","accessor":"81124c45-6ab6-42f4-8859-495d55eb8065","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-8fa993db-c147-4954-adf7-4ff264d42576","type":"index-pattern"}]},"hidePanelTitles":true}},{"version":"8.6.0","type":"lens","gridData":{"x":32,"y":0,"w":8,"h":4,"i":"9271deff-5a61-4665-83fc-f9fdc6bf0c0b"},"panelIndex":"9271deff-5a61-4665-83fc-f9fdc6bf0c0b","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"FlightDelay : true","language":"kuery"},"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"location":{"min":0,"max":41},"text":"count(kql=\'FlightDelay : true\') / count()"}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ec":{"label":"Delayed","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'FlightDelay : true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"customLabel":true}},"columnOrder":["7e8fe9b1-f45c-4f3d-9561-30febcd357ec","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"7e8fe9b1-f45c-4f3d-9561-30febcd357ec","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":40,"y":0,"w":8,"h":4,"i":"aa591c29-1a31-4ee1-a71d-b829c06fd162"},"panelIndex":"aa591c29-1a31-4ee1-a71d-b829c06fd162","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"c7851241-5526-499a-960b-357af8c2ce5bX0":{"label":"Part of Delayed","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX1":{"label":"Part of Delayed","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","timeShift":"1w","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX2":{"label":"Part of Delayed","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"subtract","args":[{"type":"function","name":"divide","args":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"location":{"min":0,"max":28},"text":"count() / count(shift=\'1w\') "},1],"location":{"min":0,"max":31},"text":"count() / count(shift=\'1w\') - 1"}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5b":{"label":"Delayed vs 1 week earlier","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count() / count(shift=\'1w\') - 1","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX2"],"customLabel":true}},"columnOrder":["c7851241-5526-499a-960b-357af8c2ce5b","c7851241-5526-499a-960b-357af8c2ce5bX2","c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"c7851241-5526-499a-960b-357af8c2ce5b","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"alias":null,"negate":false,"disabled":false,"type":"phrase","key":"FlightDelay","params":{"query":true},"index":"filter-index-pattern-0"},"query":{"match_phrase":{"FlightDelay":true}},"$state":{"store":"appState"}}]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"filter-index-pattern-0","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":32,"y":4,"w":8,"h":4,"i":"b766e3b8-4544-46ed-99e6-9ecc4847e2a2"},"panelIndex":"b766e3b8-4544-46ed-99e6-9ecc4847e2a2","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0":{"label":"Part of Cancelled","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"Cancelled : true","language":"kuery"},"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1":{"label":"Part of Cancelled","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2":{"label":"Part of Cancelled","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"location":{"min":0,"max":39},"text":"count(kql=\'Cancelled : true\') / count()"}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ec":{"label":"Cancelled","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'Cancelled : true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"customLabel":true}},"columnOrder":["7e8fe9b1-f45c-4f3d-9561-30febcd357ec","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"7e8fe9b1-f45c-4f3d-9561-30febcd357ec","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":40,"y":4,"w":8,"h":4,"i":"2e33ade5-96e5-40b4-b460-493e5d4fa834"},"panelIndex":"2e33ade5-96e5-40b4-b460-493e5d4fa834","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"c7851241-5526-499a-960b-357af8c2ce5bX0":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX1":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","timeShift":"1w","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX2":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"subtract","args":[{"type":"function","name":"divide","args":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"location":{"min":0,"max":28},"text":"count() / count(shift=\'1w\') "},1],"location":{"min":0,"max":31},"text":"count() / count(shift=\'1w\') - 1"}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5b":{"label":"Cancelled vs 1 week earlier","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count() / count(shift=\'1w\') - 1","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX2"],"customLabel":true}},"columnOrder":["c7851241-5526-499a-960b-357af8c2ce5b","c7851241-5526-499a-960b-357af8c2ce5bX2","c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"c7851241-5526-499a-960b-357af8c2ce5b","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"alias":null,"negate":false,"disabled":false,"type":"phrase","key":"Cancelled","params":{"query":true},"index":"filter-index-pattern-0"},"query":{"match_phrase":{"Cancelled":true}},"$state":{"store":"appState"}}]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"filter-index-pattern-0","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":8,"w":24,"h":8,"i":"086ac2e9-dd16-4b45-92b8-1e43ff7e3f65"},"panelIndex":"086ac2e9-dd16-4b45-92b8-1e43ff7e3f65","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsXY","state":{"datasourceStates":{"indexpattern":{"layers":{"03c34665-471c-49c7-acf1-5a11f517421c":{"columns":{"a5b94e30-4e77-4b0a-9187-1d8b13de1456":{"label":"timestamp","dataType":"date","operationType":"date_histogram","sourceField":"timestamp","isBucketed":true,"scale":"interval","params":{"interval":"auto","includeEmptyRows":true}},"3e267327-7317-4310-aee3-320e0f7c1e70":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___"}},"columnOrder":["a5b94e30-4e77-4b0a-9187-1d8b13de1456","3e267327-7317-4310-aee3-320e0f7c1e70"],"incompleteColumns":{}}}}},"visualization":{"legend":{"isVisible":true,"position":"right","legendSize":"auto"},"valueLabels":"hide","fittingFunction":"None","yLeftExtent":{"mode":"full"},"yRightExtent":{"mode":"custom","lowerBound":0,"upperBound":1},"axisTitlesVisibilitySettings":{"x":false,"yLeft":false,"yRight":true},"tickLabelsVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"gridlinesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"preferredSeriesType":"bar_stacked","layers":[{"layerId":"03c34665-471c-49c7-acf1-5a11f517421c","accessors":["3e267327-7317-4310-aee3-320e0f7c1e70"],"position":"top","seriesType":"bar_stacked","showGridlines":false,"xAccessor":"a5b94e30-4e77-4b0a-9187-1d8b13de1456","layerType":"data"}]},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-03c34665-471c-49c7-acf1-5a11f517421c","type":"index-pattern"}]},"hidePanelTitles":false,"enhancements":{}},"title":"[Flights] Flight count"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":8,"w":24,"h":28,"i":"fb86b32f-fb7a-45cf-9511-f366fef51bbd"},"panelIndex":"fb86b32f-fb7a-45cf-9511-f366fef51bbd","embeddableConfig":{"attributes":{"title":"Cities by delay, cancellation","type":"lens","visualizationType":"lnsDatatable","state":{"datasourceStates":{"indexpattern":{"layers":{"f26e8f7a-4118-4227-bea0-5c02d8b270f7":{"columns":{"3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0":{"label":"Top values of OriginCityName","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"OriginCityName","isBucketed":true,"params":{"size":1000,"orderBy":{"type":"alphabetical","fallback":true},"orderDirection":"asc","otherBucket":true,"missingBucket":false}},"52f6f2e9-6242-4c44-be63-b799150e7e60X0":{"label":"Part of Delay %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"FlightDelay : true ","language":"kuery"},"customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60X1":{"label":"Part of Delay %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60X2":{"label":"Part of Delay %","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1"],"location":{"min":0,"max":42},"text":"count(kql=\'FlightDelay : true \') / count()"}},"references":["52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1"],"customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60":{"label":"Delay %","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'FlightDelay : true \') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":0}}},"references":["52f6f2e9-6242-4c44-be63-b799150e7e60X2"],"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0":{"label":"Part of Cancel %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"Cancelled: true","language":"kuery"},"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1":{"label":"Part of Cancel %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2":{"label":"Part of Cancel %","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1"],"location":{"min":0,"max":38},"text":"count(kql=\'Cancelled: true\') / count()"}},"references":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1"],"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6":{"label":"Cancel %","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'Cancelled: true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":0}}},"references":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2"],"customLabel":true}},"columnOrder":["3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0","52f6f2e9-6242-4c44-be63-b799150e7e60","52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1","52f6f2e9-6242-4c44-be63-b799150e7e60X2","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6"],"incompleteColumns":{}}}}},"visualization":{"columns":[{"isTransposed":false,"columnId":"3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0","width":262.75},{"columnId":"52f6f2e9-6242-4c44-be63-b799150e7e60","isTransposed":false,"width":302.5,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#f7e0b8","stop":0.6},{"color":"#e7664c","stop":1}],"name":"custom","colorStops":[{"color":"#f7e0b8","stop":0.2},{"color":"#e7664c","stop":0.6}],"rangeType":"number","rangeMin":0.2,"rangeMax":0.6}},"alignment":"center"},{"columnId":"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6","isTransposed":false,"alignment":"center","colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#f7e0b8","stop":0.6},{"color":"#e7664c","stop":0.6666666666666666}],"rangeType":"number","name":"custom","colorStops":[{"color":"#f7e0b8","stop":0.2},{"color":"#e7664c","stop":0.6}],"rangeMin":0.2,"rangeMax":0.6}}}],"layerId":"f26e8f7a-4118-4227-bea0-5c02d8b270f7","sorting":{"columnId":"52f6f2e9-6242-4c44-be63-b799150e7e60","direction":"desc"},"layerType":"data","rowHeight":"single","rowHeightLines":1},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-f26e8f7a-4118-4227-bea0-5c02d8b270f7","type":"index-pattern"}]},"enhancements":{},"hidePanelTitles":false},"title":"[Flights] Most delayed cities"},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":25,"w":24,"h":11,"i":"0cc42484-16f7-42ec-b38c-9bf8be69cde7"},"panelIndex":"0cc42484-16f7-42ec-b38c-9bf8be69cde7","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsXY","state":{"datasourceStates":{"indexpattern":{"layers":{"e80cc05e-c52a-4e5f-ac71-4b37274867f5":{"columns":{"caf7421e-93a3-439e-ab0a-fbdead93c21c":{"label":"Top values of FlightDelayType","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"FlightDelayType","isBucketed":true,"params":{"size":10,"orderBy":{"type":"column","columnId":"0233d302-ec81-4fbe-96cb-7fac84cf035c"},"orderDirection":"desc","otherBucket":true,"missingBucket":false}},"13ec79e3-9d73-4536-9056-3d92802bb30a":{"label":"timestamp","dataType":"date","operationType":"date_histogram","sourceField":"timestamp","isBucketed":true,"scale":"interval","params":{"interval":"auto","includeEmptyRows":true}},"0233d302-ec81-4fbe-96cb-7fac84cf035c":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___"}},"columnOrder":["caf7421e-93a3-439e-ab0a-fbdead93c21c","13ec79e3-9d73-4536-9056-3d92802bb30a","0233d302-ec81-4fbe-96cb-7fac84cf035c"],"incompleteColumns":{}}}}},"visualization":{"legend":{"isVisible":true,"position":"bottom","legendSize":"auto"},"valueLabels":"hide","fittingFunction":"None","yLeftExtent":{"mode":"full"},"yRightExtent":{"mode":"full"},"axisTitlesVisibilitySettings":{"x":true,"yLeft":false,"yRight":true},"tickLabelsVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"gridlinesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"preferredSeriesType":"bar_percentage_stacked","layers":[{"layerId":"e80cc05e-c52a-4e5f-ac71-4b37274867f5","accessors":["0233d302-ec81-4fbe-96cb-7fac84cf035c"],"position":"top","seriesType":"bar_percentage_stacked","showGridlines":false,"palette":{"type":"palette","name":"cool"},"xAccessor":"13ec79e3-9d73-4536-9056-3d92802bb30a","splitAccessor":"caf7421e-93a3-439e-ab0a-fbdead93c21c","layerType":"data"}]},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-e80cc05e-c52a-4e5f-ac71-4b37274867f5","type":"index-pattern"}]},"hidePanelTitles":false,"enhancements":{}},"title":"[Flights] Delay Type"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":58,"w":12,"h":11,"i":"5d53db36-2d5a-4adc-af7b-cec4c1a294e0"},"panelIndex":"5d53db36-2d5a-4adc-af7b-cec4c1a294e0","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsPie","state":{"datasourceStates":{"indexpattern":{"layers":{"0c8e136b-a822-4fb3-836d-e06cbea4eea4":{"columns":{"d1cee8bf-34cf-4141-99d7-ff043ee77b56":{"label":"Top values of FlightDelayType","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"FlightDelayType","isBucketed":true,"params":{"size":10,"orderBy":{"type":"column","columnId":"aa152ace-ee2d-447b-b86d-459bef4d7880"},"orderDirection":"desc","otherBucket":true,"missingBucket":false}},"aa152ace-ee2d-447b-b86d-459bef4d7880":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___"}},"columnOrder":["d1cee8bf-34cf-4141-99d7-ff043ee77b56","aa152ace-ee2d-447b-b86d-459bef4d7880"],"incompleteColumns":{}}}}},"visualization":{"shape":"pie","palette":{"type":"palette","name":"cool"},"layers":[{"layerId":"0c8e136b-a822-4fb3-836d-e06cbea4eea4","metric":"aa152ace-ee2d-447b-b86d-459bef4d7880","numberDisplay":"percent","categoryDisplay":"default","legendDisplay":"default","nestedLegend":false,"layerType":"data","legendSize":"auto","primaryGroups":["d1cee8bf-34cf-4141-99d7-ff043ee77b56"]}]},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"type":"phrase","key":"FlightDelayType","params":{"query":"No Delay"},"disabled":false,"negate":true,"alias":null,"index":"filter-index-pattern-0"},"query":{"match_phrase":{"FlightDelayType":"No Delay"}},"$state":{"store":"appState"}}]},"references":[{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-0c8e136b-a822-4fb3-836d-e06cbea4eea4","type":"index-pattern"},{"id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"filter-index-pattern-0","type":"index-pattern"}]},"enhancements":{},"hidePanelTitles":false},"title":"[Flights] Delay Type"}]', + optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', + version: 1, + timeRestore: true, + timeTo: 'now', + timeFrom: 'now-7d', + refreshInterval: { + pause: true, + value: 0, + }, + controlGroupInput: { + controlStyle: 'oneLine', + chainingSystem: 'HIERARCHICAL', + panelsJSON: + '{"85b632c8-3b7b-408d-8223-b0caccf75bd3":{"order":0,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"title":"Origin City","fieldName":"OriginCityName","id":"85b632c8-3b7b-408d-8223-b0caccf75bd3","selectedOptions":[],"enhancements":{}}},"d4dc9d2b-5850-402a-921d-8a2cd0107156":{"order":1,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"title":"Destination City","fieldName":"DestCityName","id":"d4dc9d2b-5850-402a-921d-8a2cd0107156","enhancements":{}}},"bee4a16a-f5c1-40b2-887e-db1b9ad9e15f":{"order":2,"width":"small","grow":true,"type":"rangeSliderControl","explicitInput":{"title":"Average Ticket Price","fieldName":"AvgTicketPrice","id":"bee4a16a-f5c1-40b2-887e-db1b9ad9e15f","enhancements":{}}}}', + ignoreParentSettingsJSON: + '{"ignoreFilters":false,"ignoreQuery":false,"ignoreTimerange":false,"ignoreValidations":false}', + }, + kibanaSavedObjectMeta: { + searchSourceJSON: + '{"query":{"language":"kuery","query":""},"highlightAll":true,"version":true,"filter":[]}', + }, + }, references: [ { - id: '571aaf70-4c88-11e8-b3d7-01146121b73d', name: '4:panel_4', type: 'search', + id: '571aaf70-4c88-11e8-b3d7-01146121b73d', }, { - id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', name: '7:panel_7', type: 'visualization', + id: 'bcb63b50-4c89-11e8-b3d7-01146121b73d', }, { - id: '9886b410-4c8b-11e8-b3d7-01146121b73d', name: '10:panel_10', type: 'visualization', + id: '9886b410-4c8b-11e8-b3d7-01146121b73d', }, { - id: '293b5a30-4c8f-11e8-b3d7-01146121b73d', name: '21:panel_21', type: 'visualization', + id: '293b5a30-4c8f-11e8-b3d7-01146121b73d', }, { - id: '334084f0-52fd-11e8-a160-89cc2ad9e8e2', name: '23:panel_23', type: 'visualization', + id: '334084f0-52fd-11e8-a160-89cc2ad9e8e2', }, { - id: 'ed78a660-53a0-11e8-acbd-0be0ad9d822b', name: '31:panel_31', type: 'visualization', + id: 'ed78a660-53a0-11e8-acbd-0be0ad9d822b', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: 'aa810aa2-29c9-4a75-b39e-f4f267de1732:control_aa810aa2-29c9-4a75-b39e-f4f267de1732_0_index_pattern', - type: 'index-pattern', - }, - { - id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: 'aa810aa2-29c9-4a75-b39e-f4f267de1732:control_aa810aa2-29c9-4a75-b39e-f4f267de1732_1_index_pattern', - type: 'index-pattern', - }, - { - id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: 'aa810aa2-29c9-4a75-b39e-f4f267de1732:control_aa810aa2-29c9-4a75-b39e-f4f267de1732_2_index_pattern', - type: 'index-pattern', - }, - { - id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65:indexpattern-datasource-current-indexpattern', + name: '392b4936-f753-47bc-a98d-a4e41a0a4cd4:indexpattern-datasource-current-indexpattern', type: 'index-pattern', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65:indexpattern-datasource-layer-03c34665-471c-49c7-acf1-5a11f517421c', + name: '392b4936-f753-47bc-a98d-a4e41a0a4cd4:indexpattern-datasource-layer-8fa993db-c147-4954-adf7-4ff264d42576', type: 'index-pattern', }, { @@ -328,6 +347,16 @@ export const getSavedObjects = (): SavedObject[] => [ name: '2e33ade5-96e5-40b4-b460-493e5d4fa834:filter-index-pattern-0', type: 'index-pattern', }, + { + id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', + name: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65:indexpattern-datasource-current-indexpattern', + type: 'index-pattern', + }, + { + id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', + name: '086ac2e9-dd16-4b45-92b8-1e43ff7e3f65:indexpattern-datasource-layer-03c34665-471c-49c7-acf1-5a11f517421c', + type: 'index-pattern', + }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', name: 'fb86b32f-fb7a-45cf-9511-f366fef51bbd:indexpattern-datasource-current-indexpattern', @@ -340,67 +369,48 @@ export const getSavedObjects = (): SavedObject[] => [ }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:indexpattern-datasource-current-indexpattern', + name: '0cc42484-16f7-42ec-b38c-9bf8be69cde7:indexpattern-datasource-current-indexpattern', type: 'index-pattern', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:indexpattern-datasource-layer-0c8e136b-a822-4fb3-836d-e06cbea4eea4', + name: '0cc42484-16f7-42ec-b38c-9bf8be69cde7:indexpattern-datasource-layer-e80cc05e-c52a-4e5f-ac71-4b37274867f5', type: 'index-pattern', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:filter-index-pattern-0', + name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:indexpattern-datasource-current-indexpattern', type: 'index-pattern', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '0cc42484-16f7-42ec-b38c-9bf8be69cde7:indexpattern-datasource-current-indexpattern', + name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:indexpattern-datasource-layer-0c8e136b-a822-4fb3-836d-e06cbea4eea4', type: 'index-pattern', }, { id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '0cc42484-16f7-42ec-b38c-9bf8be69cde7:indexpattern-datasource-layer-e80cc05e-c52a-4e5f-ac71-4b37274867f5', + name: '5d53db36-2d5a-4adc-af7b-cec4c1a294e0:filter-index-pattern-0', type: 'index-pattern', }, { - id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '392b4936-f753-47bc-a98d-a4e41a0a4cd4:indexpattern-datasource-current-indexpattern', + name: 'controlGroup_85b632c8-3b7b-408d-8223-b0caccf75bd3:optionsListDataView', type: 'index-pattern', + id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', }, { + name: 'controlGroup_d4dc9d2b-5850-402a-921d-8a2cd0107156:optionsListDataView', + type: 'index-pattern', id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', - name: '392b4936-f753-47bc-a98d-a4e41a0a4cd4:indexpattern-datasource-layer-8fa993db-c147-4954-adf7-4ff264d42576', + }, + { + name: 'controlGroup_bee4a16a-f5c1-40b2-887e-db1b9ad9e15f:rangeSliderDataView', type: 'index-pattern', + id: 'd3d7af60-4c81-11e8-b3d7-01146121b73d', }, ], migrationVersion: { - dashboard: '7.14.0', - }, - attributes: { - title: i18n.translate('home.sampleData.flightsSpec.globalFlightDashboardTitle', { - defaultMessage: '[Flights] Global Flight Dashboard', - }), - hits: 0, - description: i18n.translate('home.sampleData.flightsSpec.globalFlightDashboardDescription', { - defaultMessage: - 'Analyze mock flight data for ES-Air, Logstash Airways, Kibana Airlines and JetBeats', - }), - panelsJSON: - '[{"version":"7.14.0","type":"search","gridData":{"x":0,"y":68,"w":48,"h":15,"i":"4"},"panelIndex":"4","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_4"},{"version":"7.14.0","type":"visualization","gridData":{"x":0,"y":15,"w":24,"h":9,"i":"7"},"panelIndex":"7","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_7"},{"version":"7.14.0","type":"visualization","gridData":{"x":0,"y":57,"w":24,"h":11,"i":"10"},"panelIndex":"10","embeddableConfig":{"vis":{"colors":{"Count":"#1F78C1"},"legendOpen":false},"enhancements":{}},"panelRefName":"panel_10"},{"version":"7.14.0","type":"visualization","gridData":{"x":36,"y":57,"w":12,"h":11,"i":"21"},"panelIndex":"21","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_21"},{"version":"7.14.0","type":"map","gridData":{"x":0,"y":35,"w":24,"h":22,"i":"23"},"panelIndex":"23","embeddableConfig":{"isLayerTOCOpen":true,"enhancements":{},"mapCenter":{"lat":34.65823,"lon":-112.44472,"zoom":4.28},"mapBuffer":{"minLon":-135,"minLat":21.94305,"maxLon":-90,"maxLat":48.9225},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_23"},{"version":"7.14.0","type":"visualization","gridData":{"x":24,"y":35,"w":24,"h":22,"i":"31"},"panelIndex":"31","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_31"},{"version":"7.14.0","type":"visualization","gridData":{"x":0,"y":0,"w":32,"h":7,"i":"aa810aa2-29c9-4a75-b39e-f4f267de1732"},"panelIndex":"aa810aa2-29c9-4a75-b39e-f4f267de1732","embeddableConfig":{"savedVis":{"title":"[Flights] Controls","description":"","type":"input_control_vis","params":{"controls":[{"id":"1525098134264","fieldName":"OriginCityName","parent":"","label":"Origin City","type":"list","options":{"type":"terms","multiselect":true,"size":100,"order":"desc"},"indexPatternRefName":"control_aa810aa2-29c9-4a75-b39e-f4f267de1732_0_index_pattern"},{"id":"1525099277699","fieldName":"DestCityName","parent":"1525098134264","label":"Destination City","type":"list","options":{"type":"terms","multiselect":true,"size":100,"order":"desc"},"indexPatternRefName":"control_aa810aa2-29c9-4a75-b39e-f4f267de1732_1_index_pattern"},{"id":"1525099307278","fieldName":"AvgTicketPrice","parent":"","label":"Average Ticket Price","type":"range","options":{"decimalPlaces":0,"step":10},"indexPatternRefName":"control_aa810aa2-29c9-4a75-b39e-f4f267de1732_2_index_pattern"}],"updateFiltersOnChange":false,"useTimeFilter":true,"pinFilters":false},"uiState":{},"data":{"aggs":[],"searchSource":{}}},"hidePanelTitles":true,"enhancements":{}}},{"version":"7.14.0","type":"visualization","gridData":{"x":32,"y":0,"w":16,"h":7,"i":"6afc61f7-e2d5-45a3-9e7a-281160ad3eb9"},"panelIndex":"6afc61f7-e2d5-45a3-9e7a-281160ad3eb9","embeddableConfig":{"savedVis":{"title":"[Flights] Markdown Instructions","description":"","type":"markdown","params":{"fontSize":10,"openLinksInNewTab":true,"markdown":"## Sample Flight data\\nThis dashboard contains sample data for you to play with. You can view it, search it, and interact with the visualizations. For more information about Kibana, check our [docs](https://www.elastic.co/guide/en/kibana/current/index.html)."},"uiState":{},"data":{"aggs":[],"searchSource":{}}},"hidePanelTitles":true,"enhancements":{}}},{"version":"7.14.0","type":"lens","gridData":{"x":0,"y":7,"w":24,"h":8,"i":"086ac2e9-dd16-4b45-92b8-1e43ff7e3f65"},"panelIndex":"086ac2e9-dd16-4b45-92b8-1e43ff7e3f65","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsXY","state":{"datasourceStates":{"indexpattern":{"layers":{"03c34665-471c-49c7-acf1-5a11f517421c":{"columns":{"a5b94e30-4e77-4b0a-9187-1d8b13de1456":{"label":"timestamp","dataType":"date","operationType":"date_histogram","sourceField":"timestamp","isBucketed":true,"scale":"interval","params":{"interval":"auto"}},"3e267327-7317-4310-aee3-320e0f7c1e70":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records"}},"columnOrder":["a5b94e30-4e77-4b0a-9187-1d8b13de1456","3e267327-7317-4310-aee3-320e0f7c1e70"],"incompleteColumns":{}}}}},"visualization":{"legend":{"isVisible":true,"position":"right"},"valueLabels":"hide","fittingFunction":"None","yLeftExtent":{"mode":"full"},"yRightExtent":{"mode":"custom","lowerBound":0,"upperBound":1},"axisTitlesVisibilitySettings":{"x":false,"yLeft":false,"yRight":true},"tickLabelsVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"gridlinesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"preferredSeriesType":"bar_stacked","layers":[{"layerId":"03c34665-471c-49c7-acf1-5a11f517421c","accessors":["3e267327-7317-4310-aee3-320e0f7c1e70"],"position":"top","seriesType":"bar_stacked","showGridlines":false,"xAccessor":"a5b94e30-4e77-4b0a-9187-1d8b13de1456"}]},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-03c34665-471c-49c7-acf1-5a11f517421c"}]},"hidePanelTitles":false,"enhancements":{}},"title":"[Flights] Flight count"},{"version":"7.14.0","type":"lens","gridData":{"x":24,"y":7,"w":8,"h":8,"i":"392b4936-f753-47bc-a98d-a4e41a0a4cd4"},"panelIndex":"392b4936-f753-47bc-a98d-a4e41a0a4cd4","embeddableConfig":{"enhancements":{},"attributes":{"title":"[Flights] Total Flights","description":"","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"8fa993db-c147-4954-adf7-4ff264d42576":{"columns":{"81124c45-6ab6-42f4-8859-495d55eb8065":{"label":"Total flights","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true}},"columnOrder":["81124c45-6ab6-42f4-8859-495d55eb8065"],"incompleteColumns":{}}}}},"visualization":{"layerId":"8fa993db-c147-4954-adf7-4ff264d42576","accessor":"81124c45-6ab6-42f4-8859-495d55eb8065"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-8fa993db-c147-4954-adf7-4ff264d42576"}]},"hidePanelTitles":true}},{"version":"7.14.0","type":"lens","gridData":{"x":32,"y":7,"w":8,"h":4,"i":"9271deff-5a61-4665-83fc-f9fdc6bf0c0b"},"panelIndex":"9271deff-5a61-4665-83fc-f9fdc6bf0c0b","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"FlightDelay : true","language":"kuery"},"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2":{"label":"Part of count(kql=\'FlightDelay : true\') / count()","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"location":{"min":0,"max":41},"text":"count(kql=\'FlightDelay : true\') / count()"}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ec":{"label":"Delayed","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'FlightDelay : true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"customLabel":true}},"columnOrder":["7e8fe9b1-f45c-4f3d-9561-30febcd357ec","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"7e8fe9b1-f45c-4f3d-9561-30febcd357ec"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317"}]},"enhancements":{}}},{"version":"7.14.0","type":"lens","gridData":{"x":40,"y":7,"w":8,"h":4,"i":"aa591c29-1a31-4ee1-a71d-b829c06fd162"},"panelIndex":"aa591c29-1a31-4ee1-a71d-b829c06fd162","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"c7851241-5526-499a-960b-357af8c2ce5bX0":{"label":"Part of Delayed","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX1":{"label":"Part of Delayed","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","timeShift":"1w","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX2":{"label":"Part of Delayed","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"subtract","args":[{"type":"function","name":"divide","args":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"location":{"min":0,"max":28},"text":"count() / count(shift=\'1w\') "},1],"location":{"min":0,"max":31},"text":"count() / count(shift=\'1w\') - 1"}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5b":{"label":"Delayed vs 1 week earlier","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count() / count(shift=\'1w\') - 1","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX2"],"customLabel":true}},"columnOrder":["c7851241-5526-499a-960b-357af8c2ce5b","c7851241-5526-499a-960b-357af8c2ce5bX2","c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"c7851241-5526-499a-960b-357af8c2ce5b"},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"alias":null,"negate":false,"disabled":false,"type":"phrase","key":"FlightDelay","params":{"query":true},"indexRefName":"filter-index-pattern-0"},"query":{"match_phrase":{"FlightDelay":true}},"$state":{"store":"appState"}}]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317"},{"name":"filter-index-pattern-0","type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d"}]},"enhancements":{}}},{"version":"7.14.0","type":"lens","gridData":{"x":32,"y":11,"w":8,"h":4,"i":"b766e3b8-4544-46ed-99e6-9ecc4847e2a2"},"panelIndex":"b766e3b8-4544-46ed-99e6-9ecc4847e2a2","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0":{"label":"Part of Cancelled","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"Cancelled : true","language":"kuery"},"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1":{"label":"Part of Cancelled","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2":{"label":"Part of Cancelled","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"location":{"min":0,"max":39},"text":"count(kql=\'Cancelled : true\') / count()"}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1"],"customLabel":true},"7e8fe9b1-f45c-4f3d-9561-30febcd357ec":{"label":"Cancelled","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'Cancelled : true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"customLabel":true}},"columnOrder":["7e8fe9b1-f45c-4f3d-9561-30febcd357ec","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX0","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX1","7e8fe9b1-f45c-4f3d-9561-30febcd357ecX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"7e8fe9b1-f45c-4f3d-9561-30febcd357ec"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317"}]},"enhancements":{}}},{"version":"7.14.0","type":"lens","gridData":{"x":40,"y":11,"w":8,"h":4,"i":"2e33ade5-96e5-40b4-b460-493e5d4fa834"},"panelIndex":"2e33ade5-96e5-40b4-b460-493e5d4fa834","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"b4712d43-1e84-4f5b-878d-8e38ba748317":{"columns":{"c7851241-5526-499a-960b-357af8c2ce5bX0":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX1":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","timeShift":"1w","customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5bX2":{"label":"Part of Delayed vs 1 week earlier","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"subtract","args":[{"type":"function","name":"divide","args":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"location":{"min":0,"max":28},"text":"count() / count(shift=\'1w\') "},1],"location":{"min":0,"max":31},"text":"count() / count(shift=\'1w\') - 1"}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"customLabel":true},"c7851241-5526-499a-960b-357af8c2ce5b":{"label":"Cancelled vs 1 week earlier","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count() / count(shift=\'1w\') - 1","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["c7851241-5526-499a-960b-357af8c2ce5bX2"],"customLabel":true}},"columnOrder":["c7851241-5526-499a-960b-357af8c2ce5b","c7851241-5526-499a-960b-357af8c2ce5bX2","c7851241-5526-499a-960b-357af8c2ce5bX0","c7851241-5526-499a-960b-357af8c2ce5bX1"],"incompleteColumns":{}}}}},"visualization":{"layerId":"b4712d43-1e84-4f5b-878d-8e38ba748317","accessor":"c7851241-5526-499a-960b-357af8c2ce5b"},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"alias":null,"negate":false,"disabled":false,"type":"phrase","key":"Cancelled","params":{"query":true},"indexRefName":"filter-index-pattern-0"},"query":{"match_phrase":{"Cancelled":true}},"$state":{"store":"appState"}}]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-b4712d43-1e84-4f5b-878d-8e38ba748317"},{"name":"filter-index-pattern-0","type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d"}]},"enhancements":{}}},{"version":"7.14.0","type":"lens","gridData":{"x":24,"y":15,"w":24,"h":20,"i":"fb86b32f-fb7a-45cf-9511-f366fef51bbd"},"panelIndex":"fb86b32f-fb7a-45cf-9511-f366fef51bbd","embeddableConfig":{"attributes":{"title":"Cities by delay, cancellation","type":"lens","visualizationType":"lnsDatatable","state":{"datasourceStates":{"indexpattern":{"layers":{"f26e8f7a-4118-4227-bea0-5c02d8b270f7":{"columns":{"3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0":{"label":"Top values of OriginCityName","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"OriginCityName","isBucketed":true,"params":{"size":1000,"orderBy":{"type":"alphabetical","fallback":true},"orderDirection":"asc","otherBucket":true,"missingBucket":false}},"52f6f2e9-6242-4c44-be63-b799150e7e60X0":{"label":"Part of Delay %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"FlightDelay : true ","language":"kuery"},"customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60X1":{"label":"Part of Delay %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60X2":{"label":"Part of Delay %","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1"],"location":{"min":0,"max":42},"text":"count(kql=\'FlightDelay : true \') / count()"}},"references":["52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1"],"customLabel":true},"52f6f2e9-6242-4c44-be63-b799150e7e60":{"label":"Delay %","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'FlightDelay : true \') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":0}}},"references":["52f6f2e9-6242-4c44-be63-b799150e7e60X2"],"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0":{"label":"Part of Cancel %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"Cancelled: true","language":"kuery"},"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1":{"label":"Part of Cancel %","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2":{"label":"Part of Cancel %","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1"],"location":{"min":0,"max":38},"text":"count(kql=\'Cancelled: true\') / count()"}},"references":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1"],"customLabel":true},"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6":{"label":"Cancel %","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'Cancelled: true\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":0}}},"references":["7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2"],"customLabel":true}},"columnOrder":["3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0","52f6f2e9-6242-4c44-be63-b799150e7e60","52f6f2e9-6242-4c44-be63-b799150e7e60X0","52f6f2e9-6242-4c44-be63-b799150e7e60X1","52f6f2e9-6242-4c44-be63-b799150e7e60X2","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X0","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X1","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6X2","7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6"],"incompleteColumns":{}}}}},"visualization":{"columns":[{"isTransposed":false,"columnId":"3dd24cb4-45ef-4dd8-b22a-d7b802cb6da0","width":262.75},{"columnId":"52f6f2e9-6242-4c44-be63-b799150e7e60","isTransposed":false,"width":302.5,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#f7e0b8","stop":0.6},{"color":"#e7664c","stop":1}],"name":"custom","colorStops":[{"color":"#f7e0b8","stop":0.2},{"color":"#e7664c","stop":0.6}],"rangeType":"number","rangeMin":0.2,"rangeMax":0.6}},"alignment":"center"},{"columnId":"7b9f3ece-9da3-4c27-b582-d3f8e8cc31d6","isTransposed":false,"alignment":"center","colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#f7e0b8","stop":0.6},{"color":"#e7664c","stop":0.6666666666666666}],"rangeType":"number","name":"custom","colorStops":[{"color":"#f7e0b8","stop":0.2},{"color":"#e7664c","stop":0.6}],"rangeMin":0.2,"rangeMax":0.6}}}],"layerId":"f26e8f7a-4118-4227-bea0-5c02d8b270f7","sorting":{"columnId":"52f6f2e9-6242-4c44-be63-b799150e7e60","direction":"desc"}},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-f26e8f7a-4118-4227-bea0-5c02d8b270f7"}]},"enhancements":{},"hidePanelTitles":false},"title":"[Flights] Most delayed cities"},{"version":"7.14.0","type":"lens","gridData":{"x":0,"y":24,"w":24,"h":11,"i":"0cc42484-16f7-42ec-b38c-9bf8be69cde7"},"panelIndex":"0cc42484-16f7-42ec-b38c-9bf8be69cde7","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsXY","state":{"datasourceStates":{"indexpattern":{"layers":{"e80cc05e-c52a-4e5f-ac71-4b37274867f5":{"columns":{"caf7421e-93a3-439e-ab0a-fbdead93c21c":{"label":"Top values of FlightDelayType","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"FlightDelayType","isBucketed":true,"params":{"size":10,"orderBy":{"type":"column","columnId":"0233d302-ec81-4fbe-96cb-7fac84cf035c"},"orderDirection":"desc","otherBucket":true,"missingBucket":false}},"13ec79e3-9d73-4536-9056-3d92802bb30a":{"label":"timestamp","dataType":"date","operationType":"date_histogram","sourceField":"timestamp","isBucketed":true,"scale":"interval","params":{"interval":"auto"}},"0233d302-ec81-4fbe-96cb-7fac84cf035c":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records"}},"columnOrder":["caf7421e-93a3-439e-ab0a-fbdead93c21c","13ec79e3-9d73-4536-9056-3d92802bb30a","0233d302-ec81-4fbe-96cb-7fac84cf035c"],"incompleteColumns":{}}}}},"visualization":{"legend":{"isVisible":true,"position":"bottom"},"valueLabels":"hide","fittingFunction":"None","yLeftExtent":{"mode":"full"},"yRightExtent":{"mode":"full"},"axisTitlesVisibilitySettings":{"x":true,"yLeft":false,"yRight":true},"tickLabelsVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"gridlinesVisibilitySettings":{"x":true,"yLeft":true,"yRight":true},"preferredSeriesType":"bar_percentage_stacked","layers":[{"layerId":"e80cc05e-c52a-4e5f-ac71-4b37274867f5","accessors":["0233d302-ec81-4fbe-96cb-7fac84cf035c"],"position":"top","seriesType":"bar_percentage_stacked","showGridlines":false,"palette":{"type":"palette","name":"cool"},"xAccessor":"13ec79e3-9d73-4536-9056-3d92802bb30a","splitAccessor":"caf7421e-93a3-439e-ab0a-fbdead93c21c"}]},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-e80cc05e-c52a-4e5f-ac71-4b37274867f5"}]},"hidePanelTitles":false,"enhancements":{}},"title":"[Flights] Delay Type"},{"version":"7.14.0","type":"lens","gridData":{"x":24,"y":57,"w":12,"h":11,"i":"5d53db36-2d5a-4adc-af7b-cec4c1a294e0"},"panelIndex":"5d53db36-2d5a-4adc-af7b-cec4c1a294e0","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsPie","state":{"datasourceStates":{"indexpattern":{"layers":{"0c8e136b-a822-4fb3-836d-e06cbea4eea4":{"columns":{"d1cee8bf-34cf-4141-99d7-ff043ee77b56":{"label":"Top values of FlightDelayType","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"FlightDelayType","isBucketed":true,"params":{"size":10,"orderBy":{"type":"column","columnId":"aa152ace-ee2d-447b-b86d-459bef4d7880"},"orderDirection":"desc","otherBucket":true,"missingBucket":false}},"aa152ace-ee2d-447b-b86d-459bef4d7880":{"label":"Count of records","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records"}},"columnOrder":["d1cee8bf-34cf-4141-99d7-ff043ee77b56","aa152ace-ee2d-447b-b86d-459bef4d7880"],"incompleteColumns":{}}}}},"visualization":{"shape":"pie","palette":{"type":"palette","name":"cool"},"layers":[{"layerId":"0c8e136b-a822-4fb3-836d-e06cbea4eea4","groups":["d1cee8bf-34cf-4141-99d7-ff043ee77b56"],"metric":"aa152ace-ee2d-447b-b86d-459bef4d7880","numberDisplay":"percent","categoryDisplay":"default","legendDisplay":"default","nestedLegend":false}]},"query":{"query":"","language":"kuery"},"filters":[{"meta":{"type":"phrase","key":"FlightDelayType","params":{"query":"No Delay"},"disabled":false,"negate":true,"alias":null,"indexRefName":"filter-index-pattern-0"},"query":{"match_phrase":{"FlightDelayType":"No Delay"}},"$state":{"store":"appState"}}]},"references":[{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d","name":"indexpattern-datasource-layer-0c8e136b-a822-4fb3-836d-e06cbea4eea4"},{"name":"filter-index-pattern-0","type":"index-pattern","id":"d3d7af60-4c81-11e8-b3d7-01146121b73d"}]},"enhancements":{},"hidePanelTitles":false},"title":"[Flights] Delay Type"}]', - optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', - version: 1, - timeRestore: true, - timeTo: 'now', - timeFrom: 'now-7d', - refreshInterval: { - pause: true, - value: 0, - }, - kibanaSavedObjectMeta: { - searchSourceJSON: - '{"query":{"language":"kuery","query":""},"filter":[],"highlightAll":true,"version":true}', - }, + dashboard: '8.5.0', }, + coreMigrationVersion: '8.6.0', }, ]; diff --git a/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts index b5f57e0edb2e6..5de45e08d0fec 100644 --- a/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts +++ b/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts @@ -381,48 +381,66 @@ export const getSavedObjects = (): SavedObject[] => [ { id: 'edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b', type: 'dashboard', - updated_at: '2021-10-28T15:07:36.622Z', - version: '3', + namespaces: ['default'], + updated_at: '2022-09-26T16:24:51.698Z', + version: 'WzE1NTIsMV0=', + attributes: { + title: i18n.translate('home.sampleData.logsSpec.webTrafficTitle', { + defaultMessage: '[Logs] Web Traffic', + }), + hits: 0, + description: i18n.translate('home.sampleData.logsSpec.webTrafficDescription', { + defaultMessage: "Analyze mock web traffic log data for Elastic's website", + }), + panelsJSON: + '[{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":14,"w":24,"h":18,"i":"4"},"panelIndex":"4","embeddableConfig":{"isLayerTOCOpen":false,"enhancements":{},"mapCenter":{"lat":42.16337,"lon":-88.92107,"zoom":3.64},"mapBuffer":{"minLon":-112.5,"minLat":21.94305,"maxLon":-45,"maxLat":55.77657},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_4"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":47,"w":24,"h":13,"i":"9"},"panelIndex":"9","embeddableConfig":{"mapCenter":[36.8092847020594,-96.94335937500001],"vis":{"params":{"sort":{"columnIndex":null,"direction":null}}},"enhancements":{}},"panelRefName":"panel_9"},{"version":"8.6.0","type":"visualization","gridData":{"x":36,"y":0,"w":12,"h":7,"i":"11"},"panelIndex":"11","embeddableConfig":{"vis":{"colors":{"0 - 500":"#BF1B00","1000 - 1500":"#7EB26D","500 - 1000":"#F2C96D"},"defaultColors":{"0 - 500":"rgb(165,0,38)","1000 - 1500":"rgb(0,104,55)","500 - 1000":"rgb(255,255,190)"},"legendOpen":false},"enhancements":{},"hidePanelTitles":true},"title":"","panelRefName":"panel_11"},{"version":"8.6.0","type":"visualization","gridData":{"x":24,"y":14,"w":24,"h":33,"i":"14"},"panelIndex":"14","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_14"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":7,"w":24,"h":7,"i":"15"},"panelIndex":"15","embeddableConfig":{"enhancements":{"dynamicActions":{"events":[]}}},"panelRefName":"panel_15"},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":0,"w":24,"h":7,"i":"343f0bef-0b19-452e-b1c8-59beb18b6f0c"},"panelIndex":"343f0bef-0b19-452e-b1c8-59beb18b6f0c","embeddableConfig":{"savedVis":{"title":"[Logs] Markdown Instructions","description":"","type":"markdown","params":{"fontSize":12,"openLinksInNewTab":true,"markdown":"## Sample Logs Data\\nThis dashboard contains sample data for you to play with. You can view it, search it, and interact with the visualizations. For more information about Kibana, check our [docs](https://www.elastic.co/guide/en/kibana/current/index.html)."},"uiState":{},"data":{"aggs":[],"searchSource":{"query":{"query":"","language":"kuery"},"filter":[]}}},"enhancements":{},"hidePanelTitles":true}},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":0,"w":12,"h":7,"i":"bb94016e-f4a6-49ca-87a9-296a2869d570"},"panelIndex":"bb94016e-f4a6-49ca-87a9-296a2869d570","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"483defd2-775b-4a62-bdef-496c819bb8ed":{"columns":{"37430d12-7452-4cc9-b035-5cfd4061edf0":{"label":"Visits","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true}},"columnOrder":["37430d12-7452-4cc9-b035-5cfd4061edf0"],"incompleteColumns":{}}}}},"visualization":{"layerId":"483defd2-775b-4a62-bdef-496c819bb8ed","accessor":"37430d12-7452-4cc9-b035-5cfd4061edf0","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-483defd2-775b-4a62-bdef-496c819bb8ed","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":7,"w":12,"h":7,"i":"01d8e435-91c0-484f-a11e-856747050b0a"},"panelIndex":"01d8e435-91c0-484f-a11e-856747050b0a","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"f3793bb7-3971-4753-866d-4008e77a9f9a":{"columns":{"71c076a6-e782-4866-b8df-5fd85a41f08bX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"response.keyword >= 400 and response.keyword < 500","language":"kuery"},"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"location":{"min":0,"max":73},"text":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()"}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08b":{"label":"HTTP 4xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"customLabel":true}},"columnOrder":["71c076a6-e782-4866-b8df-5fd85a41f08b","71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1","71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"f3793bb7-3971-4753-866d-4008e77a9f9a","accessor":"71c076a6-e782-4866-b8df-5fd85a41f08b","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-f3793bb7-3971-4753-866d-4008e77a9f9a","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"lens","gridData":{"x":36,"y":7,"w":12,"h":7,"i":"8c1456d4-1993-4ba2-b701-04aca02c9fef"},"panelIndex":"8c1456d4-1993-4ba2-b701-04aca02c9fef","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsLegacyMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"f3793bb7-3971-4753-866d-4008e77a9f9a":{"columns":{"71c076a6-e782-4866-b8df-5fd85a41f08bX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"response.keyword >= 500","language":"kuery"},"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"location":{"min":0,"max":46},"text":"count(kql=\'response.keyword >= 500\') / count()"}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08b":{"label":"HTTP 5xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"customLabel":true}},"columnOrder":["71c076a6-e782-4866-b8df-5fd85a41f08b","71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1","71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"f3793bb7-3971-4753-866d-4008e77a9f9a","accessor":"71c076a6-e782-4866-b8df-5fd85a41f08b","layerType":"data","textAlign":"center","titlePosition":"bottom","size":"xl"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-f3793bb7-3971-4753-866d-4008e77a9f9a","type":"index-pattern"}]},"enhancements":{}}},{"version":"8.6.0","type":"visualization","gridData":{"x":0,"y":32,"w":24,"h":15,"i":"8e59c7cf-6e42-4343-a113-c4a255fcf2ce"},"panelIndex":"8e59c7cf-6e42-4343-a113-c4a255fcf2ce","embeddableConfig":{"savedVis":{"title":"","description":"","type":"vega","params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega-lite/v5.json\\n data: {\\n url: {\\n %context%: true\\n %timefield%: @timestamp\\n index: kibana_sample_data_logs\\n body: {\\n aggs: {\\n countries: {\\n terms: {\\n field: geo.src\\n size: 25\\n }\\n aggs: {\\n hours: {\\n histogram: {\\n field: hour_of_day\\n interval: 1\\n }\\n aggs: {\\n unique: {\\n cardinality: {\\n field: clientip\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n size: 0\\n }\\n }\\n format: {property: \\"aggregations.countries.buckets\\"}\\n }\\n \\n transform: [\\n {\\n flatten: [\\"hours.buckets\\"],\\n as: [\\"buckets\\"]\\n }\\n ]\\n\\n mark: {\\n type: rect\\n tooltip: true\\n }\\n\\n encoding: {\\n x: {\\n field: buckets.key\\n type: ordinal\\n axis: {\\n title: false\\n labelAngle: 0\\n }\\n }\\n y: {\\n field: key\\n type: nominal\\n sort: {\\n field: -buckets.unique.value\\n }\\n axis: {title: false}\\n }\\n color: {\\n field: buckets.unique.value\\n type: quantitative\\n axis: {title: false}\\n scale: {\\n scheme: reds\\n }\\n }\\n }\\n}\\n"},"uiState":{},"data":{"aggs":[],"searchSource":{"query":{"query":"","language":"kuery"},"filter":[]}}},"enhancements":{}},"panelRefName":"panel_8e59c7cf-6e42-4343-a113-c4a255fcf2ce"},{"version":"8.6.0","type":"lens","gridData":{"x":24,"y":47,"w":24,"h":13,"i":"cbca842c-b9fa-4523-9ce0-14e350866e33"},"panelIndex":"cbca842c-b9fa-4523-9ce0-14e350866e33","embeddableConfig":{"hidePanelTitles":false,"enhancements":{}},"title":"[Logs] Bytes distribution","panelRefName":"panel_cbca842c-b9fa-4523-9ce0-14e350866e33"},{"version":"8.6.0","type":"lens","gridData":{"x":0,"y":60,"w":48,"h":19,"i":"1d5f0b3f-d9d2-4b26-997b-83bc5ca3090b"},"panelIndex":"1d5f0b3f-d9d2-4b26-997b-83bc5ca3090b","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsDatatable","state":{"datasourceStates":{"indexpattern":{"layers":{"c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0":{"columns":{"42783ad7-dbcf-4310-bc06-f21f4eaaac96":{"label":"URL","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"url.keyword","isBucketed":true,"params":{"size":1000,"orderBy":{"type":"column","columnId":"f7835375-4d5b-4839-95ea-41928192a319"},"orderDirection":"desc","otherBucket":true,"missingBucket":false},"customLabel":true},"f7835375-4d5b-4839-95ea-41928192a319":{"label":"Visits","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX0":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"response.keyword >= 400 and response.keyword < 500","language":"kuery"},"customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX1":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX2":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1"],"location":{"min":0,"max":73},"text":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()"}},"references":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1"],"customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1da":{"label":"HTTP 4xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX2"],"customLabel":true},"791d5a5b-a7ba-4e9e-b533-51b33c7d7747":{"label":"Unique","dataType":"number","operationType":"unique_count","scale":"ratio","sourceField":"clientip","isBucketed":false,"customLabel":true},"611e3509-e834-4fdd-b573-44e959e95d27":{"label":"95th percentile of bytes","dataType":"number","operationType":"percentile","sourceField":"bytes","isBucketed":false,"scale":"ratio","params":{"percentile":95,"format":{"id":"bytes","params":{"decimals":0}}}},"9f79ecca-123f-4098-a658-6b0e998da003":{"label":"Median of bytes","dataType":"number","operationType":"median","sourceField":"bytes","isBucketed":false,"scale":"ratio","params":{"format":{"id":"bytes","params":{"decimals":0}}}},"491285fd-0196-402c-9b7f-4660fdc1c22aX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","filter":{"query":"response.keyword >= 500","language":"kuery"},"customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22aX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"___records___","customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22aX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1"],"location":{"min":0,"max":46},"text":"count(kql=\'response.keyword >= 500\') / count()"}},"references":["491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1"],"customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22a":{"label":"HTTP 5xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["491285fd-0196-402c-9b7f-4660fdc1c22aX2"],"customLabel":true}},"columnOrder":["42783ad7-dbcf-4310-bc06-f21f4eaaac96","f7835375-4d5b-4839-95ea-41928192a319","791d5a5b-a7ba-4e9e-b533-51b33c7d7747","07fc84ca-4147-4ba9-879e-d1b4e086e1da","491285fd-0196-402c-9b7f-4660fdc1c22a","491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1","491285fd-0196-402c-9b7f-4660fdc1c22aX2","07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1","07fc84ca-4147-4ba9-879e-d1b4e086e1daX2","611e3509-e834-4fdd-b573-44e959e95d27","9f79ecca-123f-4098-a658-6b0e998da003"],"incompleteColumns":{}}}}},"visualization":{"layerId":"c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0","columns":[{"columnId":"42783ad7-dbcf-4310-bc06-f21f4eaaac96","width":650.6666666666666},{"columnId":"f7835375-4d5b-4839-95ea-41928192a319"},{"columnId":"491285fd-0196-402c-9b7f-4660fdc1c22a","isTransposed":false,"width":81.66666666666669,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#fbddd6","stop":0.1},{"color":"#CC5642","stop":1}],"rangeType":"number","name":"custom","colorStops":[{"color":"#fbddd6","stop":0.05},{"color":"#CC5642","stop":0.1}],"rangeMin":0.05,"rangeMax":0.1}}},{"columnId":"07fc84ca-4147-4ba9-879e-d1b4e086e1da","isTransposed":false,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#fbddd6","stop":0.1},{"color":"#cc5642","stop":1.1}],"name":"custom","colorStops":[{"color":"#fbddd6","stop":0.05},{"color":"#cc5642","stop":0.1}],"rangeType":"number","rangeMin":0.05,"rangeMax":0.1}}},{"columnId":"791d5a5b-a7ba-4e9e-b533-51b33c7d7747","isTransposed":false},{"columnId":"611e3509-e834-4fdd-b573-44e959e95d27","isTransposed":false},{"columnId":"9f79ecca-123f-4098-a658-6b0e998da003","isTransposed":false}],"sorting":{"columnId":"491285fd-0196-402c-9b7f-4660fdc1c22a","direction":"desc"},"layerType":"data","rowHeight":"single","rowHeightLines":1},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern","type":"index-pattern"},{"id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0","type":"index-pattern"}]},"enhancements":{"dynamicActions":{"events":[]}},"hidePanelTitles":false},"title":"[Logs] Errors by host"}]', + optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', + version: 2, + timeRestore: true, + timeTo: 'now', + timeFrom: 'now-7d', + refreshInterval: { + pause: false, + value: 900000, + }, + controlGroupInput: { + controlStyle: 'oneLine', + chainingSystem: 'HIERARCHICAL', + panelsJSON: + '{"612f8db8-9ba9-41cf-a809-d133fe9b83a8":{"order":0,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"fieldName":"geo.src","title":"Source Country","id":"612f8db8-9ba9-41cf-a809-d133fe9b83a8","enhancements":{}}},"9807212f-5078-4c42-879c-6f28b3033fc9":{"order":1,"width":"small","grow":true,"type":"optionsListControl","explicitInput":{"fieldName":"machine.os.keyword","parentFieldName":"machine.os","title":"OS","id":"9807212f-5078-4c42-879c-6f28b3033fc9","enhancements":{}}},"6bf7a1b4-282e-43ac-aa46-81b97fa3acae":{"order":2,"width":"small","grow":true,"type":"rangeSliderControl","explicitInput":{"fieldName":"bytes","title":"Bytes","id":"6bf7a1b4-282e-43ac-aa46-81b97fa3acae","enhancements":{}}}}', + ignoreParentSettingsJSON: + '{"ignoreFilters":false,"ignoreQuery":false,"ignoreTimerange":false,"ignoreValidations":false}', + }, + kibanaSavedObjectMeta: { + searchSourceJSON: + '{"query":{"language":"kuery","query":""},"highlightAll":true,"version":true,"filter":[]}', + }, + }, references: [ { - id: '06cf9c40-9ee8-11e7-8711-e7a007dcef99', name: '4:panel_4', type: 'visualization', + id: '06cf9c40-9ee8-11e7-8711-e7a007dcef99', }, { - id: '4eb6e500-e1c7-11e7-b6d5-4dc382ef7f5b', name: '9:panel_9', type: 'visualization', + id: '4eb6e500-e1c7-11e7-b6d5-4dc382ef7f5b', }, { - id: '69a34b00-9ee8-11e7-8711-e7a007dcef99', name: '11:panel_11', type: 'visualization', + id: '69a34b00-9ee8-11e7-8711-e7a007dcef99', }, { - id: '7cbd2350-2223-11e8-b802-5bcf64c2cfb4', name: '14:panel_14', type: 'visualization', + id: '7cbd2350-2223-11e8-b802-5bcf64c2cfb4', }, { - id: '314c6f60-2224-11e8-b802-5bcf64c2cfb4', name: '15:panel_15', type: 'visualization', - }, - { - id: '90943e30-9a47-11e8-b64d-95841ca0b247', - name: '30326cdb-4ddd-49eb-a4f1-b555caa21d7c:control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_0_index_pattern', - type: 'index-pattern', - }, - { - id: '90943e30-9a47-11e8-b64d-95841ca0b247', - name: '30326cdb-4ddd-49eb-a4f1-b555caa21d7c:control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_1_index_pattern', - type: 'index-pattern', - }, - { - id: '90943e30-9a47-11e8-b64d-95841ca0b247', - name: '30326cdb-4ddd-49eb-a4f1-b555caa21d7c:control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_2_index_pattern', - type: 'index-pattern', + id: '314c6f60-2224-11e8-b802-5bcf64c2cfb4', }, { id: '90943e30-9a47-11e8-b64d-95841ca0b247', @@ -455,9 +473,14 @@ export const getSavedObjects = (): SavedObject[] => [ type: 'index-pattern', }, { - id: 'cb099a20-ea66-11eb-9425-113343a037e3', name: '8e59c7cf-6e42-4343-a113-c4a255fcf2ce:panel_8e59c7cf-6e42-4343-a113-c4a255fcf2ce', type: 'visualization', + id: 'cb099a20-ea66-11eb-9425-113343a037e3', + }, + { + name: 'cbca842c-b9fa-4523-9ce0-14e350866e33:panel_cbca842c-b9fa-4523-9ce0-14e350866e33', + type: 'lens', + id: '16b1d7d0-ea71-11eb-8b4b-f7b600de0f7d', }, { id: '90943e30-9a47-11e8-b64d-95841ca0b247', @@ -470,38 +493,25 @@ export const getSavedObjects = (): SavedObject[] => [ type: 'index-pattern', }, { - id: '16b1d7d0-ea71-11eb-8b4b-f7b600de0f7d', - name: 'cbca842c-b9fa-4523-9ce0-14e350866e33:panel_cbca842c-b9fa-4523-9ce0-14e350866e33', - type: 'lens', + name: 'controlGroup_612f8db8-9ba9-41cf-a809-d133fe9b83a8:optionsListDataView', + type: 'index-pattern', + id: '90943e30-9a47-11e8-b64d-95841ca0b247', }, - ], - migrationVersion: { - dashboard: '7.14.0', - }, - attributes: { - title: i18n.translate('home.sampleData.logsSpec.webTrafficTitle', { - defaultMessage: '[Logs] Web Traffic', - }), - hits: 0, - description: i18n.translate('home.sampleData.logsSpec.webTrafficDescription', { - defaultMessage: "Analyze mock web traffic log data for Elastic's website", - }), - panelsJSON: - '[{"version":"8.0.0","type":"map","gridData":{"x":0,"y":19,"w":24,"h":18,"i":"4"},"panelIndex":"4","embeddableConfig":{"isLayerTOCOpen":false,"enhancements":{},"mapCenter":{"lat":42.16337,"lon":-88.92107,"zoom":3.64},"mapBuffer":{"minLon":-112.5,"minLat":21.94305,"maxLon":-45,"maxLat":55.77657},"openTOCDetails":[],"hiddenLayers":[]},"panelRefName":"panel_4"},{"version":"8.0.0","type":"visualization","gridData":{"x":0,"y":52,"w":24,"h":13,"i":"9"},"panelIndex":"9","embeddableConfig":{"mapCenter":[36.8092847020594,-96.94335937500001],"vis":{"params":{"sort":{"columnIndex":null,"direction":null}}},"enhancements":{}},"panelRefName":"panel_9"},{"version":"8.0.0","type":"visualization","gridData":{"x":12,"y":6,"w":12,"h":8,"i":"11"},"panelIndex":"11","embeddableConfig":{"vis":{"colors":{"0 - 500":"#BF1B00","1000 - 1500":"#7EB26D","500 - 1000":"#F2C96D"},"defaultColors":{"0 - 500":"rgb(165,0,38)","1000 - 1500":"rgb(0,104,55)","500 - 1000":"rgb(255,255,190)"},"legendOpen":false},"enhancements":{}},"title":"","panelRefName":"panel_11"},{"version":"8.0.0","type":"visualization","gridData":{"x":24,"y":19,"w":24,"h":33,"i":"14"},"panelIndex":"14","embeddableConfig":{"enhancements":{}},"panelRefName":"panel_14"},{"version":"8.0.0","type":"visualization","gridData":{"x":24,"y":6,"w":24,"h":13,"i":"15"},"panelIndex":"15","embeddableConfig":{"enhancements":{"dynamicActions":{"events":[]}}},"panelRefName":"panel_15"},{"version":"8.0.0","type":"visualization","gridData":{"x":0,"y":0,"w":17,"h":6,"i":"343f0bef-0b19-452e-b1c8-59beb18b6f0c"},"panelIndex":"343f0bef-0b19-452e-b1c8-59beb18b6f0c","embeddableConfig":{"savedVis":{"title":"[Logs] Markdown Instructions","description":"","type":"markdown","params":{"fontSize":12,"openLinksInNewTab":true,"markdown":"## Sample Logs Data\\nThis dashboard contains sample data for you to play with. You can view it, search it, and interact with the visualizations. For more information about Kibana, check our [docs](https://www.elastic.co/guide/en/kibana/current/index.html)."},"uiState":{},"data":{"aggs":[],"searchSource":{"query":{"query":"","language":"kuery"},"filter":[]}}},"enhancements":{},"hidePanelTitles":true}},{"version":"8.0.0","type":"visualization","gridData":{"x":17,"y":0,"w":31,"h":6,"i":"30326cdb-4ddd-49eb-a4f1-b555caa21d7c"},"panelIndex":"30326cdb-4ddd-49eb-a4f1-b555caa21d7c","embeddableConfig":{"savedVis":{"title":"[Logs] Input Controls","description":"","type":"input_control_vis","params":{"controls":[{"id":"1523980210832","fieldName":"geo.src","label":"Source Country","type":"list","options":{"type":"terms","multiselect":true,"size":100,"order":"desc"},"parent":"","indexPatternRefName":"control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_0_index_pattern"},{"id":"1523980191978","fieldName":"machine.os.keyword","label":"OS","type":"list","options":{"type":"terms","multiselect":true,"size":100,"order":"desc"},"parent":"1523980210832","indexPatternRefName":"control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_1_index_pattern"},{"id":"1523980232790","fieldName":"bytes","label":"Bytes","type":"range","options":{"decimalPlaces":0,"step":1024},"indexPatternRefName":"control_30326cdb-4ddd-49eb-a4f1-b555caa21d7c_2_index_pattern"}],"updateFiltersOnChange":true,"useTimeFilter":true,"pinFilters":false},"uiState":{},"data":{"aggs":[],"searchSource":{"query":{"query":"","language":"kuery"},"filter":[]}}},"enhancements":{},"hidePanelTitles":true}},{"version":"8.0.0","type":"lens","gridData":{"x":0,"y":6,"w":12,"h":8,"i":"bb94016e-f4a6-49ca-87a9-296a2869d570"},"panelIndex":"bb94016e-f4a6-49ca-87a9-296a2869d570","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"483defd2-775b-4a62-bdef-496c819bb8ed":{"columns":{"37430d12-7452-4cc9-b035-5cfd4061edf0":{"label":"Visits","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true}},"columnOrder":["37430d12-7452-4cc9-b035-5cfd4061edf0"],"incompleteColumns":{}}}}},"visualization":{"layerId":"483defd2-775b-4a62-bdef-496c819bb8ed","accessor":"37430d12-7452-4cc9-b035-5cfd4061edf0"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-483defd2-775b-4a62-bdef-496c819bb8ed"}]},"enhancements":{}}},{"version":"8.0.0","type":"lens","gridData":{"x":0,"y":14,"w":12,"h":5,"i":"01d8e435-91c0-484f-a11e-856747050b0a"},"panelIndex":"01d8e435-91c0-484f-a11e-856747050b0a","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"f3793bb7-3971-4753-866d-4008e77a9f9a":{"columns":{"71c076a6-e782-4866-b8df-5fd85a41f08bX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"response.keyword >= 400 and response.keyword < 500","language":"kuery"},"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"location":{"min":0,"max":73},"text":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()"}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08b":{"label":"HTTP 4xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"customLabel":true}},"columnOrder":["71c076a6-e782-4866-b8df-5fd85a41f08b","71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1","71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"f3793bb7-3971-4753-866d-4008e77a9f9a","accessor":"71c076a6-e782-4866-b8df-5fd85a41f08b"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-f3793bb7-3971-4753-866d-4008e77a9f9a"}]},"enhancements":{}}},{"version":"8.0.0","type":"lens","gridData":{"x":12,"y":14,"w":12,"h":5,"i":"8c1456d4-1993-4ba2-b701-04aca02c9fef"},"panelIndex":"8c1456d4-1993-4ba2-b701-04aca02c9fef","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsMetric","state":{"datasourceStates":{"indexpattern":{"layers":{"f3793bb7-3971-4753-866d-4008e77a9f9a":{"columns":{"71c076a6-e782-4866-b8df-5fd85a41f08bX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"response.keyword >= 500","language":"kuery"},"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08bX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"location":{"min":0,"max":46},"text":"count(kql=\'response.keyword >= 500\') / count()"}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1"],"customLabel":true},"71c076a6-e782-4866-b8df-5fd85a41f08b":{"label":"HTTP 5xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"customLabel":true}},"columnOrder":["71c076a6-e782-4866-b8df-5fd85a41f08b","71c076a6-e782-4866-b8df-5fd85a41f08bX0","71c076a6-e782-4866-b8df-5fd85a41f08bX1","71c076a6-e782-4866-b8df-5fd85a41f08bX2"],"incompleteColumns":{}}}}},"visualization":{"layerId":"f3793bb7-3971-4753-866d-4008e77a9f9a","accessor":"71c076a6-e782-4866-b8df-5fd85a41f08b"},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-f3793bb7-3971-4753-866d-4008e77a9f9a"}]},"enhancements":{}}},{"version":"8.0.0","type":"visualization","gridData":{"x":0,"y":37,"w":24,"h":15,"i":"8e59c7cf-6e42-4343-a113-c4a255fcf2ce"},"panelIndex":"8e59c7cf-6e42-4343-a113-c4a255fcf2ce","embeddableConfig":{"savedVis":{"title":"","description":"","type":"vega","params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega-lite/v5.json\\n data: {\\n url: {\\n %context%: true\\n %timefield%: @timestamp\\n index: kibana_sample_data_logs\\n body: {\\n aggs: {\\n countries: {\\n terms: {\\n field: geo.src\\n size: 25\\n }\\n aggs: {\\n hours: {\\n histogram: {\\n field: hour_of_day\\n interval: 1\\n }\\n aggs: {\\n unique: {\\n cardinality: {\\n field: clientip\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n size: 0\\n }\\n }\\n format: {property: \\"aggregations.countries.buckets\\"}\\n }\\n \\n transform: [\\n {\\n flatten: [\\"hours.buckets\\"],\\n as: [\\"buckets\\"]\\n }\\n ]\\n\\n mark: {\\n type: rect\\n tooltip: true\\n }\\n\\n encoding: {\\n x: {\\n field: buckets.key\\n type: ordinal\\n axis: {\\n title: false\\n labelAngle: 0\\n }\\n }\\n y: {\\n field: key\\n type: nominal\\n sort: {\\n field: -buckets.unique.value\\n }\\n axis: {title: false}\\n }\\n color: {\\n field: buckets.unique.value\\n type: quantitative\\n axis: {title: false}\\n scale: {\\n scheme: reds\\n }\\n }\\n }\\n}\\n"},"uiState":{},"data":{"aggs":[],"searchSource":{"query":{"query":"","language":"kuery"},"filter":[]}}},"enhancements":{}},"panelRefName":"panel_8e59c7cf-6e42-4343-a113-c4a255fcf2ce"},{"version":"8.0.0","type":"lens","gridData":{"x":0,"y":65,"w":48,"h":19,"i":"1d5f0b3f-d9d2-4b26-997b-83bc5ca3090b"},"panelIndex":"1d5f0b3f-d9d2-4b26-997b-83bc5ca3090b","embeddableConfig":{"attributes":{"title":"","type":"lens","visualizationType":"lnsDatatable","state":{"datasourceStates":{"indexpattern":{"layers":{"c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0":{"columns":{"42783ad7-dbcf-4310-bc06-f21f4eaaac96":{"label":"URL","dataType":"string","operationType":"terms","scale":"ordinal","sourceField":"url.keyword","isBucketed":true,"params":{"size":1000,"orderBy":{"type":"column","columnId":"f7835375-4d5b-4839-95ea-41928192a319"},"orderDirection":"desc","otherBucket":true,"missingBucket":false},"customLabel":true},"f7835375-4d5b-4839-95ea-41928192a319":{"label":"Visits","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX0":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"response.keyword >= 400 and response.keyword < 500","language":"kuery"},"customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX1":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1daX2":{"label":"Part of HTTP 4xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1"],"location":{"min":0,"max":73},"text":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()"}},"references":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1"],"customLabel":true},"07fc84ca-4147-4ba9-879e-d1b4e086e1da":{"label":"HTTP 4xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 400 and response.keyword < 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["07fc84ca-4147-4ba9-879e-d1b4e086e1daX2"],"customLabel":true},"791d5a5b-a7ba-4e9e-b533-51b33c7d7747":{"label":"Unique","dataType":"number","operationType":"unique_count","scale":"ratio","sourceField":"clientip","isBucketed":false,"customLabel":true},"611e3509-e834-4fdd-b573-44e959e95d27":{"label":"95th percentile of bytes","dataType":"number","operationType":"percentile","sourceField":"bytes","isBucketed":false,"scale":"ratio","params":{"percentile":95,"format":{"id":"bytes","params":{"decimals":0}}}},"9f79ecca-123f-4098-a658-6b0e998da003":{"label":"Median of bytes","dataType":"number","operationType":"median","sourceField":"bytes","isBucketed":false,"scale":"ratio","params":{"format":{"id":"bytes","params":{"decimals":0}}}},"491285fd-0196-402c-9b7f-4660fdc1c22aX0":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","filter":{"query":"response.keyword >= 500","language":"kuery"},"customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22aX1":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"count","isBucketed":false,"scale":"ratio","sourceField":"Records","customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22aX2":{"label":"Part of HTTP 5xx","dataType":"number","operationType":"math","isBucketed":false,"scale":"ratio","params":{"tinymathAst":{"type":"function","name":"divide","args":["491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1"],"location":{"min":0,"max":46},"text":"count(kql=\'response.keyword >= 500\') / count()"}},"references":["491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1"],"customLabel":true},"491285fd-0196-402c-9b7f-4660fdc1c22a":{"label":"HTTP 5xx","dataType":"number","operationType":"formula","isBucketed":false,"scale":"ratio","params":{"formula":"count(kql=\'response.keyword >= 500\') / count()","isFormulaBroken":false,"format":{"id":"percent","params":{"decimals":1}}},"references":["491285fd-0196-402c-9b7f-4660fdc1c22aX2"],"customLabel":true}},"columnOrder":["42783ad7-dbcf-4310-bc06-f21f4eaaac96","f7835375-4d5b-4839-95ea-41928192a319","791d5a5b-a7ba-4e9e-b533-51b33c7d7747","07fc84ca-4147-4ba9-879e-d1b4e086e1da","491285fd-0196-402c-9b7f-4660fdc1c22a","491285fd-0196-402c-9b7f-4660fdc1c22aX0","491285fd-0196-402c-9b7f-4660fdc1c22aX1","491285fd-0196-402c-9b7f-4660fdc1c22aX2","07fc84ca-4147-4ba9-879e-d1b4e086e1daX0","07fc84ca-4147-4ba9-879e-d1b4e086e1daX1","07fc84ca-4147-4ba9-879e-d1b4e086e1daX2","611e3509-e834-4fdd-b573-44e959e95d27","9f79ecca-123f-4098-a658-6b0e998da003"],"incompleteColumns":{}}}}},"visualization":{"layerId":"c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0","columns":[{"columnId":"42783ad7-dbcf-4310-bc06-f21f4eaaac96","width":650.6666666666666},{"columnId":"f7835375-4d5b-4839-95ea-41928192a319"},{"columnId":"491285fd-0196-402c-9b7f-4660fdc1c22a","isTransposed":false,"width":81.66666666666669,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#fbddd6","stop":0.1},{"color":"#CC5642","stop":1}],"rangeType":"number","name":"custom","colorStops":[{"color":"#fbddd6","stop":0.05},{"color":"#CC5642","stop":0.1}],"rangeMin":0.05,"rangeMax":0.1}}},{"columnId":"07fc84ca-4147-4ba9-879e-d1b4e086e1da","isTransposed":false,"colorMode":"cell","palette":{"name":"custom","type":"palette","params":{"steps":5,"stops":[{"color":"#fbddd6","stop":0.1},{"color":"#cc5642","stop":1.1}],"name":"custom","colorStops":[{"color":"#fbddd6","stop":0.05},{"color":"#cc5642","stop":0.1}],"rangeType":"number","rangeMin":0.05,"rangeMax":0.1}}},{"columnId":"791d5a5b-a7ba-4e9e-b533-51b33c7d7747","isTransposed":false},{"columnId":"611e3509-e834-4fdd-b573-44e959e95d27","isTransposed":false},{"columnId":"9f79ecca-123f-4098-a658-6b0e998da003","isTransposed":false}],"sorting":{"columnId":"491285fd-0196-402c-9b7f-4660fdc1c22a","direction":"desc"}},"query":{"query":"","language":"kuery"},"filters":[]},"references":[{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-current-indexpattern"},{"type":"index-pattern","id":"90943e30-9a47-11e8-b64d-95841ca0b247","name":"indexpattern-datasource-layer-c35dc8ee-50d1-4ef7-8b4b-9c21a7e7d3b0"}]},"enhancements":{"dynamicActions":{"events":[]}},"hidePanelTitles":false},"title":"[Logs] Errors by host"},{"version":"8.0.0","type":"lens","gridData":{"x":24,"y":52,"w":24,"h":13,"i":"cbca842c-b9fa-4523-9ce0-14e350866e33"},"panelIndex":"cbca842c-b9fa-4523-9ce0-14e350866e33","embeddableConfig":{"hidePanelTitles":false,"enhancements":{}},"title":"[Logs] Bytes distribution","panelRefName":"panel_cbca842c-b9fa-4523-9ce0-14e350866e33"}]', - optionsJSON: '{"hidePanelTitles":false,"useMargins":true}', - version: 2, - timeRestore: true, - timeTo: 'now', - timeFrom: 'now-7d', - refreshInterval: { - pause: false, - value: 900000, + { + name: 'controlGroup_9807212f-5078-4c42-879c-6f28b3033fc9:optionsListDataView', + type: 'index-pattern', + id: '90943e30-9a47-11e8-b64d-95841ca0b247', }, - kibanaSavedObjectMeta: { - searchSourceJSON: - '{"query":{"language":"kuery","query":""},"filter":[],"highlightAll":true,"version":true}', + { + name: 'controlGroup_6bf7a1b4-282e-43ac-aa46-81b97fa3acae:rangeSliderDataView', + type: 'index-pattern', + id: '90943e30-9a47-11e8-b64d-95841ca0b247', }, + ], + migrationVersion: { + dashboard: '8.5.0', }, + coreMigrationVersion: '8.6.0', }, { id: '2f360f30-ea74-11eb-b4c6-3d2afc1cb389', diff --git a/test/analytics/tests/instrumented_events/from_the_browser/loaded_dashboard.ts b/test/analytics/tests/instrumented_events/from_the_browser/loaded_dashboard.ts index 0522ab5b41c2c..bc04d60c3fb54 100644 --- a/test/analytics/tests/instrumented_events/from_the_browser/loaded_dashboard.ts +++ b/test/analytics/tests/instrumented_events/from_the_browser/loaded_dashboard.ts @@ -200,7 +200,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); expect(event.properties.key2).to.be('num_of_panels'); - expect(event.properties.value2).to.be(17); + expect(event.properties.value2).to.be(16); }); /** diff --git a/test/functional/apps/home/_sample_data.ts b/test/functional/apps/home/_sample_data.ts index 7b362aefc609d..4120a9ecc1a54 100644 --- a/test/functional/apps/home/_sample_data.ts +++ b/test/functional/apps/home/_sample_data.ts @@ -95,7 +95,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); await renderable.waitForRender(); const panelCount = await PageObjects.dashboard.getPanelCount(); - expect(panelCount).to.be(17); + expect(panelCount).to.be(16); }); it('should render visualizations', async () => { @@ -107,7 +107,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(10); log.debug('Checking input controls rendered'); - await dashboardExpect.inputControlItemCount(3); + await dashboardExpect.controlCount(3); log.debug('Checking tag cloud rendered'); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); log.debug('Checking vega chart rendered'); @@ -119,7 +119,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); await renderable.waitForRender(); const panelCount = await PageObjects.dashboard.getPanelCount(); - expect(panelCount).to.be(13); + expect(panelCount).to.be(12); }); it('should launch sample ecommerce data set dashboard', async () => { @@ -127,7 +127,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.header.waitUntilLoadingHasFinished(); await renderable.waitForRender(); const panelCount = await PageObjects.dashboard.getPanelCount(); - expect(panelCount).to.be(15); + expect(panelCount).to.be(14); }); }); diff --git a/test/functional/services/dashboard/expectations.ts b/test/functional/services/dashboard/expectations.ts index 73c49525ef4a1..6e20e5b574202 100644 --- a/test/functional/services/dashboard/expectations.ts +++ b/test/functional/services/dashboard/expectations.ts @@ -281,6 +281,7 @@ export class DashboardExpectService extends FtrService { }); } + // legacy controls visualization async inputControlItemCount(expectedCount: number) { this.log.debug(`DashboardExpect.inputControlItemCount(${expectedCount})`); await this.retry.try(async () => { @@ -289,6 +290,14 @@ export class DashboardExpectService extends FtrService { }); } + async controlCount(expectedCount: number) { + this.log.debug(`DashboardExpect.controlCount(${expectedCount})`); + await this.retry.try(async () => { + const controls = await this.testSubjects.findAll('control-frame'); + expect(controls.length).to.be(expectedCount); + }); + } + async lineChartPointsCount(expectedCount: number) { this.log.debug(`DashboardExpect.lineChartPointsCount(${expectedCount})`); await this.retry.try(async () => { diff --git a/x-pack/performance/journeys/ecommerce_dashboard.ts b/x-pack/performance/journeys/ecommerce_dashboard.ts index 89f05902f4153..05e46eab851b9 100644 --- a/x-pack/performance/journeys/ecommerce_dashboard.ts +++ b/x-pack/performance/journeys/ecommerce_dashboard.ts @@ -52,5 +52,5 @@ export const journey = new Journey({ await page.click(subj('launchSampleDataSetecommerce')); await page.click(subj('viewSampleDataSetecommerce-dashboard')); - await waitForVisualizations(page, 13); + await waitForVisualizations(page, 12); }); diff --git a/x-pack/performance/journeys/flight_dashboard.ts b/x-pack/performance/journeys/flight_dashboard.ts index ac6e589d391a5..1fbf2e3e77cb2 100644 --- a/x-pack/performance/journeys/flight_dashboard.ts +++ b/x-pack/performance/journeys/flight_dashboard.ts @@ -52,7 +52,7 @@ export const journey = new Journey({ await page.click(subj('launchSampleDataSetflights')); await page.click(subj('viewSampleDataSetflights-dashboard')); - await waitForVisualizations(page, 15); + await waitForVisualizations(page, 14); }) .step('Go to Airport Connections Visualizations Edit', async ({ page }) => { diff --git a/x-pack/performance/journeys/web_logs_dashboard.ts b/x-pack/performance/journeys/web_logs_dashboard.ts index 64ea47d412e0e..efba62acc517e 100644 --- a/x-pack/performance/journeys/web_logs_dashboard.ts +++ b/x-pack/performance/journeys/web_logs_dashboard.ts @@ -52,5 +52,5 @@ export const journey = new Journey({ await page.click(subj('launchSampleDataSetlogs')); await page.click(subj('viewSampleDataSetlogs-dashboard')); - await waitForVisualizations(page, 12); + await waitForVisualizations(page, 11); }); diff --git a/x-pack/test/functional/apps/dashboard/group2/_async_dashboard.ts b/x-pack/test/functional/apps/dashboard/group2/_async_dashboard.ts index 09d353e631fed..80354eda9eefd 100644 --- a/x-pack/test/functional/apps/dashboard/group2/_async_dashboard.ts +++ b/x-pack/test/functional/apps/dashboard/group2/_async_dashboard.ts @@ -179,7 +179,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(10); log.debug('Checking input controls rendered'); - await dashboardExpect.inputControlItemCount(3); + await dashboardExpect.controlCount(3); log.debug('Checking tag cloud rendered'); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); log.debug('Checking vega chart rendered'); diff --git a/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts index 27b2914d3575b..86c36241b9ca7 100644 --- a/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts +++ b/x-pack/test/search_sessions_integration/tests/apps/dashboard/async_search/save_search_session_relative_time.ts @@ -91,7 +91,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(11); log.debug('Checking input controls rendered'); - await dashboardExpect.inputControlItemCount(3); + await dashboardExpect.controlCount(3); log.debug('Checking tag cloud rendered'); await dashboardExpect.tagCloudWithValuesFound(['Sunny', 'Rain', 'Clear', 'Cloudy', 'Hail']); log.debug('Checking vega chart rendered'); diff --git a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts index 9f1b14040c6a6..b156f909d7a5d 100644 --- a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts @@ -58,7 +58,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(49); log.debug('Checking input controls rendered'); - await dashboardExpect.inputControlItemCount(3); + await dashboardExpect.controlCount(3); log.debug('Checking tag cloud rendered'); await dashboardExpect.tagCloudWithValuesFound([ 'Sunny', From e007ad6df510629da6e501ed55247496915f213f Mon Sep 17 00:00:00 2001 From: Ying Mao <ying.mao@elastic.co> Date: Mon, 3 Oct 2022 23:28:11 -0400 Subject: [PATCH 48/51] [Response Ops][Alerting] Fixing bug with using `runSoon` on pre-8.x rule (#142505) * Running task using scheduled task id. Adding functional test * dont run if rule is disable * Fixing i18n --- .../server/rules_client/rules_client.ts | 41 ++++++- .../rules_client/tests/run_soon.test.ts | 32 +++++- .../spaces_only/tests/alerting/index.ts | 1 + .../spaces_only/tests/alerting/run_soon.ts | 104 ++++++++++++++++++ 4 files changed, 171 insertions(+), 7 deletions(-) create mode 100644 x-pack/test/alerting_api_integration/spaces_only/tests/alerting/run_soon.ts diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 89ce20b59ae9b..7374868a11dbb 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -41,7 +41,11 @@ import { InvalidateAPIKeyResult as SecurityPluginInvalidateAPIKeyResult, } from '@kbn/security-plugin/server'; import { EncryptedSavedObjectsClient } from '@kbn/encrypted-saved-objects-plugin/server'; -import { TaskManagerStartContract, TaskStatus } from '@kbn/task-manager-plugin/server'; +import { + ConcreteTaskInstance, + TaskManagerStartContract, + TaskStatus, +} from '@kbn/task-manager-plugin/server'; import { IEvent, IEventLogClient, @@ -2977,9 +2981,27 @@ export class RulesClient { this.ruleTypeRegistry.ensureRuleTypeEnabled(attributes.alertTypeId); - const taskDoc = attributes.scheduledTaskId - ? await this.taskManager.get(attributes.scheduledTaskId) - : null; + // Check that the rule is enabled + if (!attributes.enabled) { + return i18n.translate('xpack.alerting.rulesClient.runSoon.disabledRuleError', { + defaultMessage: 'Error running rule: rule is disabled', + }); + } + + let taskDoc: ConcreteTaskInstance | null = null; + try { + taskDoc = attributes.scheduledTaskId + ? await this.taskManager.get(attributes.scheduledTaskId) + : null; + } catch (err) { + return i18n.translate('xpack.alerting.rulesClient.runSoon.getTaskError', { + defaultMessage: 'Error running rule: {errMessage}', + values: { + errMessage: err.message, + }, + }); + } + if ( taskDoc && (taskDoc.status === TaskStatus.Claiming || taskDoc.status === TaskStatus.Running) @@ -2989,7 +3011,16 @@ export class RulesClient { }); } - await this.taskManager.runSoon(id); + try { + await this.taskManager.runSoon(attributes.scheduledTaskId ? attributes.scheduledTaskId : id); + } catch (err) { + return i18n.translate('xpack.alerting.rulesClient.runSoon.runSoonError', { + defaultMessage: 'Error running rule: {errMessage}', + values: { + errMessage: err.message, + }, + }); + } } public async listAlertTypes() { diff --git a/x-pack/plugins/alerting/server/rules_client/tests/run_soon.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/run_soon.test.ts index bea66a31ead25..138b167549c09 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/run_soon.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/run_soon.test.ts @@ -59,7 +59,7 @@ describe('runSoon()', () => { consumer: 'myApp', schedule: { interval: '10s' }, alertTypeId: 'myType', - enabled: false, + enabled: true, apiKey: 'MTIzOmFiYw==', apiKeyOwner: 'elastic', actions: [ @@ -179,7 +179,7 @@ describe('runSoon()', () => { }); test('does not run a rule if that rule is already running', async () => { - taskManager.get.mockResolvedValue({ + taskManager.get.mockResolvedValueOnce({ id: '1', scheduledAt: new Date(), attempts: 0, @@ -196,4 +196,32 @@ describe('runSoon()', () => { expect(message).toBe('Rule is already running'); expect(taskManager.runSoon).not.toHaveBeenCalled(); }); + + test('does not run a rule if that rule is disabled', async () => { + unsecuredSavedObjectsClient.get.mockResolvedValue({ + ...existingRule, + attributes: { + ...existingRule.attributes, + enabled: false, + }, + }); + const message = await rulesClient.runSoon({ id: '1' }); + expect(message).toBe('Error running rule: rule is disabled'); + expect(taskManager.get).not.toHaveBeenCalled(); + expect(taskManager.runSoon).not.toHaveBeenCalled(); + }); + + test('gracefully handles errors getting task document', async () => { + taskManager.get.mockRejectedValueOnce(new Error('oh no!')); + const message = await rulesClient.runSoon({ id: '1' }); + expect(message).toBe('Error running rule: oh no!'); + expect(taskManager.runSoon).not.toHaveBeenCalled(); + }); + + test('gracefully handles errors calling runSoon', async () => { + taskManager.runSoon.mockRejectedValueOnce(new Error('fail!')); + const message = await rulesClient.runSoon({ id: '1' }); + expect(message).toBe('Error running rule: fail!'); + expect(taskManager.runSoon).toHaveBeenCalled(); + }); }); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts index 49e652d9a9a4e..e09cf3121adec 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/index.ts @@ -49,6 +49,7 @@ export default function alertingTests({ loadTestFile, getService }: FtrProviderC loadTestFile(require.resolve('./bulk_edit')); loadTestFile(require.resolve('./capped_action_type')); loadTestFile(require.resolve('./scheduled_task_id')); + loadTestFile(require.resolve('./run_soon')); // Do not place test files here, due to https://github.com/elastic/kibana/issues/123059 // note that this test will destroy existing spaces diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/run_soon.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/run_soon.ts new file mode 100644 index 0000000000000..050c220ab1b0f --- /dev/null +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/run_soon.ts @@ -0,0 +1,104 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { getUrlPrefix, getTestRuleData, ObjectRemover } from '../../../common/lib'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +const LOADED_RULE_ID = '74f3e6d7-b7bb-477d-ac28-92ee22728e6e'; + +// eslint-disable-next-line import/no-default-export +export default function createRunSoonTests({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const retry = getService('retry'); + const es = getService('es'); + const esArchiver = getService('esArchiver'); + + describe('runSoon', () => { + const objectRemover = new ObjectRemover(supertest); + + before(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/rules_scheduled_task_id'); + }); + + afterEach(async () => { + await objectRemover.removeAll(); + }); + + after(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/rules_scheduled_task_id'); + }); + + it('should successfully run rule where scheduled task id is different than rule id', async () => { + await retry.try(async () => { + // Sometimes the rule may already be running. Try until it isn't + const response = await supertest + .post(`${getUrlPrefix(``)}/internal/alerting/rule/${LOADED_RULE_ID}/_run_soon`) + .set('kbn-xsrf', 'foo'); + expect(response.status).to.eql(204); + }); + }); + + it('should successfully run rule where scheduled task id is same as rule id', async () => { + const response = await supertest + .post(`${getUrlPrefix(``)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData()); + + expect(response.status).to.eql(200); + objectRemover.add('default', response.body.id, 'rule', 'alerting'); + + const runSoonResponse = await supertest + .post(`${getUrlPrefix(``)}/internal/alerting/rule/${response.body.id}/_run_soon`) + .set('kbn-xsrf', 'foo'); + expect(runSoonResponse.status).to.eql(204); + }); + + it('should return message when task does not exist for rule', async () => { + const response = await supertest + .post(`${getUrlPrefix(``)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData()); + + expect(response.status).to.eql(200); + objectRemover.add('default', response.body.id, 'rule', 'alerting'); + + await es.delete({ + id: `task:${response.body.id}`, + index: '.kibana_task_manager', + }); + + const runSoonResponse = await supertest + .post(`${getUrlPrefix(``)}/internal/alerting/rule/${response.body.id}/_run_soon`) + .set('kbn-xsrf', 'foo'); + expect(runSoonResponse.status).to.eql(200); + expect(runSoonResponse.text).to.eql( + `Error running rule: Saved object [task/${response.body.id}] not found` + ); + }); + + it('should return message when rule is disabled', async () => { + const response = await supertest + .post(`${getUrlPrefix(``)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData()); + + expect(response.status).to.eql(200); + objectRemover.add('default', response.body.id, 'rule', 'alerting'); + + await supertest + .post(`${getUrlPrefix(``)}/api/alerting/rule/${response.body.id}/_disable`) + .set('kbn-xsrf', 'foo'); + + const runSoonResponse = await supertest + .post(`${getUrlPrefix(``)}/internal/alerting/rule/${response.body.id}/_run_soon`) + .set('kbn-xsrf', 'foo'); + expect(runSoonResponse.status).to.eql(200); + expect(runSoonResponse.text).to.eql(`Error running rule: rule is disabled`); + }); + }); +} From d616210c43a9be54342cd0c5fca64ca9cb9ecd0c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Mon, 3 Oct 2022 22:47:46 -0600 Subject: [PATCH 49/51] [api-docs] Daily api_docs build (#142551) --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.devdocs.json | 4 +- 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.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/core.devdocs.json | 30 --- api_docs/core.mdx | 4 +- 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/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.devdocs.json | 6 +- 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.devdocs.json | 12 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/fleet.devdocs.json | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.devdocs.json | 231 ++++++++++++------ api_docs/guided_onboarding.mdx | 12 +- api_docs/home.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_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_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.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_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_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_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_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 +- .../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 +- .../kbn_core_injected_metadata_browser.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_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_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- ...ore_rendering_server_internal.devdocs.json | 61 +++++ .../kbn_core_rendering_server_internal.mdx | 30 +++ ...n_core_rendering_server_mocks.devdocs.json | 95 +++++++ api_docs/kbn_core_rendering_server_mocks.mdx | 30 +++ .../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_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_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_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- 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_get_repo_files.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.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_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_kibana_manifest_schema.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_is_populated_object.mdx | 2 +- api_docs/kbn_ml_string_hash.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_source_classifier.mdx | 2 +- api_docs/kbn_rule_data_utils.devdocs.json | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.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 +- ...ared_ux_avatar_user_profile_components.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 +- .../kbn_shared_ux_link_redirect_app_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_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_some_dev_log.mdx | 2 +- api_docs/kbn_sort_package_json.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_type_summarizer.mdx | 2 +- api_docs/kbn_type_summarizer_core.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- .../kbn_user_profile_components.devdocs.json | 175 +++++++++++++ api_docs/kbn_user_profile_components.mdx | 4 +- 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/observability.devdocs.json | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 18 +- 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.mdx | 2 +- 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 | 48 ++++ api_docs/security.mdx | 4 +- 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.devdocs.json | 97 ++++++++ api_docs/threat_intelligence.mdx | 4 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.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 +- 420 files changed, 1134 insertions(+), 535 deletions(-) create mode 100644 api_docs/kbn_core_rendering_server_internal.devdocs.json create mode 100644 api_docs/kbn_core_rendering_server_internal.mdx create mode 100644 api_docs/kbn_core_rendering_server_mocks.devdocs.json create mode 100644 api_docs/kbn_core_rendering_server_mocks.mdx diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 8c70634191ac9..f845dffebd44e 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: 2022-10-03 +date: 2022-10-04 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 5f708b7bd5b22..c624a6191fca4 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: 2022-10-03 +date: 2022-10-04 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 affc8c08a679c..bc33359fc9b04 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index 9971fcee0a58a..e0cc3c68239e4 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -5085,7 +5085,7 @@ "label": "status", "description": [], "signature": [ - "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"ok\" | \"active\"" + "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"active\" | \"ok\"" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, @@ -6055,7 +6055,7 @@ "label": "RuleExecutionStatuses", "description": [], "signature": [ - "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"ok\" | \"active\"" + "\"error\" | \"warning\" | \"unknown\" | \"pending\" | \"active\" | \"ok\"" ], "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index dba2b5b8a03fa..e2fad1a8907bd 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: 2022-10-03 +date: 2022-10-04 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 e327d3d9ef266..c5590b95953e3 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: 2022-10-03 +date: 2022-10-04 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 8465fcc62bbbe..fde29f929d3e8 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: 2022-10-03 +date: 2022-10-04 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 b4d39167b8afc..1b66b97f34a98 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: 2022-10-03 +date: 2022-10-04 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 964d7c080f50e..72ab30c5fdb70 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 1b56bb9f2bb5a..2a80740fc9956 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 5971c6140b9d0..18c757fc09259 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: 2022-10-03 +date: 2022-10-04 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 07a722e9fc63c..dce65a128457b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 8cb19bfe8beb9..653ae1b77adef 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: 2022-10-03 +date: 2022-10-04 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 6c31131981413..b3b220266009b 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: 2022-10-03 +date: 2022-10-04 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 69717a2855de0..ac8e3d27f519b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index d120725ebf6c3..79cb9a68aae5d 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.devdocs.json b/api_docs/core.devdocs.json index 67fa46292601f..dc8c7cd70e377 100644 --- a/api_docs/core.devdocs.json +++ b/api_docs/core.devdocs.json @@ -29385,36 +29385,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "core", - "id": "def-server.IRenderOptions", - "type": "Interface", - "tags": [], - "label": "IRenderOptions", - "description": [], - "path": "src/core/server/rendering/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "core", - "id": "def-server.IRenderOptions.isAnonymousPage", - "type": "CompoundType", - "tags": [], - "label": "isAnonymousPage", - "description": [ - "\nSet whether the page is anonymous, which determines what plugins are enabled and whether to output user settings in the page metadata.\n`false` by default." - ], - "signature": [ - "boolean | undefined" - ], - "path": "src/core/server/rendering/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "core", "id": "def-server.IRouter", diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 2ce73b73214aa..48204394f0a85 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2688 | 0 | 30 | 0 | +| 2686 | 0 | 29 | 0 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index c9bd9c16e7214..dc07d39503245 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: 2022-10-03 +date: 2022-10-04 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 7fa93934def07..464789c8cd191 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: 2022-10-03 +date: 2022-10-04 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 4f0b134f643ca..5ad9b56b00576 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: 2022-10-03 +date: 2022-10-04 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 3cda1cdf63de6..f88ba52d6af1a 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: 2022-10-03 +date: 2022-10-04 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 09c0ef0d696bf..554f11d22eb36 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: 2022-10-03 +date: 2022-10-04 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 c3b582462fd7d..ef1fb301e167d 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: 2022-10-03 +date: 2022-10-04 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 34855c7100cec..96deb16679bb1 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: 2022-10-03 +date: 2022-10-04 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 5daa20fdddfef..7935fdee2a27e 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: 2022-10-03 +date: 2022-10-04 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 fa43c84f3166a..18bcd0b3d6185 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: 2022-10-03 +date: 2022-10-04 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 817619ccf49c9..4f324ce195e16 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: 2022-10-03 +date: 2022-10-04 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 6df0430d04c27..881f77c01491f 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: 2022-10-03 +date: 2022-10-04 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 3c34e78a89e7f..0f7512a8f4125 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index abe2810379ec2..efddd344cdaca 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 882abd4cb6150..a3a41ce841cf8 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 76be86527aaed..d294a02405563 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: 2022-10-03 +date: 2022-10-04 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 9c9793bd2bcfb..ddbdd9e335bb0 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: 2022-10-03 +date: 2022-10-04 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 bc90ebb67c09b..4cb08ffc96f64 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 4c4b222a02a7c..1559a8abc24e3 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: 2022-10-03 +date: 2022-10-04 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 5ab0874911417..ecf61f0f91ce3 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: 2022-10-03 +date: 2022-10-04 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 5aa1eae40de53..ba3a3d8c876df 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: 2022-10-03 +date: 2022-10-04 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 ba021086e294a..276207b2a393d 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: 2022-10-03 +date: 2022-10-04 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 bf991156be210..43d88ac7e1ed8 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: 2022-10-03 +date: 2022-10-04 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 2c09bd5d65d46..73c8ebf1471bd 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.devdocs.json b/api_docs/event_log.devdocs.json index 8361059c91079..b4c0370096cc2 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1312,7 +1312,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined)[]" + "(Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ active?: string | number | undefined; recovered?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1332,7 +1332,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial<DeepWriteable<Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}>>> | undefined" + "DeepPartial<DeepWriteable<Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ active?: string | number | undefined; recovered?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1347,7 +1347,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined" + "Readonly<{ error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; tags?: string[] | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; message?: string | undefined; kibana?: Readonly<{ alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ active?: string | number | undefined; recovered?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_searches?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; es_search_duration_ms?: string | number | undefined; total_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: string | number | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; description?: string | undefined; category?: string | undefined; id?: string | undefined; version?: string | undefined; license?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; event?: Readonly<{ start?: string | undefined; category?: string[] | undefined; type?: string[] | undefined; id?: string | undefined; created?: string | undefined; outcome?: string | undefined; end?: string | undefined; original?: string | undefined; duration?: string | number | undefined; code?: string | undefined; url?: string | undefined; action?: string | undefined; kind?: string | undefined; hash?: string | undefined; severity?: string | number | undefined; dataset?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; timezone?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 482e1d361a157..140f35dea7cc4 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: 2022-10-03 +date: 2022-10-04 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 2ab9af9772d04..5d2d5c6c99e07 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: 2022-10-03 +date: 2022-10-04 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 908d90469c751..184191c6cd298 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: 2022-10-03 +date: 2022-10-04 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 aa2ac31f046ec..205be987e15e5 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: 2022-10-03 +date: 2022-10-04 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 fd4412ad3f9e9..9d60a46814616 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: 2022-10-03 +date: 2022-10-04 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 4f1bd9723f36a..b44d904cdc0e5 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: 2022-10-03 +date: 2022-10-04 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 d17081eed3cbf..22fc0e2475ccd 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: 2022-10-03 +date: 2022-10-04 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 daa61ecf37e7b..fd1807af21b02 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: 2022-10-03 +date: 2022-10-04 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 aaf66fd40fa4e..e0264ca7b2d72 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: 2022-10-03 +date: 2022-10-04 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 8e5467dc9cff3..071e730b126d5 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: 2022-10-03 +date: 2022-10-04 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 a2a032c0c0bde..b964071af3c95 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: 2022-10-03 +date: 2022-10-04 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 e650bf57eac7f..3fb4a8e6e6545 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: 2022-10-03 +date: 2022-10-04 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 cf00311b239a8..4c84f9b680739 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: 2022-10-03 +date: 2022-10-04 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 0eed4b0b713d0..8b894b45d78d9 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: 2022-10-03 +date: 2022-10-04 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 353dfa02a7830..050f57af12aab 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index a6e9773502284..7f9018f5e89ce 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -64,7 +64,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -1193,7 +1193,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -2872,7 +2872,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3122,7 +3122,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3159,7 +3159,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3181,7 +3181,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 8b7f40f4a359b..513017f35056a 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: 2022-10-03 +date: 2022-10-04 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 040d820604007..b49361795cb22 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: 2022-10-03 +date: 2022-10-04 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 768f6188371fc..c431e9780deb9 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: 2022-10-03 +date: 2022-10-04 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 8491d90df2446..ee3ba1cdfdacf 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index 59f0a3a2c3c98..76458c52782a6 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -8390,7 +8390,7 @@ "label": "status", "description": [], "signature": [ - "\"active\" | \"inactive\"" + "\"inactive\" | \"active\"" ], "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", "deprecated": false, diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index b63495e177924..0dc50255cea65 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 97d12a56906f0..b4fff902dfabe 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.devdocs.json b/api_docs/guided_onboarding.devdocs.json index 27b0b8446a7d8..8b44efa700b66 100644 --- a/api_docs/guided_onboarding.devdocs.json +++ b/api_docs/guided_onboarding.devdocs.json @@ -6,44 +6,111 @@ "interfaces": [ { "parentPluginId": "guidedOnboarding", - "id": "def-public.GuidedOnboardingState", + "id": "def-public.GuideState", "type": "Interface", "tags": [], - "label": "GuidedOnboardingState", + "label": "GuideState", "description": [], - "path": "src/plugins/guided_onboarding/public/types.ts", + "path": "src/plugins/guided_onboarding/common/types.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "guidedOnboarding", - "id": "def-public.GuidedOnboardingState.activeGuide", + "id": "def-public.GuideState.guideId", "type": "CompoundType", "tags": [], - "label": "activeGuide", + "label": "guideId", "description": [], "signature": [ - { - "pluginId": "guidedOnboarding", - "scope": "public", - "docId": "kibGuidedOnboardingPluginApi", - "section": "def-public.UseCase", - "text": "UseCase" - }, - " | \"unset\"" + "\"search\" | \"security\" | \"observability\"" ], - "path": "src/plugins/guided_onboarding/public/types.ts", + "path": "src/plugins/guided_onboarding/common/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "guidedOnboarding", - "id": "def-public.GuidedOnboardingState.activeStep", - "type": "string", + "id": "def-public.GuideState.status", + "type": "CompoundType", + "tags": [], + "label": "status", + "description": [], + "signature": [ + "\"complete\" | \"in_progress\" | \"ready_to_complete\"" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideState.isActive", + "type": "CompoundType", + "tags": [], + "label": "isActive", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideState.steps", + "type": "Array", + "tags": [], + "label": "steps", + "description": [], + "signature": [ + "GuideStep", + "[]" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideStep", + "type": "Interface", + "tags": [], + "label": "GuideStep", + "description": [], + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideStep.id", + "type": "CompoundType", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "\"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"rules\" | \"alerts\" | \"cases\" | \"browse_docs\" | \"search_experience\"" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideStep.status", + "type": "CompoundType", "tags": [], - "label": "activeStep", + "label": "status", "description": [], - "path": "src/plugins/guided_onboarding/public/types.ts", + "signature": [ + "\"complete\" | \"in_progress\" | \"inactive\" | \"active\"" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", "deprecated": false, "trackAdoption": false } @@ -55,21 +122,93 @@ "misc": [ { "parentPluginId": "guidedOnboarding", - "id": "def-public.UseCase", + "id": "def-public.GuideId", "type": "Type", "tags": [], - "label": "UseCase", + "label": "GuideId", "description": [], "signature": [ "\"search\" | \"security\" | \"observability\"" ], - "path": "src/plugins/guided_onboarding/public/types.ts", + "path": "src/plugins/guided_onboarding/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.GuideStepIds", + "type": "Type", + "tags": [], + "label": "GuideStepIds", + "description": [], + "signature": [ + "\"add_data\" | \"view_dashboard\" | \"tour_observability\" | \"rules\" | \"alerts\" | \"cases\" | \"browse_docs\" | \"search_experience\"" + ], + "path": "src/plugins/guided_onboarding/common/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false } ], - "objects": [], + "objects": [ + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.guidesConfig", + "type": "Object", + "tags": [], + "label": "guidesConfig", + "description": [], + "path": "src/plugins/guided_onboarding/public/constants/guides_config/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.guidesConfig.security", + "type": "Object", + "tags": [], + "label": "security", + "description": [], + "signature": [ + "GuideConfig" + ], + "path": "src/plugins/guided_onboarding/public/constants/guides_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.guidesConfig.observability", + "type": "Object", + "tags": [], + "label": "observability", + "description": [], + "signature": [ + "GuideConfig" + ], + "path": "src/plugins/guided_onboarding/public/constants/guides_config/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "guidedOnboarding", + "id": "def-public.guidesConfig.search", + "type": "Object", + "tags": [], + "label": "search", + "description": [], + "signature": [ + "GuideConfig" + ], + "path": "src/plugins/guided_onboarding/public/constants/guides_config/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "setup": { "parentPluginId": "guidedOnboarding", "id": "def-public.GuidedOnboardingPluginSetup", @@ -156,53 +295,7 @@ "functions": [], "interfaces": [], "enums": [], - "misc": [ - { - "parentPluginId": "guidedOnboarding", - "id": "def-common.API_BASE_PATH", - "type": "string", - "tags": [], - "label": "API_BASE_PATH", - "description": [], - "signature": [ - "\"/api/guided_onboarding\"" - ], - "path": "src/plugins/guided_onboarding/common/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "guidedOnboarding", - "id": "def-common.PLUGIN_ID", - "type": "string", - "tags": [], - "label": "PLUGIN_ID", - "description": [], - "signature": [ - "\"guidedOnboarding\"" - ], - "path": "src/plugins/guided_onboarding/common/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "guidedOnboarding", - "id": "def-common.PLUGIN_NAME", - "type": "string", - "tags": [], - "label": "PLUGIN_NAME", - "description": [], - "signature": [ - "\"guidedOnboarding\"" - ], - "path": "src/plugins/guided_onboarding/common/index.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], + "misc": [], "objects": [] } } \ No newline at end of file diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 899b3205a819c..9aa86b82df100 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onbo | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 12 | 0 | 12 | 1 | +| 19 | 0 | 19 | 3 | ## Client @@ -31,6 +31,9 @@ Contact [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onbo ### Start <DocDefinitionList data={[guidedOnboardingObj.client.start]}/> +### Objects +<DocDefinitionList data={guidedOnboardingObj.client.objects}/> + ### Interfaces <DocDefinitionList data={guidedOnboardingObj.client.interfaces}/> @@ -45,8 +48,3 @@ Contact [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onbo ### Start <DocDefinitionList data={[guidedOnboardingObj.server.start]}/> -## Common - -### Consts, variables and types -<DocDefinitionList data={guidedOnboardingObj.common.misc}/> - diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 30beb41d12fae..4c129f6d92a48 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index e3ee1798496d0..d6393f4b44397 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: 2022-10-03 +date: 2022-10-04 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 34f9d8fcde852..b7f14de7ee103 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: 2022-10-03 +date: 2022-10-04 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 7ab9b9d8573c5..ea6ecce3d4d9b 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: 2022-10-03 +date: 2022-10-04 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 4cb29a4632cab..c30aea80c5cb0 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: 2022-10-03 +date: 2022-10-04 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 6f257bb854320..f4a2df60fa9ea 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: 2022-10-03 +date: 2022-10-04 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 0dcf9a1b797bc..0dcbd76b6b451 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: 2022-10-03 +date: 2022-10-04 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 60ab8f506c3a5..ac530589f0fb0 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: 2022-10-03 +date: 2022-10-04 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 c459ac8369da3..c87bec0a9bb9d 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: 2022-10-03 +date: 2022-10-04 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 aaf236aab90f0..eb196b2621aed 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 35df4e16f17cd..bc4a0560544de 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: 2022-10-03 +date: 2022-10-04 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 0d18980e0b1c0..a86d78bf6e573 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: 2022-10-03 +date: 2022-10-04 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 c4b9427b1a333..42bf70404bb69 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: 2022-10-03 +date: 2022-10-04 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 f06cb724cc729..a3faccdf22fce 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: 2022-10-03 +date: 2022-10-04 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 cd5176593f6ad..263d6af109410 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: 2022-10-03 +date: 2022-10-04 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 d6317c64bf48c..1f272ffdf3eca 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index e916c19f16197..9137a34ac7cf5 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: 2022-10-03 +date: 2022-10-04 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 9ba0d5aeeacf4..69b4ee9c3bd01 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index ca208a21625bd..e8948c5151a3e 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: 2022-10-03 +date: 2022-10-04 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 7a1ad1863e07b..1660f71a7d421 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 6e102733b051b..548fc0c4f7426 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: 2022-10-03 +date: 2022-10-04 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 cfd53f8e091ff..b57e2abe5c1d7 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: 2022-10-03 +date: 2022-10-04 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 c28b07464ba41..f8182e50d0e14 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: 2022-10-03 +date: 2022-10-04 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 d5c55b31b68c0..87058eea7d0c7 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: 2022-10-03 +date: 2022-10-04 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 c2de5353062a3..399bb2c474d90 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index c5026a994bbff..d3a842a24ce84 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: 2022-10-03 +date: 2022-10-04 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 a81d5f720c20a..8a6f64ea706cc 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: 2022-10-03 +date: 2022-10-04 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 3ca7cf87f8819..175a3130aaf9c 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: 2022-10-03 +date: 2022-10-04 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 f4fd135eead55..d369d314f87e1 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 2cb822b645378..9dba4bbf3a309 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: 2022-10-03 +date: 2022-10-04 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 2cf8df7f6fb13..3220f4f43ec66 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: 2022-10-03 +date: 2022-10-04 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 217056d756e6c..bc77e3013d70c 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: 2022-10-03 +date: 2022-10-04 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 8674be0b88a22..fe9a5a7a8033b 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: 2022-10-03 +date: 2022-10-04 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 a3e9193110cf9..8ba5c5458189a 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: 2022-10-03 +date: 2022-10-04 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 87edbd5da1573..b32913e076b17 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: 2022-10-03 +date: 2022-10-04 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 eba99f7740982..ad1626e300d32 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: 2022-10-03 +date: 2022-10-04 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 6cd2f00a3f32a..cb8729ded12a4 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: 2022-10-03 +date: 2022-10-04 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 0e0674185951d..01f8418de314e 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: 2022-10-03 +date: 2022-10-04 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 f58bebcf2f5d0..8325f55e3db44 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: 2022-10-03 +date: 2022-10-04 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 3d4d7035f6c1d..bcd417fbc9ede 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: 2022-10-03 +date: 2022-10-04 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 7681b7a4a3885..507b0ccfcab40 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: 2022-10-03 +date: 2022-10-04 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 02a409c5881de..0a3625bef9425 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: 2022-10-03 +date: 2022-10-04 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_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index b60d8471e15dd..178a8ff27c8eb 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: 2022-10-03 +date: 2022-10-04 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 39463461d9165..e634f6c30bfca 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: 2022-10-03 +date: 2022-10-04 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 2a64da20012e8..1c4445244f836 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: 2022-10-03 +date: 2022-10-04 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 b2056befb2acb..84bb74021f2bd 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: 2022-10-03 +date: 2022-10-04 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 6d28c54984174..52fe8e2820310 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: 2022-10-03 +date: 2022-10-04 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 c7628a5a59c63..f2e9fe632436f 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: 2022-10-03 +date: 2022-10-04 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 e01e96164ef47..b2f4b911b54fc 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: 2022-10-03 +date: 2022-10-04 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 9ef6e61852ed2..dd0bc1fd746ea 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: 2022-10-03 +date: 2022-10-04 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 57e8483cb0f74..598dc54038877 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: 2022-10-03 +date: 2022-10-04 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 c4fabecffea39..a5854e8359bc1 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: 2022-10-03 +date: 2022-10-04 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 1d7858167c974..b189b4cda1ce5 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: 2022-10-03 +date: 2022-10-04 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_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 3914aa766a64d..89d13dd6c05e3 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: 2022-10-03 +date: 2022-10-04 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 fca144e245a76..0ca986ec796b5 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: 2022-10-03 +date: 2022-10-04 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 5be603ffa1f96..54f912532a0f0 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: 2022-10-03 +date: 2022-10-04 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 afde35a745d30..41e3c5f4eb0d8 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: 2022-10-03 +date: 2022-10-04 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 92ba606e6044c..0511dc3c9909f 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: 2022-10-03 +date: 2022-10-04 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 9b3c1070f6623..451bb29fe60c8 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: 2022-10-03 +date: 2022-10-04 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 e871d2dc0a941..9d72c4c54543e 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: 2022-10-03 +date: 2022-10-04 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 d591288b81315..9640ef186485d 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: 2022-10-03 +date: 2022-10-04 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 7cd809b6b97e1..f5bb1f42b22ab 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: 2022-10-03 +date: 2022-10-04 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 273051738c41f..efae931fc186b 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: 2022-10-03 +date: 2022-10-04 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 0cddffa5aeab6..2af154133867a 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: 2022-10-03 +date: 2022-10-04 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 88eb042d98206..1454820b8fa46 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: 2022-10-03 +date: 2022-10-04 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 bbf4d1f0a58e8..1385f7dc0e1f4 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: 2022-10-03 +date: 2022-10-04 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 c9f8fdbd9b45d..1deae83f65870 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: 2022-10-03 +date: 2022-10-04 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 f4032d04f97ca..15117157d71df 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: 2022-10-03 +date: 2022-10-04 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 835c21903b6bf..493f5c036f9a1 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: 2022-10-03 +date: 2022-10-04 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 47f64412fe99e..9910a744c62da 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: 2022-10-03 +date: 2022-10-04 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 082f5dd46eced..b9c83fd476328 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: 2022-10-03 +date: 2022-10-04 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 492f874f833eb..e152e5bb83a2f 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: 2022-10-03 +date: 2022-10-04 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 f8426b783c45a..9392cffe6209d 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: 2022-10-03 +date: 2022-10-04 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 6efeffd1c91c3..3e511fafa9451 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: 2022-10-03 +date: 2022-10-04 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 ed8e5ae438b3d..ec1debc1c012a 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: 2022-10-03 +date: 2022-10-04 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 6441c8e326395..eed2089898a81 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: 2022-10-03 +date: 2022-10-04 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 4f0d3211fa39d..87ae45af703ac 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: 2022-10-03 +date: 2022-10-04 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 02fa99d7cb6ce..b77bce9a27dbf 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: 2022-10-03 +date: 2022-10-04 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 40263469ee782..bfc781548810f 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: 2022-10-03 +date: 2022-10-04 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 a6af55aa79cbe..6f305680273e2 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: 2022-10-03 +date: 2022-10-04 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 a1c258a426f33..22b6b9c666339 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: 2022-10-03 +date: 2022-10-04 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 a937dccab7fb8..579277f0e7c5b 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: 2022-10-03 +date: 2022-10-04 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 a6274dd34b37d..45b83d9e361cd 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: 2022-10-03 +date: 2022-10-04 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 6293ae9b58af2..b063b1ec8777e 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: 2022-10-03 +date: 2022-10-04 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 f11227d039fcf..e42402eeb736e 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: 2022-10-03 +date: 2022-10-04 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 d0ea0e82f7682..d636450713c72 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: 2022-10-03 +date: 2022-10-04 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_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 7654b3f70cc87..5691276cc4c86 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: 2022-10-03 +date: 2022-10-04 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 8a2d3a3de3333..5d087fbc12590 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: 2022-10-03 +date: 2022-10-04 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 62b834449c23f..87f06ed8d63e4 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: 2022-10-03 +date: 2022-10-04 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 bbda88d5c238c..266b3696995f8 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: 2022-10-03 +date: 2022-10-04 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 e99fba0127cc2..c2e9cef4a3f10 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: 2022-10-03 +date: 2022-10-04 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 c6da1dc82bc90..23d1612d624c8 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: 2022-10-03 +date: 2022-10-04 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 140e346128004..2809246ccc670 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: 2022-10-03 +date: 2022-10-04 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 ddd02e61d7ee4..d8a8f0c780f5b 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: 2022-10-03 +date: 2022-10-04 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 56636905f7afa..34bcc3c6cdcfb 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: 2022-10-03 +date: 2022-10-04 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 f8ed8c6f0bec6..0616e05e00234 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: 2022-10-03 +date: 2022-10-04 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.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index 9a02125114dc7..d494ce28acb14 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.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 d6a078aef0df0..30217e2fc3ff4 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: 2022-10-03 +date: 2022-10-04 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 38c283eaaf97e..5e7ba108a654c 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: 2022-10-03 +date: 2022-10-04 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 5cc58ad5a914c..a6e9fb32a00b7 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: 2022-10-03 +date: 2022-10-04 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 1ab8822af2252..531b5b53a8295 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: 2022-10-03 +date: 2022-10-04 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 99d9d3f32d3e8..2e32f2efcec21 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: 2022-10-03 +date: 2022-10-04 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_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 5065fff3211ff..15c79e1a0db38 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: 2022-10-03 +date: 2022-10-04 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 2e6959cc87594..cd7319b284fb7 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: 2022-10-03 +date: 2022-10-04 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 81a53652b4ea2..93667b80ba7f8 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: 2022-10-03 +date: 2022-10-04 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 3d5b6fffdd513..649123ca8c6a9 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: 2022-10-03 +date: 2022-10-04 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 14756f136bd3a..21c886d8ce972 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: 2022-10-03 +date: 2022-10-04 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 087dd2dd357ca..a3b481458c975 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: 2022-10-03 +date: 2022-10-04 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 5f5ea85f80056..b78cf2f752e5e 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: 2022-10-03 +date: 2022-10-04 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 6216a6d589ce5..bcb29c53743cb 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: 2022-10-03 +date: 2022-10-04 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 82c2c06e08457..530ca8138c755 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: 2022-10-03 +date: 2022-10-04 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 b4eeaf823c522..0c5982822b6bd 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: 2022-10-03 +date: 2022-10-04 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 04c3664f49b67..ce0799c8a57e1 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: 2022-10-03 +date: 2022-10-04 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 edcf4af2b62ad..ff9aa9bab3b16 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: 2022-10-03 +date: 2022-10-04 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 d120b6ccece74..45e5581a7df10 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: 2022-10-03 +date: 2022-10-04 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 e4152c45f1f60..4b5730a85899c 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: 2022-10-03 +date: 2022-10-04 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 a571fb85c2ef4..e0dc054651702 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: 2022-10-03 +date: 2022-10-04 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 8f4457512da88..b8f43851ff074 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: 2022-10-03 +date: 2022-10-04 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 6e25c69de32ee..3f88938a7d71c 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: 2022-10-03 +date: 2022-10-04 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 ce41f3aac1f43..c0846ed65f58f 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: 2022-10-03 +date: 2022-10-04 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 0b413f962b275..70c9fbee9c49a 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: 2022-10-03 +date: 2022-10-04 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 b31af30c16030..4ebd8410d827d 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: 2022-10-03 +date: 2022-10-04 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_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index ec6b64842af42..96f2610b0eb18 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: 2022-10-03 +date: 2022-10-04 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 583b5bc973add..876c2f5e25d90 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: 2022-10-03 +date: 2022-10-04 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 383e9c6511efa..31744f9615bb9 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: 2022-10-03 +date: 2022-10-04 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.devdocs.json b/api_docs/kbn_core_rendering_server_internal.devdocs.json new file mode 100644 index 0000000000000..d765832debee1 --- /dev/null +++ b/api_docs/kbn_core_rendering_server_internal.devdocs.json @@ -0,0 +1,61 @@ +{ + "id": "@kbn/core-rendering-server-internal", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/core-rendering-server-internal", + "id": "def-server.Fonts", + "type": "Function", + "tags": [], + "label": "Fonts", + "description": [], + "signature": [ + "({ url }: React.PropsWithChildren<Props>) => JSX.Element" + ], + "path": "packages/core/rendering/core-rendering-server-internal/src/views/fonts.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-rendering-server-internal", + "id": "def-server.Fonts.$1", + "type": "CompoundType", + "tags": [], + "label": "{ url }", + "description": [], + "signature": [ + "React.PropsWithChildren<Props>" + ], + "path": "packages/core/rendering/core-rendering-server-internal/src/views/fonts.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx new file mode 100644 index 0000000000000..000dd0d4cedb8 --- /dev/null +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreRenderingServerInternalPluginApi +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: 2022-10-04 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] +--- +import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; + + + +Contact Kibana Core for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 2 | 0 | + +## Server + +### Functions +<DocDefinitionList data={kbnCoreRenderingServerInternalObj.server.functions}/> + diff --git a/api_docs/kbn_core_rendering_server_mocks.devdocs.json b/api_docs/kbn_core_rendering_server_mocks.devdocs.json new file mode 100644 index 0000000000000..fc43829e9518e --- /dev/null +++ b/api_docs/kbn_core_rendering_server_mocks.devdocs.json @@ -0,0 +1,95 @@ +{ + "id": "@kbn/core-rendering-server-mocks", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [ + { + "parentPluginId": "@kbn/core-rendering-server-mocks", + "id": "def-server.renderingServiceMock", + "type": "Object", + "tags": [], + "label": "renderingServiceMock", + "description": [], + "path": "packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-rendering-server-mocks", + "id": "def-server.renderingServiceMock.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "() => ", + "RenderingServiceMock" + ], + "path": "packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-rendering-server-mocks", + "id": "def-server.renderingServiceMock.createPrebootContract", + "type": "Function", + "tags": [], + "label": "createPrebootContract", + "description": [], + "signature": [ + "() => jest.Mocked<", + "InternalRenderingServiceSetup", + ">" + ], + "path": "packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/core-rendering-server-mocks", + "id": "def-server.renderingServiceMock.createSetupContract", + "type": "Function", + "tags": [], + "label": "createSetupContract", + "description": [], + "signature": [ + "() => jest.Mocked<", + "InternalRenderingServiceSetup", + ">" + ], + "path": "packages/core/rendering/core-rendering-server-mocks/src/rendering_service.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + } + ], + "initialIsOpen": false + } + ] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx new file mode 100644 index 0000000000000..7de298d846759 --- /dev/null +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnCoreRenderingServerMocksPluginApi +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: 2022-10-04 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] +--- +import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; + + + +Contact Kibana Core for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 4 | 0 | 4 | 1 | + +## Server + +### Objects +<DocDefinitionList data={kbnCoreRenderingServerMocksObj.server.objects}/> + diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index e07f5797c7f72..51698a7096343 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: 2022-10-03 +date: 2022-10-04 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 8a3662b8b470c..c8639a4b9c453 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: 2022-10-03 +date: 2022-10-04 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 7244cfe8beb60..f14120830006f 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: 2022-10-03 +date: 2022-10-04 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 9a62ec00bb37c..6b0c824029fc3 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: 2022-10-03 +date: 2022-10-04 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 4068fcf5e73b5..9e232227f556c 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: 2022-10-03 +date: 2022-10-04 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 7af80f7527944..66a94ba868430 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: 2022-10-03 +date: 2022-10-04 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 83b6f08887286..eb654c74cca2e 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: 2022-10-03 +date: 2022-10-04 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 3d8e3d03be29b..f077ed64b63e2 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: 2022-10-03 +date: 2022-10-04 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 ad03d6488f2a0..29da15ed698f8 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: 2022-10-03 +date: 2022-10-04 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 b06d26ed9bea4..ac4e60624dcb7 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: 2022-10-03 +date: 2022-10-04 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 6532dfcaeaf81..bebe1281e0ade 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: 2022-10-03 +date: 2022-10-04 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 53092b90fc151..4b0e97d192ea3 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: 2022-10-03 +date: 2022-10-04 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 3d1544f4f110f..aed14d7466d26 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: 2022-10-03 +date: 2022-10-04 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 c662be1f8fb09..8d8eb4b06ad7a 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: 2022-10-03 +date: 2022-10-04 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 8a27161ad18de..2a8902a1e5184 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: 2022-10-03 +date: 2022-10-04 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 c73c73d974180..9bd945299b18d 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: 2022-10-03 +date: 2022-10-04 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 e8fe3856fa57f..6a53d6086266f 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: 2022-10-03 +date: 2022-10-04 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 5eb6ed5fabf23..3747e6c419527 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: 2022-10-03 +date: 2022-10-04 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 3f9ec5be08ad2..093798e431c32 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: 2022-10-03 +date: 2022-10-04 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 fd7956ee7ab43..3232d2d6e8099 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: 2022-10-03 +date: 2022-10-04 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 71ceb6a7bede4..6dc392f2f16c7 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: 2022-10-03 +date: 2022-10-04 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 3916cb3c3119c..b2d57509addeb 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: 2022-10-03 +date: 2022-10-04 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 966876de9b0c2..d5e62a33ea077 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: 2022-10-03 +date: 2022-10-04 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 f3ad0c01cc377..2341795744ee2 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: 2022-10-03 +date: 2022-10-04 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 995497dffa505..1bdb4be978f3b 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: 2022-10-03 +date: 2022-10-04 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_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 2db8ecd68b0dc..8c1171396e641 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: 2022-10-03 +date: 2022-10-04 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 38778f82b4a73..38293fb7bd7ed 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: 2022-10-03 +date: 2022-10-04 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 d561c846ba528..f0b9a5dcf855d 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: 2022-10-03 +date: 2022-10-04 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 f4b08646423d6..b4a0a55091a4f 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: 2022-10-03 +date: 2022-10-04 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 607eaa47b682d..09b0a2dc57320 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: 2022-10-03 +date: 2022-10-04 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 15ecdc9fee508..31d7e5da5da67 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: 2022-10-03 +date: 2022-10-04 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 6644389a6513b..5b6eb33ecc40a 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: 2022-10-03 +date: 2022-10-04 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 d486425f2067d..812a5a98b6200 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: 2022-10-03 +date: 2022-10-04 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 98b9aa8e6584a..b4098d7a68294 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: 2022-10-03 +date: 2022-10-04 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 c287c7d3717f4..6350fd7ee5068 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: 2022-10-03 +date: 2022-10-04 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 8d5b6922438e8..54fc17cd96f04 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: 2022-10-03 +date: 2022-10-04 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 e433b18463057..7722ffd3f68a5 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: 2022-10-03 +date: 2022-10-04 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 ad3dac588eb63..131c2f323331b 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: 2022-10-03 +date: 2022-10-04 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 0e41431342876..6ca5ba080918c 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: 2022-10-03 +date: 2022-10-04 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 7f67262cf91c9..7da4515e5c5da 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 86cc145ec159a..c0ab47b943fe5 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: 2022-10-03 +date: 2022-10-04 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 e46730cf719c3..81afcdef5fadb 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: 2022-10-03 +date: 2022-10-04 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 54d0f8713d0fb..1e541a024defe 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: 2022-10-03 +date: 2022-10-04 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 b646fc86f43f5..c9e8aeb0cceea 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: 2022-10-03 +date: 2022-10-04 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 83091d9879dc4..83bf4e00c6541 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: 2022-10-03 +date: 2022-10-04 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 d74d520ff8430..0cf3b152d8668 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -546,7 +546,7 @@ "label": "securitySolution", "description": [], "signature": [ - "{ readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; readonly policyResponseTroubleshooting: { full_disk_access: string; macos_system_ext: string; linux_deadlock: string; }; readonly packageActionTroubleshooting: { es_connection: string; }; readonly threatIntelInt: string; readonly responseActions: string; }" + "{ readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; readonly endpointArtifacts: string; readonly policyResponseTroubleshooting: { full_disk_access: string; macos_system_ext: string; linux_deadlock: string; }; readonly packageActionTroubleshooting: { es_connection: string; }; readonly threatIntelInt: string; readonly responseActions: 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 8913a1a03ab85..f20c5c3e4621f 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: 2022-10-03 +date: 2022-10-04 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 a5d4079c284b0..c92f20d4e82eb 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: 2022-10-03 +date: 2022-10-04 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 8370c22a01f19..f301c7fde5a81 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 4ad77bfff6559..1fd6cb7fc92bc 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: 2022-10-03 +date: 2022-10-04 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 bf9c27ac92b27..0c2ba2f9d4488 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 632303fa82c97..7b7bc93b57313 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 6a6ac63f69acd..fe461a5b010f5 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: 2022-10-03 +date: 2022-10-04 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 e0525000b5f9f..facb9ad743434 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: 2022-10-03 +date: 2022-10-04 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 f9ad3846f19fa..af6a78abd324a 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: 2022-10-03 +date: 2022-10-04 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 9bc0b92168240..81929ed2bb345 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: 2022-10-03 +date: 2022-10-04 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 359334478d03d..9c5b2b494ed5f 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: 2022-10-03 +date: 2022-10-04 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 151e0da4dd3b1..cbe8ec573dfd5 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 161354bbbcb14..0958cd3c3ebf7 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index 1e054c0706c6f..2ec2679987952 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: 2022-10-03 +date: 2022-10-04 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 0852dda61f29a..7f42b8a468d7e 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index d4cca06818606..d4e8d54488ba4 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: 2022-10-03 +date: 2022-10-04 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 54d4d15fc741e..a0b43f842438b 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: 2022-10-03 +date: 2022-10-04 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 c7ff5b8ab5056..7b9d043059c71 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 262e79df335d1..d11c22a74ecda 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: 2022-10-03 +date: 2022-10-04 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 df20b5d894c5e..39f9d65660d07 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: 2022-10-03 +date: 2022-10-04 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 4994d60766a45..19a46d0750ca6 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: 2022-10-03 +date: 2022-10-04 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 e5e069f91c957..7e5e0932af67d 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: 2022-10-03 +date: 2022-10-04 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 21477f1c435c7..f4c9aec83599f 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 6d9b4a9bb317c..2ab7c2cad23dd 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 712dd79f55359..4c78e0d66ea73 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: 2022-10-03 +date: 2022-10-04 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 6dcc57446aaad..5cc97dbc4f9de 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: 2022-10-03 +date: 2022-10-04 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 788e96c22f5c3..110b3b19a0fa8 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: 2022-10-03 +date: 2022-10-04 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 8e2ce8b3d9fdc..11c646693dc0b 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: 2022-10-03 +date: 2022-10-04 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 25b2b17e3997b..ccb0243714c5a 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: 2022-10-03 +date: 2022-10-04 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_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 5f24dc1806b03..9e756982a3c4b 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: 2022-10-03 +date: 2022-10-04 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_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 2fa9ac8d84b7a..5a08b38fdc366 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index c5b48fbeff006..13902cebdc873 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: 2022-10-03 +date: 2022-10-04 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 2a5d7bc10afb8..60b2e27c0fc5e 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: 2022-10-03 +date: 2022-10-04 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 3f87a2b8b79d8..805c9413ad27f 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: 2022-10-03 +date: 2022-10-04 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 76d9089526cec..a2a0a87619793 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: 2022-10-03 +date: 2022-10-04 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 3e83e64f435dc..66b4513e3e93d 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: 2022-10-03 +date: 2022-10-04 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 dc887c9ce3056..d0487d7546b1e 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: 2022-10-03 +date: 2022-10-04 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 30cf3560edd3a..fe379e3b837c0 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: 2022-10-03 +date: 2022-10-04 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 ae485f79249a3..d1b5eb542c882 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 8249b1eae5a39..6d2caad781235 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index 2d6403bd41dfe..8db17c376261c 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -942,7 +942,7 @@ "label": "AlertStatus", "description": [], "signature": [ - "\"recovered\" | \"active\"" + "\"active\" | \"recovered\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_status.ts", "deprecated": false, diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index a4ef149f8033b..2e861a2bd3a13 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: 2022-10-03 +date: 2022-10-04 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 ea7380185e08a..3d11d856ffe07 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 4f2b01b578636..4ce360705125a 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: 2022-10-03 +date: 2022-10-04 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 35651464e503c..fe34878dde867 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: 2022-10-03 +date: 2022-10-04 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 74a60ea3a6e0d..b7857cb66e9ec 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: 2022-10-03 +date: 2022-10-04 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 a2e5cb79e7ec0..9f0b39175cdd0 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: 2022-10-03 +date: 2022-10-04 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 878d21884f5ab..bf6b60393ec53 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: 2022-10-03 +date: 2022-10-04 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 7009b4610d376..ccbb90b450959 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: 2022-10-03 +date: 2022-10-04 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 1a8635741da38..2b3c7663b879f 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: 2022-10-03 +date: 2022-10-04 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 ba0f3639d8e00..a5e08ee825fae 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: 2022-10-03 +date: 2022-10-04 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 cc6cd2e0e30ab..7b169ce42760c 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: 2022-10-03 +date: 2022-10-04 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 c160feacf522f..5c977abb1b280 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: 2022-10-03 +date: 2022-10-04 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 1a0fb17e5ced7..768c6cf059b57 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: 2022-10-03 +date: 2022-10-04 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 7aa3b1237d1bd..3496eef3b6346 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: 2022-10-03 +date: 2022-10-04 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 7b831d8213377..2d25ede3c66ec 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: 2022-10-03 +date: 2022-10-04 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 e82e1785f2490..26c6aa46ba082 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: 2022-10-03 +date: 2022-10-04 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 60f6a7802671b..16eac1230f6d8 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: 2022-10-03 +date: 2022-10-04 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 d5b974e9060a3..675a4f7818c66 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: 2022-10-03 +date: 2022-10-04 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 434f6ebf7360f..bda0bfc9746fa 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: 2022-10-03 +date: 2022-10-04 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_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index aca5844ce1aa5..23abaffe3cc78 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: 2022-10-03 +date: 2022-10-04 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_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 64ff483b257b8..e553b3a2c6c5f 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: 2022-10-03 +date: 2022-10-04 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 98810e33e0a49..6465028feeb17 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: 2022-10-03 +date: 2022-10-04 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 f7ca5b1619118..c570628e0e331 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: 2022-10-03 +date: 2022-10-04 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 bae9391ff07c9..82c15083cc996 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: 2022-10-03 +date: 2022-10-04 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_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index aeabec4b1421b..56afa671aa65c 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: 2022-10-03 +date: 2022-10-04 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_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 7dc8d4c973138..557e698f2e512 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: 2022-10-03 +date: 2022-10-04 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 5386d337930ef..352a0014b2cc0 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: 2022-10-03 +date: 2022-10-04 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 77248704888b4..b28052e80a11d 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: 2022-10-03 +date: 2022-10-04 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 100b84a823c93..15a591c9aecdf 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: 2022-10-03 +date: 2022-10-04 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 fc9392a85f8ee..4c476350996e4 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: 2022-10-03 +date: 2022-10-04 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 75c7b818d2b99..2e4fc87798604 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: 2022-10-03 +date: 2022-10-04 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 46c1575ac211e..f22caeb920fc5 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: 2022-10-03 +date: 2022-10-04 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 ab3b48e848639..0f95fd61f2579 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: 2022-10-03 +date: 2022-10-04 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 be35872625c46..80f6cf9b8f34d 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: 2022-10-03 +date: 2022-10-04 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 b5afba9ff421d..fadea535b8245 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: 2022-10-03 +date: 2022-10-04 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 da1478041d724..aa9686f1314b2 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: 2022-10-03 +date: 2022-10-04 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 1b1327a86bd0a..95295947ea4c3 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: 2022-10-03 +date: 2022-10-04 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 0e7e8889a58c6..a136219cf2d8c 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: 2022-10-03 +date: 2022-10-04 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_router.mdx b/api_docs/kbn_shared_ux_router.mdx index f9c07c50257c8..cbcc71d025c8b 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: 2022-10-03 +date: 2022-10-04 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 a0aca2fcd5aaf..40896d72b0dc8 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: 2022-10-03 +date: 2022-10-04 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 aeae1c356a861..133cbe3bb9994 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: 2022-10-03 +date: 2022-10-04 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 d5712323de82d..443625c76310c 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: 2022-10-03 +date: 2022-10-04 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 3466072027056..1182906621731 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index d6c26edac107d..ea558aa9e073b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index 13db8c8155fd0..e3a9c03528b20 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index e96bc3e61652b..e5c5d241941bd 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: 2022-10-03 +date: 2022-10-04 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 b4aac204fc2fc..1d5e0e3792587 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: 2022-10-03 +date: 2022-10-04 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 13b0046b3c5f5..49592c87fc217 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: 2022-10-03 +date: 2022-10-04 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 5dc57b83e3caf..548085afb06a6 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: 2022-10-03 +date: 2022-10-04 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 924a8f1d2d36d..130c68213d1dc 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: 2022-10-03 +date: 2022-10-04 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 cc4a486b6dc8e..c9b070d08edf9 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: 2022-10-03 +date: 2022-10-04 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 38fd9ee192959..e93c241e2cdac 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: 2022-10-03 +date: 2022-10-04 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 efc952ecde5a0..da5f83dd7a47b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index 1c63f3fb99305..9ce0e8072dec2 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index 346fc07253bf5..d6c96609eee48 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index cc16ed53a0ad1..365d565746dbc 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: 2022-10-03 +date: 2022-10-04 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_theme.mdx b/api_docs/kbn_ui_theme.mdx index 768d7656e3a83..d8a381bf82680 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: 2022-10-03 +date: 2022-10-04 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.devdocs.json b/api_docs/kbn_user_profile_components.devdocs.json index d8cd0cfd94f9e..55ddd03b7d6d4 100644 --- a/api_docs/kbn_user_profile_components.devdocs.json +++ b/api_docs/kbn_user_profile_components.devdocs.json @@ -121,6 +121,57 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserAvatarTip", + "type": "Function", + "tags": [], + "label": "UserAvatarTip", + "description": [ + "\nRenders a user avatar with tooltip" + ], + "signature": [ + "({ user, avatar, ...rest }: React.PropsWithChildren<", + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserAvatarProps", + "text": "UserAvatarProps" + }, + ">) => JSX.Element" + ], + "path": "packages/kbn-user-profile-components/src/user_avatar_tip.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserAvatarTip.$1", + "type": "CompoundType", + "tags": [], + "label": "{ user, avatar, ...rest }", + "description": [], + "signature": [ + "React.PropsWithChildren<", + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserAvatarProps", + "text": "UserAvatarProps" + }, + ">" + ], + "path": "packages/kbn-user-profile-components/src/user_avatar_tip.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/user-profile-components", "id": "def-common.UserProfilesPopover", @@ -236,6 +287,57 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserToolTip", + "type": "Function", + "tags": [], + "label": "UserToolTip", + "description": [ + "\nRenders a tooltip with user information" + ], + "signature": [ + "({ user, avatar, ...rest }: React.PropsWithChildren<", + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserToolTipProps", + "text": "UserToolTipProps" + }, + ">) => JSX.Element" + ], + "path": "packages/kbn-user-profile-components/src/user_tooltip.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserToolTip.$1", + "type": "CompoundType", + "tags": [], + "label": "{ user, avatar, ...rest }", + "description": [], + "signature": [ + "React.PropsWithChildren<", + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserToolTipProps", + "text": "UserToolTipProps" + }, + ">" + ], + "path": "packages/kbn-user-profile-components/src/user_tooltip.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [ @@ -938,6 +1040,79 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserToolTipProps", + "type": "Interface", + "tags": [], + "label": "UserToolTipProps", + "description": [ + "\nProps of {@link UserToolTip} component" + ], + "signature": [ + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserToolTipProps", + "text": "UserToolTipProps" + }, + " extends Omit<", + "EuiToolTipProps", + ", \"title\" | \"content\">" + ], + "path": "packages/kbn-user-profile-components/src/user_tooltip.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserToolTipProps.user", + "type": "Object", + "tags": [], + "label": "user", + "description": [ + "\nUser to be rendered" + ], + "signature": [ + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserProfileUserInfo", + "text": "UserProfileUserInfo" + } + ], + "path": "packages/kbn-user-profile-components/src/user_tooltip.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/user-profile-components", + "id": "def-common.UserToolTipProps.avatar", + "type": "Object", + "tags": [], + "label": "avatar", + "description": [ + "\nAvatar data of user to be rendered" + ], + "signature": [ + { + "pluginId": "@kbn/user-profile-components", + "scope": "common", + "docId": "kibKbnUserProfileComponentsPluginApi", + "section": "def-common.UserProfileAvatarData", + "text": "UserProfileAvatarData" + }, + " | undefined" + ], + "path": "packages/kbn-user-profile-components/src/user_tooltip.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 321db07786d48..1fb9abaf0ee8b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 48 | 0 | 3 | 0 | +| 55 | 0 | 5 | 0 | ## Common diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 59733af696053..1dd233e2b3c7c 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: 2022-10-03 +date: 2022-10-04 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 d34f5eb451f66..ffc882e7050cf 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: 2022-10-03 +date: 2022-10-04 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 3301abb7449f7..32d4e0b6f4f27 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: 2022-10-03 +date: 2022-10-04 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 7aba97a043a20..8321d021b0720 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: 2022-10-03 +date: 2022-10-04 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 99437dfa2d79f..6ea90bb2df76a 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: 2022-10-03 +date: 2022-10-04 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 b563f5461da0f..1a43fddabf34d 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: 2022-10-03 +date: 2022-10-04 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 5bb528b470212..7658f6b8dfa6c 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: 2022-10-03 +date: 2022-10-04 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 b08fc593fdcc7..f51fe23a0772a 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: 2022-10-03 +date: 2022-10-04 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 ee26d7bf7b870..e930504ffaee4 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: 2022-10-03 +date: 2022-10-04 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 f3039f89e8db3..14b1e5c6f4612 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: 2022-10-03 +date: 2022-10-04 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 a2bbb989390e5..b71a0f65fbba0 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: 2022-10-03 +date: 2022-10-04 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 a1ea39b243d1e..914e71d3130cf 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: 2022-10-03 +date: 2022-10-04 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 167f95ca81b40..014535d3acb8d 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: 2022-10-03 +date: 2022-10-04 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 7b13b081164ff..de79c0505493d 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: 2022-10-03 +date: 2022-10-04 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 84567432aed62..0c1d388602858 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: 2022-10-03 +date: 2022-10-04 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 7e0c0528fef4a..82536b7c87b8d 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: 2022-10-03 +date: 2022-10-04 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 a7a7a0517b9b8..9d94398a882da 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: 2022-10-03 +date: 2022-10-04 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 e884c213dddbc..c76aac1bd57ad 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: 2022-10-03 +date: 2022-10-04 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 37856b288370a..e59f472f07ee4 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: 2022-10-03 +date: 2022-10-04 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 283d52b0a4c3a..0dccfeb623a38 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: 2022-10-03 +date: 2022-10-04 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 278b15e23d47f..08394f81d45d8 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index fd03a2f285ab5..08f23a62393da 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -738,7 +738,7 @@ }, " | undefined; list: () => string[]; }; selectedAlertId?: string | undefined; } & ", "CommonProps", - " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes<HTMLDivElement> | \"css\"> & { ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined; }, \"children\" | \"ref\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\">, \"children\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"alert\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"alerts\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" + " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes<HTMLDivElement> | \"css\"> & { ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined; }, \"children\" | \"ref\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\">, \"children\" | \"type\" | \"onError\" | \"hidden\" | \"color\" | \"id\" | \"alert\" | \"className\" | \"size\" | \"title\" | \"onChange\" | \"onKeyDown\" | \"onClick\" | \"security\" | \"key\" | \"defaultValue\" | \"lang\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"onClose\" | \"data-test-subj\" | \"css\" | \"as\" | \"alerts\" | \"paddingSize\" | \"focusTrapProps\" | \"ownFocus\" | \"maxWidth\" | \"hideCloseButton\" | \"closeButtonAriaLabel\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: React.RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" ], "path": "x-pack/plugins/observability/public/index.ts", "deprecated": false, diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 2f29ba44a8c06..aaa79beceb7aa 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 5b05f78a15a04..e79c8673975d0 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: 2022-10-03 +date: 2022-10-04 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 b6b1d856686da..655626fbdb653 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a <br /> public API | Number of teams | |--------------|----------|------------------------| -| 477 | 397 | 38 | +| 480 | 399 | 38 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 32016 | 179 | 21562 | 1007 | +| 32043 | 179 | 21580 | 1010 | ## Plugin Directory @@ -42,7 +42,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibCloudSecurityPosturePluginApi" text="cloudSecurityPosture"/> | [Cloud Security Posture](https://github.com/orgs/elastic/teams/cloud-posture-security) | The cloud security posture plugin | 18 | 0 | 2 | 3 | | <DocLink id="kibConsolePluginApi" text="console"/> | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 13 | 0 | 13 | 1 | | <DocLink id="kibControlsPluginApi" text="controls"/> | [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 | 212 | 0 | 204 | 7 | -| <DocLink id="kibCorePluginApi" text="core"/> | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2688 | 0 | 30 | 0 | +| <DocLink id="kibCorePluginApi" text="core"/> | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2686 | 0 | 29 | 0 | | crossClusterReplication | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | | <DocLink id="kibCustomIntegrationsPluginApi" text="customIntegrations"/> | [Fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 104 | 0 | 85 | 1 | | <DocLink id="kibDashboardPluginApi" text="dashboard"/> | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 120 | 0 | 113 | 3 | @@ -87,7 +87,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | globalSearchProviders | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | graph | [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 0 | 0 | 0 | 0 | | grokdebugger | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| <DocLink id="kibGuidedOnboardingPluginApi" text="guidedOnboarding"/> | [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Guided onboarding framework | 12 | 0 | 12 | 1 | +| <DocLink id="kibGuidedOnboardingPluginApi" text="guidedOnboarding"/> | [Journey Onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Guided onboarding framework | 19 | 0 | 19 | 3 | | <DocLink id="kibHomePluginApi" text="home"/> | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 143 | 0 | 104 | 0 | | <DocLink id="kibIndexLifecycleManagementPluginApi" text="indexLifecycleManagement"/> | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 4 | 0 | 4 | 0 | | <DocLink id="kibIndexManagementPluginApi" text="indexManagement"/> | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 177 | 0 | 172 | 3 | @@ -134,7 +134,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibScreenshotModePluginApi" text="screenshotMode"/> | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 32 | 0 | 13 | 0 | | <DocLink id="kibScreenshottingPluginApi" text="screenshotting"/> | [Kibana Reporting Services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 27 | 0 | 8 | 4 | | searchprofiler | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 0 | 0 | 0 | 0 | -| <DocLink id="kibSecurityPluginApi" text="security"/> | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 247 | 0 | 90 | 0 | +| <DocLink id="kibSecurityPluginApi" text="security"/> | [Platform Security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 250 | 0 | 90 | 0 | | <DocLink id="kibSecuritySolutionPluginApi" text="securitySolution"/> | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 55 | 0 | 54 | 23 | | <DocLink id="kibSessionViewPluginApi" text="sessionView"/> | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | | <DocLink id="kibSharePluginApi" text="share"/> | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds URL Service and sharing capabilities to Kibana | 114 | 0 | 55 | 10 | @@ -148,7 +148,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibTelemetryCollectionManagerPluginApi" text="telemetryCollectionManager"/> | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 31 | 0 | 26 | 6 | | <DocLink id="kibTelemetryCollectionXpackPluginApi" text="telemetryCollectionXpack"/> | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 1 | 0 | 1 | 0 | | <DocLink id="kibTelemetryManagementSectionPluginApi" text="telemetryManagementSection"/> | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 11 | 0 | 10 | 0 | -| <DocLink id="kibThreatIntelligencePluginApi" text="threatIntelligence"/> | [Protections Experience Team](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 20 | 0 | 4 | 3 | +| <DocLink id="kibThreatIntelligencePluginApi" text="threatIntelligence"/> | [Protections Experience Team](https://github.com/orgs/elastic/teams/protections-experience) | Elastic threat intelligence helps you see if you are open to or have been subject to current or historical known threats | 26 | 0 | 8 | 3 | | <DocLink id="kibTimelinesPluginApi" text="timelines"/> | [Security solution](https://github.com/orgs/elastic/teams/security-solution) | - | 452 | 1 | 346 | 33 | | <DocLink id="kibTransformPluginApi" text="transform"/> | [Machine Learning 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 | [Kibana Localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | @@ -301,6 +301,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnCorePrebootServerPluginApi" text="@kbn/core-preboot-server"/> | Kibana Core | - | 5 | 0 | 0 | 0 | | <DocLink id="kibKbnCorePrebootServerMocksPluginApi" text="@kbn/core-preboot-server-mocks"/> | Kibana Core | - | 6 | 0 | 6 | 0 | | <DocLink id="kibKbnCoreRenderingBrowserMocksPluginApi" text="@kbn/core-rendering-browser-mocks"/> | Kibana Core | - | 2 | 0 | 2 | 0 | +| <DocLink id="kibKbnCoreRenderingServerInternalPluginApi" text="@kbn/core-rendering-server-internal"/> | Kibana Core | - | 2 | 0 | 2 | 0 | +| <DocLink id="kibKbnCoreRenderingServerMocksPluginApi" text="@kbn/core-rendering-server-mocks"/> | Kibana Core | - | 4 | 0 | 4 | 1 | | <DocLink id="kibKbnCoreSavedObjectsApiBrowserPluginApi" text="@kbn/core-saved-objects-api-browser"/> | Kibana Core | - | 106 | 1 | 75 | 0 | | <DocLink id="kibKbnCoreSavedObjectsApiServerPluginApi" text="@kbn/core-saved-objects-api-server"/> | Kibana Core | - | 308 | 1 | 137 | 0 | | <DocLink id="kibKbnCoreSavedObjectsApiServerInternalPluginApi" text="@kbn/core-saved-objects-api-server-internal"/> | Kibana Core | - | 71 | 0 | 51 | 0 | @@ -443,7 +445,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | <DocLink id="kibKbnTypeSummarizerCorePluginApi" text="@kbn/type-summarizer-core"/> | [Owner missing] | - | 113 | 1 | 65 | 0 | | <DocLink id="kibKbnTypedReactRouterConfigPluginApi" text="@kbn/typed-react-router-config"/> | [Owner missing] | - | 83 | 0 | 83 | 1 | | <DocLink id="kibKbnUiThemePluginApi" text="@kbn/ui-theme"/> | [Owner missing] | - | 7 | 0 | 6 | 0 | -| <DocLink id="kibKbnUserProfileComponentsPluginApi" text="@kbn/user-profile-components"/> | [Owner missing] | - | 48 | 0 | 3 | 0 | +| <DocLink id="kibKbnUserProfileComponentsPluginApi" text="@kbn/user-profile-components"/> | [Owner missing] | - | 55 | 0 | 5 | 0 | | <DocLink id="kibKbnUtilityTypesPluginApi" text="@kbn/utility-types"/> | [Owner missing] | - | 34 | 0 | 14 | 1 | | <DocLink id="kibKbnUtilityTypesJestPluginApi" text="@kbn/utility-types-jest"/> | [Owner missing] | - | 2 | 0 | 2 | 0 | | <DocLink id="kibKbnUtilsPluginApi" text="@kbn/utils"/> | [Owner missing] | - | 30 | 0 | 20 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index f9b349676713b..7e399db93218d 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: 2022-10-03 +date: 2022-10-04 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 489f7c32b600e..7efed272b7261 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: 2022-10-03 +date: 2022-10-04 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 6a8252bfebe78..f59d7c397918a 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: 2022-10-03 +date: 2022-10-04 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 fbdfd3cb5bd01..dbd1e74d06cd4 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: 2022-10-03 +date: 2022-10-04 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 11313a6dc5f24..397ea6ae4dc91 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 3ac4843ea4176..f48194ae5bd14 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 17f5b0c7f230d..2be7beb68c708 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 5063707c3abd9..d582458137cf9 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 53186cbce4362..4e6d34158bb84 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index 0032f71ba6484..7722b187a54d7 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index b3c954d358cb1..c112fd930e4de 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 280c60872da7d..5299c1ca0eaca 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index eac6e8187a83f..06e4379d4afd9 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index 50deed0a47fdd..fda8615811c46 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 64b2f1e872dd9..f4735a3d7a260 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.devdocs.json b/api_docs/security.devdocs.json index d400f91576d7d..1b69dcaad6959 100644 --- a/api_docs/security.devdocs.json +++ b/api_docs/security.devdocs.json @@ -125,6 +125,22 @@ "path": "x-pack/plugins/security/common/model/authenticated_user.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "security", + "id": "def-public.AuthenticatedUser.profile_uid", + "type": "string", + "tags": [], + "label": "profile_uid", + "description": [ + "\nUser profile ID of this user." + ], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/security/common/model/authenticated_user.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -1522,6 +1538,22 @@ "path": "x-pack/plugins/security/common/model/authenticated_user.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "security", + "id": "def-server.AuthenticatedUser.profile_uid", + "type": "string", + "tags": [], + "label": "profile_uid", + "description": [ + "\nUser profile ID of this user." + ], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/security/common/model/authenticated_user.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3077,6 +3109,22 @@ "path": "x-pack/plugins/security/common/model/authenticated_user.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "security", + "id": "def-common.AuthenticatedUser.profile_uid", + "type": "string", + "tags": [], + "label": "profile_uid", + "description": [ + "\nUser profile ID of this user." + ], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/security/common/model/authenticated_user.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/security.mdx b/api_docs/security.mdx index b62b787d9d0e4..2800db424ba6e 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Platform Security](https://github.com/orgs/elastic/teams/kibana-securit | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 247 | 0 | 90 | 0 | +| 250 | 0 | 90 | 0 | ## Client diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 088b9d7a12e2b..3ddca540a2d16 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: 2022-10-03 +date: 2022-10-04 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 eaddd45f9b778..e54037feb3552 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: 2022-10-03 +date: 2022-10-04 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 c6ba8145d4c64..976c243de6395 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: 2022-10-03 +date: 2022-10-04 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 daaaceba668b4..f83be535a94bc 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: 2022-10-03 +date: 2022-10-04 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 1196b40d5c3bf..7b751efc3d1dc 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: 2022-10-03 +date: 2022-10-04 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 fdd5dfbc025b1..7c124256a7976 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: 2022-10-03 +date: 2022-10-04 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 89056c9ebd088..7bf19fb25c36b 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: 2022-10-03 +date: 2022-10-04 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 1b7e13dd4d650..3cabbc8a83828 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: 2022-10-03 +date: 2022-10-04 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 8e865875b83fe..e3220b9e593a8 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: 2022-10-03 +date: 2022-10-04 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 e5cbc94c567a3..03d8bceec41f2 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: 2022-10-03 +date: 2022-10-04 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 7b775d1ce3bce..a3721f57358da 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: 2022-10-03 +date: 2022-10-04 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 7312616ea8a6e..5c29d491cf1d1 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.devdocs.json b/api_docs/threat_intelligence.devdocs.json index a29de53bf77a5..d5d35c60068c4 100644 --- a/api_docs/threat_intelligence.devdocs.json +++ b/api_docs/threat_intelligence.devdocs.json @@ -274,6 +274,103 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.useQuery", + "type": "Function", + "tags": [], + "label": "useQuery", + "description": [], + "signature": [ + "() => ", + "Query" + ], + "path": "x-pack/plugins/threat_intelligence/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.useFilters", + "type": "Function", + "tags": [], + "label": "useFilters", + "description": [], + "signature": [ + "() => ", + "Filter", + "[]" + ], + "path": "x-pack/plugins/threat_intelligence/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.useGlobalTime", + "type": "Function", + "tags": [], + "label": "useGlobalTime", + "description": [], + "signature": [ + "() => ", + "TimeRange" + ], + "path": "x-pack/plugins/threat_intelligence/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.SiemSearchBar", + "type": "Function", + "tags": [], + "label": "SiemSearchBar", + "description": [], + "signature": [ + "React.VoidFunctionComponent<any>" + ], + "path": "x-pack/plugins/threat_intelligence/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.SiemSearchBar.$1", + "type": "Uncategorized", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "threatIntelligence", + "id": "def-public.SecuritySolutionPluginContext.SiemSearchBar.$2", + "type": "Any", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "any" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "initialIsOpen": false diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 4abe6fedf3bf3..5834a118d4c1e 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Protections Experience Team](https://github.com/orgs/elastic/teams/prot | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 20 | 0 | 4 | 3 | +| 26 | 0 | 8 | 3 | ## Client diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 692501acd7de0..f33b1267f8f43 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: 2022-10-03 +date: 2022-10-04 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 9603096cd2b99..3237f674591f6 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index a9c60110ba139..5146401d1a6e8 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 734e896cbdf27..3997d6297067a 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: 2022-10-03 +date: 2022-10-04 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 5ac50aa29c085..0644b977bc92c 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: 2022-10-03 +date: 2022-10-04 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 2818641379fb7..bfb157318d95b 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index ed31e74c5d7eb..7ea6ab07192c7 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: 2022-10-03 +date: 2022-10-04 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 e75d86bbab218..76e6013841c75 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: 2022-10-03 +date: 2022-10-04 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 0ac5762c42af3..bc3da076b5916 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: 2022-10-03 +date: 2022-10-04 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 b493774dc1eb3..b67acbd363bf0 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: 2022-10-03 +date: 2022-10-04 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 f3c60dc8b7b43..1c83be4e34381 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: 2022-10-03 +date: 2022-10-04 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 ec4208a4a06da..7c1cb5bae3809 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: 2022-10-03 +date: 2022-10-04 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 43f73daa08070..4b95ba2b035fd 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: 2022-10-03 +date: 2022-10-04 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 d537797699cab..1ea7a1e4b9250 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: 2022-10-03 +date: 2022-10-04 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 08324c72b813f..3ffea5a4f58e6 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: 2022-10-03 +date: 2022-10-04 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 7d052e7dd40fb..414b4de0b2363 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: 2022-10-03 +date: 2022-10-04 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 696edbd5d321e..9306f4a52fd35 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: 2022-10-03 +date: 2022-10-04 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 ef87c344661e6..8d5ffda6491b3 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: 2022-10-03 +date: 2022-10-04 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 1a5a44160bf46..9a7a8eb698283 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: 2022-10-03 +date: 2022-10-04 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 8651bb82ad813..443abb630d8da 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: 2022-10-03 +date: 2022-10-04 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 440839b51793a..958b60a5150f5 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: 2022-10-03 +date: 2022-10-04 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 2edc6b736c5b6..4c4afd430bceb 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: 2022-10-03 +date: 2022-10-04 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From c7a56604e77c944bf2069096ce2fa71fc1ec1aa0 Mon Sep 17 00:00:00 2001 From: Coen Warmer <coen.warmer@gmail.com> Date: Tue, 4 Oct 2022 09:10:38 +0200 Subject: [PATCH 50/51] [Actionable Observability] Add Alert Details page header (#140299) Co-authored-by: Faisal Kanout <faisal.kanout@elastic.co> --- .../case_view/components/case_view_alerts.tsx | 1 + x-pack/plugins/cases/public/mocks.ts | 6 +- .../public/hooks/use_fetch_alert_detail.ts | 1 - .../components/alert_details.test.tsx | 55 +++++- .../components/alert_details.tsx | 42 ++++- .../components/alert_summary.tsx | 4 +- .../components/header_actions.test.tsx | 83 +++++++++ .../components/header_actions.tsx | 160 ++++++++++++++++++ .../pages/alert_details/components/index.ts | 2 + .../components/page_title.stories.tsx | 42 +++++ .../components/page_title.test.tsx | 44 +++++ .../alert_details/components/page_title.tsx | 43 +++++ .../public/pages/alert_details/mock/alert.ts | 4 +- .../public/application/sections/index.tsx | 3 + .../components/rule_snooze_modal.tsx | 104 ++++++++++++ .../public/common/get_rule_snooze_modal.tsx | 15 ++ .../triggers_actions_ui/public/mocks.ts | 4 + .../triggers_actions_ui/public/plugin.ts | 6 + 18 files changed, 599 insertions(+), 20 deletions(-) create mode 100644 x-pack/plugins/observability/public/pages/alert_details/components/header_actions.test.tsx create mode 100644 x-pack/plugins/observability/public/pages/alert_details/components/header_actions.tsx create mode 100644 x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx create mode 100644 x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx create mode 100644 x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze_modal.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/common/get_rule_snooze_modal.tsx diff --git a/x-pack/plugins/cases/public/components/case_view/components/case_view_alerts.tsx b/x-pack/plugins/cases/public/components/case_view/components/case_view_alerts.tsx index f492240a8f9b8..0bd582e1cef62 100644 --- a/x-pack/plugins/cases/public/components/case_view/components/case_view_alerts.tsx +++ b/x-pack/plugins/cases/public/components/case_view/components/case_view_alerts.tsx @@ -28,6 +28,7 @@ export const CaseViewAlerts = ({ caseData }: CaseViewAlertsProps) => { }), [caseData.comments] ); + const alertRegistrationContexts = useMemo( () => getRegistrationContextFromAlerts(caseData.comments), [caseData.comments] diff --git a/x-pack/plugins/cases/public/mocks.ts b/x-pack/plugins/cases/public/mocks.ts index 57eead3b80b10..10a4c1f6fd059 100644 --- a/x-pack/plugins/cases/public/mocks.ts +++ b/x-pack/plugins/cases/public/mocks.ts @@ -21,9 +21,13 @@ const uiMock: jest.Mocked<CasesUiStart['ui']> = { getRecentCases: jest.fn(), }; +export const openAddToExistingCaseModalMock = jest.fn(); + const hooksMock: jest.Mocked<CasesUiStart['hooks']> = { getUseCasesAddToNewCaseFlyout: jest.fn(), - getUseCasesAddToExistingCaseModal: jest.fn(), + getUseCasesAddToExistingCaseModal: jest.fn().mockImplementation(() => ({ + open: openAddToExistingCaseModalMock, + })), }; const helpersMock: jest.Mocked<CasesUiStart['helpers']> = { diff --git a/x-pack/plugins/observability/public/hooks/use_fetch_alert_detail.ts b/x-pack/plugins/observability/public/hooks/use_fetch_alert_detail.ts index aa604659f8c08..a86b97741f24c 100644 --- a/x-pack/plugins/observability/public/hooks/use_fetch_alert_detail.ts +++ b/x-pack/plugins/observability/public/hooks/use_fetch_alert_detail.ts @@ -21,7 +21,6 @@ interface AlertDetailParams { export const useFetchAlertDetail = (id: string): [boolean, TopAlert | null] => { const { observabilityRuleTypeRegistry } = usePluginContext(); - const params = useMemo( () => ({ id, ruleType: observabilityRuleTypeRegistry }), [id, observabilityRuleTypeRegistry] diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.test.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.test.tsx index d2c67c85c021e..eaa253efbc51f 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.test.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.test.tsx @@ -7,23 +7,58 @@ import React from 'react'; import * as useUiSettingHook from '@kbn/kibana-react-plugin/public/ui_settings/use_ui_setting'; +import { useParams } from 'react-router-dom'; +import { Chance } from 'chance'; +import { waitFor } from '@testing-library/react'; +import { casesPluginMock } from '@kbn/cases-plugin/public/mocks'; +import { triggersActionsUiMock } from '@kbn/triggers-actions-ui-plugin/public/mocks'; + import { render } from '../../../utils/test_helper'; +import { useKibana } from '../../../utils/kibana_react'; +import { kibanaStartMock } from '../../../utils/kibana_react.mock'; import { useFetchAlertDetail } from '../../../hooks/use_fetch_alert_detail'; -import { AlertDetails } from './alert_details'; -import { Chance } from 'chance'; -import { useParams } from 'react-router-dom'; import { useBreadcrumbs } from '../../../hooks/use_breadcrumbs'; +import { AlertDetails } from './alert_details'; import { ConfigSchema } from '../../../plugin'; import { alert, alertWithNoData } from '../mock/alert'; -import { waitFor } from '@testing-library/react'; -jest.mock('../../../hooks/use_fetch_alert_detail'); -jest.mock('../../../hooks/use_breadcrumbs'); jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), useParams: jest.fn(), })); +jest.mock('../../../utils/kibana_react'); + +const useKibanaMock = useKibana as jest.Mock; + +const mockKibana = () => { + useKibanaMock.mockReturnValue({ + services: { + ...kibanaStartMock.startContract(), + cases: casesPluginMock.createStartContract(), + http: { + basePath: { + prepend: jest.fn(), + }, + }, + triggersActionsUi: triggersActionsUiMock.createStart(), + }, + }); +}; + +jest.mock('../../../hooks/use_fetch_alert_detail'); +jest.mock('../../../hooks/use_breadcrumbs'); +jest.mock('../../../hooks/use_get_user_cases_permissions', () => ({ + useGetUserCasesPermissions: () => ({ + all: true, + create: true, + delete: true, + push: true, + read: true, + update: true, + }), +})); + const useFetchAlertDetailMock = useFetchAlertDetail as jest.Mock; const useParamsMock = useParams as jest.Mock; const useBreadcrumbsMock = useBreadcrumbs as jest.Mock; @@ -49,16 +84,20 @@ describe('Alert details', () => { jest.clearAllMocks(); useParamsMock.mockReturnValue(params); useBreadcrumbsMock.mockReturnValue([]); + mockKibana(); }); - it('should show alert summary', async () => { + it('should show the alert detail page with all necessary components', async () => { useFetchAlertDetailMock.mockReturnValue([false, alert]); const alertDetails = render(<AlertDetails />, config); - expect(alertDetails.queryByTestId('alertDetails')).toBeTruthy(); await waitFor(() => expect(alertDetails.queryByTestId('centerJustifiedSpinner')).toBeFalsy()); + + expect(alertDetails.queryByTestId('alertDetails')).toBeTruthy(); expect(alertDetails.queryByTestId('alertDetailsError')).toBeFalsy(); + expect(alertDetails.queryByTestId('page-title-container')).toBeTruthy(); + expect(alertDetails.queryByTestId('alert-summary-container')).toBeTruthy(); }); it('should show error loading the alert details', async () => { diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.tsx index a2cd7fd68a2ce..1b501e62a7dde 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/alert_details.tsx @@ -9,23 +9,36 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { useParams } from 'react-router-dom'; import { EuiEmptyPrompt, EuiPanel } from '@elastic/eui'; + import { useKibana } from '../../../utils/kibana_react'; -import { ObservabilityAppServices } from '../../../application/types'; import { usePluginContext } from '../../../hooks/use_plugin_context'; import { useBreadcrumbs } from '../../../hooks/use_breadcrumbs'; -import { paths } from '../../../config/paths'; -import { AlertDetailsPathParams } from '../types'; +import { useFetchAlertDetail } from '../../../hooks/use_fetch_alert_detail'; + +import { AlertSummary, HeaderActions, PageTitle } from '.'; import { CenterJustifiedSpinner } from '../../rule_details/components/center_justified_spinner'; -import { AlertSummary } from '.'; import PageNotFound from '../../404'; -import { useFetchAlertDetail } from '../../../hooks/use_fetch_alert_detail'; + +import { ObservabilityAppServices } from '../../../application/types'; +import { AlertDetailsPathParams } from '../types'; +import { observabilityFeatureId } from '../../../../common'; +import { paths } from '../../../config/paths'; export function AlertDetails() { - const { http } = useKibana<ObservabilityAppServices>().services; + const { + http, + cases: { + helpers: { canUseCases }, + ui: { getCasesContext }, + }, + } = useKibana<ObservabilityAppServices>().services; const { ObservabilityPageTemplate, config } = usePluginContext(); const { alertId } = useParams<AlertDetailsPathParams>(); const [isLoading, alert] = useFetchAlertDetail(alertId); + const CasesContext = getCasesContext(); + const userCasesPermissions = canUseCases(); + useBreadcrumbs([ { href: http.basePath.prepend(paths.observability.alerts), @@ -69,7 +82,22 @@ export function AlertDetails() { ); return ( - <ObservabilityPageTemplate data-test-subj="alertDetails"> + <ObservabilityPageTemplate + pageHeader={{ + pageTitle: <PageTitle title={alert?.reason} active={Boolean(alert?.active)} />, + rightSideItems: [ + <CasesContext + owner={[observabilityFeatureId]} + permissions={userCasesPermissions} + features={{ alerts: { sync: false } }} + > + <HeaderActions alert={alert} /> + </CasesContext>, + ], + bottomBorder: false, + }} + data-test-subj="alertDetails" + > <AlertSummary alert={alert} /> </ObservabilityPageTemplate> ); diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/alert_summary.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/alert_summary.tsx index 4a1d88e928fb2..eada6a3925521 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/alert_summary.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/alert_summary.tsx @@ -30,7 +30,7 @@ export function AlertSummary({ alert }: AlertSummaryProps) { const tags = alert?.fields[ALERT_RULE_TAGS]; return ( - <> + <div data-test-subj="alert-summary-container"> <EuiFlexGroup> <EuiFlexItem> <EuiTitle size="xxs"> @@ -161,6 +161,6 @@ export function AlertSummary({ alert }: AlertSummaryProps) { </div> </EuiFlexItem> </EuiFlexGroup> - </> + </div> ); } diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.test.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.test.tsx new file mode 100644 index 0000000000000..8bbec59c52b95 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.test.tsx @@ -0,0 +1,83 @@ +/* + * 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 { fireEvent } from '@testing-library/react'; +import { triggersActionsUiMock } from '@kbn/triggers-actions-ui-plugin/public/mocks'; +import { casesPluginMock, openAddToExistingCaseModalMock } from '@kbn/cases-plugin/public/mocks'; + +import { render } from '../../../utils/test_helper'; +import { useKibana } from '../../../utils/kibana_react'; +import { kibanaStartMock } from '../../../utils/kibana_react.mock'; +import { alertWithTags, mockAlertUuid } from '../mock/alert'; + +import { HeaderActions } from './header_actions'; + +jest.mock('../../../utils/kibana_react'); + +const useKibanaMock = useKibana as jest.Mock; + +const mockKibana = () => { + useKibanaMock.mockReturnValue({ + services: { + ...kibanaStartMock.startContract(), + triggersActionsUi: triggersActionsUiMock.createStart(), + cases: casesPluginMock.createStartContract(), + }, + }); +}; + +const ruleId = '123'; +const ruleName = '456'; + +jest.mock('../../../hooks/use_fetch_rule', () => { + return { + useFetchRule: () => ({ + reloadRule: jest.fn(), + rule: { + id: ruleId, + name: ruleName, + }, + }), + }; +}); + +describe('Header Actions', () => { + beforeEach(() => { + jest.clearAllMocks(); + mockKibana(); + }); + + it('should display an actions button', () => { + const { queryByTestId } = render(<HeaderActions alert={alertWithTags} />); + expect(queryByTestId('alert-details-header-actions-menu-button')).toBeTruthy(); + }); + + describe('when clicking the actions button', () => { + it('should offer an "add to case" button which opens the add to case modal', async () => { + const { getByTestId, findByRole } = render(<HeaderActions alert={alertWithTags} />); + + fireEvent.click(await findByRole('button', { name: 'Actions' })); + + fireEvent.click(getByTestId('add-to-case-button')); + + expect(openAddToExistingCaseModalMock).toBeCalledWith({ + attachments: [ + { + alertId: mockAlertUuid, + index: '.internal.alerts-observability.metrics.alerts-*', + rule: { + id: ruleId, + name: ruleName, + }, + type: 'alert', + }, + ], + }); + }); + }); +}); diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.tsx new file mode 100644 index 0000000000000..e7a2c773dc68f --- /dev/null +++ b/x-pack/plugins/observability/public/pages/alert_details/components/header_actions.tsx @@ -0,0 +1,160 @@ +/* + * 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, { useState } from 'react'; +import { i18n } from '@kbn/i18n'; +import { noop } from 'lodash'; +import { CaseAttachmentsWithoutOwner } from '@kbn/cases-plugin/public/types'; +import { CommentType } from '@kbn/cases-plugin/common'; +import { EuiButton, EuiButtonEmpty, EuiFlexGroup, EuiPopover, EuiText } from '@elastic/eui'; +import { ALERT_RULE_UUID, ALERT_UUID } from '@kbn/rule-data-utils'; + +import { useKibana } from '../../../utils/kibana_react'; +import { useFetchRule } from '../../../hooks/use_fetch_rule'; +import { ObservabilityAppServices } from '../../../application/types'; +import { TopAlert } from '../../alerts'; + +export interface HeaderActionsProps { + alert: TopAlert | null; +} + +export function HeaderActions({ alert }: HeaderActionsProps) { + const { + http, + cases: { + hooks: { getUseCasesAddToExistingCaseModal }, + }, + triggersActionsUi: { getEditAlertFlyout, getRuleSnoozeModal }, + } = useKibana<ObservabilityAppServices>().services; + + const { rule, reloadRule } = useFetchRule({ + http, + ruleId: alert?.fields[ALERT_RULE_UUID] || '', + }); + + const [isPopoverOpen, setIsPopoverOpen] = useState<boolean>(false); + const [ruleConditionsFlyoutOpen, setRuleConditionsFlyoutOpen] = useState<boolean>(false); + const [snoozeModalOpen, setSnoozeModalOpen] = useState<boolean>(false); + + const selectCaseModal = getUseCasesAddToExistingCaseModal(); + + const handleTogglePopover = () => setIsPopoverOpen(!isPopoverOpen); + const handleClosePopover = () => setIsPopoverOpen(false); + + const attachments: CaseAttachmentsWithoutOwner = + alert && rule + ? [ + { + alertId: alert?.fields[ALERT_UUID] || '', + index: '.internal.alerts-observability.metrics.alerts-*', + rule: { + id: rule.id, + name: rule.name, + }, + type: CommentType.alert, + }, + ] + : []; + + const handleAddToCase = () => { + setIsPopoverOpen(false); + selectCaseModal.open({ attachments }); + }; + + const handleViewRuleDetails = () => { + setIsPopoverOpen(false); + setRuleConditionsFlyoutOpen(true); + }; + + const handleOpenSnoozeModal = () => { + setIsPopoverOpen(false); + setSnoozeModalOpen(true); + }; + + return ( + <> + <EuiPopover + isOpen={isPopoverOpen} + closePopover={handleClosePopover} + button={ + <EuiButton + fill + iconType="arrowDown" + iconSide="right" + onClick={handleTogglePopover} + data-test-subj="alert-details-header-actions-menu-button" + > + {i18n.translate('xpack.observability.alertDetails.actionsButtonLabel', { + defaultMessage: 'Actions', + })} + </EuiButton> + } + > + <EuiFlexGroup direction="column" alignItems="flexStart"> + <EuiButtonEmpty + size="s" + color="text" + disabled={!alert?.fields[ALERT_RULE_UUID]} + onClick={handleViewRuleDetails} + data-test-subj="view-rule-details-button" + > + <EuiText size="s"> + {i18n.translate('xpack.observability.alertDetails.viewRuleDetails', { + defaultMessage: 'View rule details', + })} + </EuiText> + </EuiButtonEmpty> + + <EuiButtonEmpty + size="s" + color="text" + onClick={handleOpenSnoozeModal} + data-test-subj="snooze-rule-button" + > + <EuiText size="s"> + {i18n.translate('xpack.observability.alertDetails.editSnoozeRule', { + defaultMessage: 'Snooze the rule', + })} + </EuiText> + </EuiButtonEmpty> + + <EuiButtonEmpty + size="s" + color="text" + onClick={handleAddToCase} + data-test-subj="add-to-case-button" + > + <EuiText size="s"> + {i18n.translate('xpack.observability.alertDetails.addToCase', { + defaultMessage: 'Add to case', + })} + </EuiText> + </EuiButtonEmpty> + </EuiFlexGroup> + </EuiPopover> + + {rule && ruleConditionsFlyoutOpen + ? getEditAlertFlyout({ + initialRule: rule, + onClose: () => { + setRuleConditionsFlyoutOpen(false); + }, + onSave: reloadRule, + }) + : null} + + {rule && snoozeModalOpen + ? getRuleSnoozeModal({ + rule, + onClose: () => setSnoozeModalOpen(false), + onRuleChanged: reloadRule, + onLoading: noop, + }) + : null} + </> + ); +} diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/index.ts b/x-pack/plugins/observability/public/pages/alert_details/components/index.ts index f49d7bd3c721a..9e2ae5d34dc18 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/index.ts +++ b/x-pack/plugins/observability/public/pages/alert_details/components/index.ts @@ -5,5 +5,7 @@ * 2.0. */ +export { HeaderActions } from './header_actions'; export { AlertSummary } from './alert_summary'; export { AlertDetails } from './alert_details'; +export { PageTitle } from './page_title'; diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx new file mode 100644 index 0000000000000..ab0109ef1c214 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx @@ -0,0 +1,42 @@ +/* + * 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 { ComponentStory } from '@storybook/react'; +import { EuiPageTemplate } from '@elastic/eui'; + +import { PageTitle as Component, PageTitleProps } from './page_title'; + +export default { + component: Component, + title: 'app/AlertDetails/PageTitle', + argTypes: { + title: { control: 'text' }, + active: { control: 'boolean' }, + }, +}; + +const Template: ComponentStory<typeof Component> = (props: PageTitleProps) => ( + <Component {...props} /> +); + +const TemplateWithPageTemplate: ComponentStory<typeof Component> = (props: PageTitleProps) => ( + <EuiPageTemplate> + <EuiPageTemplate.Header pageTitle={<Component {...props} />} bottomBorder={false} /> + </EuiPageTemplate> +); + +const defaultProps = { + title: 'host.cpu.usage is 0.2024 in the last 1 min for all hosts. Alert when > 0.02.', + active: true, +}; + +export const PageTitle = Template.bind({}); +PageTitle.args = defaultProps; + +export const PageTitleUsedWithinPageTemplate = TemplateWithPageTemplate.bind({}); +PageTitleUsedWithinPageTemplate.args = defaultProps; diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx new file mode 100644 index 0000000000000..bd0b15e8ffc2a --- /dev/null +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.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 { render } from '@testing-library/react'; + +import { PageTitle, PageTitleProps } from './page_title'; + +describe('Page Title', () => { + const defaultProps = { + title: 'Great success', + active: true, + }; + + const renderComp = (props: PageTitleProps) => { + return render(<PageTitle {...props} />); + }; + + it('should display a title when it is passed', () => { + const { getByText } = renderComp(defaultProps); + expect(getByText(defaultProps.title)).toBeTruthy(); + }); + + it('should display an active badge when active is true', async () => { + const { getByText } = renderComp(defaultProps); + expect(getByText('Active')).toBeTruthy(); + }); + + it('should display an inactive badge when active is false', async () => { + const { getByText } = renderComp({ ...defaultProps, active: false }); + + expect(getByText('Recovered')).toBeTruthy(); + }); + + it('should display no badge when active is not passed', async () => { + const { queryByTestId } = renderComp({ title: '123' }); + + expect(queryByTestId('page-title-active-badge')).not.toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx new file mode 100644 index 0000000000000..61301f16e37a9 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiBadge, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export interface PageTitleProps { + title: string | undefined; + active?: boolean; +} + +export function PageTitle({ title, active }: PageTitleProps) { + const label = active + ? i18n.translate('xpack.observability.alertDetails.alertActiveState', { + defaultMessage: 'Active', + }) + : i18n.translate('xpack.observability.alertDetails.alertRecoveredState', { + defaultMessage: 'Recovered', + }); + + return ( + <div data-test-subj="page-title-container"> + {title} + + <EuiFlexGroup> + <EuiFlexItem> + <div> + {typeof active === 'boolean' ? ( + <EuiBadge color="#BD271E" data-test-subj="page-title-active-badge"> + {label} + </EuiBadge> + ) : null} + </div> + </EuiFlexItem> + </EuiFlexGroup> + </div> + ); +} diff --git a/x-pack/plugins/observability/public/pages/alert_details/mock/alert.ts b/x-pack/plugins/observability/public/pages/alert_details/mock/alert.ts index ed129fc3d24ec..a3031fb0aa18d 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/mock/alert.ts +++ b/x-pack/plugins/observability/public/pages/alert_details/mock/alert.ts @@ -32,6 +32,8 @@ import { TopAlert } from '../../alerts'; export const tags: string[] = ['tag1', 'tag2', 'tag3']; +export const mockAlertUuid = '756240e5-92fb-452f-b08e-cd3e0dc51738'; + export const alert: TopAlert = { reason: '1957 log entries (more than 100.25) match the conditions.', fields: { @@ -50,7 +52,7 @@ export const alert: TopAlert = { [ALERT_EVALUATION_VALUE]: 1957, [ALERT_INSTANCE_ID]: '*', [ALERT_RULE_NAME]: 'Log threshold (from logs)', - [ALERT_UUID]: '756240e5-92fb-452f-b08e-cd3e0dc51738', + [ALERT_UUID]: mockAlertUuid, [SPACE_IDS]: ['default'], [VERSION]: '8.0.0', [EVENT_KIND]: 'signal', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx index f4ae5d399e6f9..2e476855926d4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx @@ -49,6 +49,9 @@ export const RulesList = suspendedComponentWithProps( export const RulesListNotifyBadge = suspendedComponentWithProps( lazy(() => import('./rules_list/components/rules_list_notify_badge')) ); +export const RuleSnoozeModal = suspendedComponentWithProps( + lazy(() => import('./rules_list/components/rule_snooze_modal')) +); export const RuleDefinition = suspendedComponentWithProps( lazy(() => import('./rule_details/components/rule_definition')) ); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze_modal.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze_modal.tsx new file mode 100644 index 0000000000000..c4624e7ea8e61 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/rules_list/components/rule_snooze_modal.tsx @@ -0,0 +1,104 @@ +/* + * 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, { useCallback, useMemo } from 'react'; +import { EuiModal, EuiModalBody, EuiSpacer } from '@elastic/eui'; + +import { useKibana } from '../../../../common/lib/kibana'; +import { snoozeRule, unsnoozeRule } from '../../../lib/rule_api'; +import { + SNOOZE_FAILED_MESSAGE, + SNOOZE_SUCCESS_MESSAGE, + UNSNOOZE_SUCCESS_MESSAGE, +} from './rules_list_notify_badge'; +import { SnoozePanel, futureTimeToInterval } from './rule_snooze'; +import { Rule, RuleTypeParams, SnoozeSchedule } from '../../../../types'; + +export interface RuleSnoozeModalProps { + rule: Rule<RuleTypeParams>; + onClose: () => void; + onLoading: (isLoading: boolean) => void; + onRuleChanged: () => void; +} + +const isRuleSnoozed = (rule: { isSnoozedUntil?: Date | null; muteAll: boolean }) => + Boolean( + (rule.isSnoozedUntil && new Date(rule.isSnoozedUntil).getTime() > Date.now()) || rule.muteAll + ); + +export const RuleSnoozeModal: React.FunctionComponent<RuleSnoozeModalProps> = ({ + rule, + onClose, + onLoading, + onRuleChanged, +}) => { + const { + http, + notifications: { toasts }, + } = useKibana().services; + + const isSnoozed = useMemo(() => { + return isRuleSnoozed(rule); + }, [rule]); + + const onApplySnooze = useCallback( + async (snoozeSchedule: SnoozeSchedule) => { + try { + onLoading(true); + onClose(); + + await snoozeRule({ http, id: rule.id, snoozeSchedule }); + + onRuleChanged(); + + toasts.addSuccess(SNOOZE_SUCCESS_MESSAGE); + } catch (e) { + toasts.addDanger(SNOOZE_FAILED_MESSAGE); + } finally { + onLoading(false); + } + }, + [onLoading, onClose, http, rule.id, onRuleChanged, toasts] + ); + + const onApplyUnsnooze = useCallback( + async (scheduleIds?: string[]) => { + try { + onLoading(true); + onClose(); + await unsnoozeRule({ http, id: rule.id, scheduleIds }); + onRuleChanged(); + toasts.addSuccess(UNSNOOZE_SUCCESS_MESSAGE); + } catch (e) { + toasts.addDanger(SNOOZE_FAILED_MESSAGE); + } finally { + onLoading(false); + } + }, + [onLoading, onClose, http, rule.id, onRuleChanged, toasts] + ); + + return ( + <EuiModal onClose={onClose} data-test-subj="ruleSnoozeModal"> + <EuiModalBody> + <EuiSpacer size="s" /> + <SnoozePanel + inPopover={false} + interval={futureTimeToInterval(rule.isSnoozedUntil)} + activeSnoozes={rule.activeSnoozes ?? []} + scheduledSnoozes={rule.snoozeSchedule ?? []} + showCancel={isSnoozed} + snoozeRule={onApplySnooze} + unsnoozeRule={onApplyUnsnooze} + /> + </EuiModalBody> + </EuiModal> + ); +}; + +// eslint-disable-next-line import/no-default-export +export { RuleSnoozeModal as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/common/get_rule_snooze_modal.tsx b/x-pack/plugins/triggers_actions_ui/public/common/get_rule_snooze_modal.tsx new file mode 100644 index 0000000000000..b22fe16f77312 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/common/get_rule_snooze_modal.tsx @@ -0,0 +1,15 @@ +/* + * 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 { RuleSnoozeModal } from '../application/sections'; +import { RuleSnoozeModalProps } from '../application/sections/rules_list/components/rule_snooze_modal'; + +export const getRuleSnoozeModalLazy = (props: RuleSnoozeModalProps) => { + return <RuleSnoozeModal {...props} />; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/mocks.ts b/x-pack/plugins/triggers_actions_ui/public/mocks.ts index 02722bc0ee73b..7c18ea1b6fa2c 100644 --- a/x-pack/plugins/triggers_actions_ui/public/mocks.ts +++ b/x-pack/plugins/triggers_actions_ui/public/mocks.ts @@ -43,6 +43,7 @@ import { getFieldBrowserLazy } from './common/get_field_browser'; import { getRuleAlertsSummaryLazy } from './common/get_rule_alerts_summary'; import { getRuleDefinitionLazy } from './common/get_rule_definition'; import { getRuleStatusPanelLazy } from './common/get_rule_status_panel'; +import { getRuleSnoozeModalLazy } from './common/get_rule_snooze_modal'; function createStartMock(): TriggersAndActionsUIPublicPluginStart { const actionTypeRegistry = new TypeRegistry<ActionTypeModel>(); @@ -124,6 +125,9 @@ function createStartMock(): TriggersAndActionsUIPublicPluginStart { getRuleStatusPanel: (props) => { return getRuleStatusPanelLazy(props); }, + getRuleSnoozeModal: (props) => { + return getRuleSnoozeModalLazy(props); + }, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/plugin.ts b/x-pack/plugins/triggers_actions_ui/public/plugin.ts index 10c5e5637f159..1374f10355e16 100644 --- a/x-pack/plugins/triggers_actions_ui/public/plugin.ts +++ b/x-pack/plugins/triggers_actions_ui/public/plugin.ts @@ -78,6 +78,8 @@ import { getRuleDefinitionLazy } from './common/get_rule_definition'; import { RuleStatusPanelProps } from './application/sections/rule_details/components/rule_status_panel'; import { RuleAlertsSummaryProps } from './application/sections/rule_details/components/alert_summary'; import { getRuleAlertsSummaryLazy } from './common/get_rule_alerts_summary'; +import { RuleSnoozeModalProps } from './application/sections/rules_list/components/rule_snooze_modal'; +import { getRuleSnoozeModalLazy } from './common/get_rule_snooze_modal'; export interface TriggersAndActionsUIPublicPluginSetup { actionTypeRegistry: TypeRegistry<ActionTypeModel>; @@ -123,6 +125,7 @@ export interface TriggersAndActionsUIPublicPluginStart { getRuleDefinition: (props: RuleDefinitionProps) => ReactElement<RuleDefinitionProps>; getRuleStatusPanel: (props: RuleStatusPanelProps) => ReactElement<RuleStatusPanelProps>; getRuleAlertsSummary: (props: RuleAlertsSummaryProps) => ReactElement<RuleAlertsSummaryProps>; + getRuleSnoozeModal: (props: RuleSnoozeModalProps) => ReactElement<RuleSnoozeModalProps>; } interface PluginsSetup { @@ -352,6 +355,9 @@ export class Plugin getRuleAlertsSummary: (props: RuleAlertsSummaryProps) => { return getRuleAlertsSummaryLazy(props); }, + getRuleSnoozeModal: (props: RuleSnoozeModalProps) => { + return getRuleSnoozeModalLazy(props); + }, }; } From 3c0086b76478f8c011883c0a0ea94354dd0c8f60 Mon Sep 17 00:00:00 2001 From: Pablo Machado <pablo.nevesmachado@elastic.co> Date: Tue, 4 Oct 2022 10:16:54 +0200 Subject: [PATCH 51/51] Add Url state parameter for external alerts checkbox (#142344) * Refactor global_query_string to move reusabel code to helper * Add Url state parameter for external alerts checkbox Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../events_tab/events_query_tab_body.test.tsx | 6 ++ .../events_tab/events_query_tab_body.tsx | 56 +++++++++++++- .../utils/global_query_string/helpers.ts | 62 ++++++++++++++- .../utils/global_query_string/index.test.tsx | 30 +++++++- .../common/utils/global_query_string/index.ts | 75 +++++++------------ 5 files changed, 178 insertions(+), 51 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx index 0b13363a653a0..cb12aaa7f0e79 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.test.tsx @@ -15,6 +15,7 @@ import { EventsQueryTabBody, ALERTS_EVENTS_HISTOGRAM_ID } from './events_query_t import { useGlobalFullScreen } from '../../containers/use_full_screen'; import * as tGridActions from '@kbn/timelines-plugin/public/store/t_grid/actions'; import { licenseService } from '../../hooks/use_license'; +import { mockHistory } from '../../mock/router'; const mockGetDefaultControlColumn = jest.fn(); jest.mock('../../../timelines/components/timeline/body/control_columns', () => ({ @@ -39,6 +40,11 @@ jest.mock('../../lib/kibana', () => { }; }); +jest.mock('react-router-dom', () => ({ + ...jest.requireActual('react-router-dom'), + useHistory: () => mockHistory, +})); + const FakeStatefulEventsViewer = ({ additionalFilters }: { additionalFilters: JSX.Element }) => ( <div> {additionalFilters} diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx index db663c1f0fc6d..07c9995ddbd9e 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx @@ -42,6 +42,11 @@ import { useLicense } from '../../hooks/use_license'; import { useUiSetting$ } from '../../lib/kibana'; import { defaultAlertsFilters } from '../events_viewer/external_alerts_filter'; +import { + useGetInitialUrlParamValue, + useReplaceUrlParams, +} from '../../utils/global_query_string/helpers'; + export const ALERTS_EVENTS_HISTOGRAM_ID = 'alertsOrEventsHistogramQuery'; type QueryTabBodyProps = UserQueryTabBodyProps | HostQueryTabBodyProps | NetworkQueryTabBodyProps; @@ -55,6 +60,8 @@ export type EventsQueryTabBodyComponentProps = QueryTabBodyProps & { timelineId: TimelineId; }; +const EXTERNAL_ALERTS_URL_PARAM = 'onlyExternalAlerts'; + const EventsQueryTabBodyComponent: React.FC<EventsQueryTabBodyComponentProps> = ({ deleteQuery, endDate, @@ -70,7 +77,6 @@ const EventsQueryTabBodyComponent: React.FC<EventsQueryTabBodyComponentProps> = const { globalFullScreen } = useGlobalFullScreen(); const tGridEnabled = useIsExperimentalFeatureEnabled('tGridEnabled'); const [defaultNumberFormat] = useUiSetting$<string>(DEFAULT_NUMBER_FORMAT); - const [showExternalAlerts, setShowExternalAlerts] = useState(false); const isEnterprisePlus = useLicense().isEnterprise(); const ACTION_BUTTON_COUNT = isEnterprisePlus ? 5 : 4; const leadingControlColumns = useMemo( @@ -78,6 +84,14 @@ const EventsQueryTabBodyComponent: React.FC<EventsQueryTabBodyComponentProps> = [ACTION_BUTTON_COUNT] ); + const showExternalAlertsInitialUrlState = useExternalAlertsInitialUrlState(); + + const [showExternalAlerts, setShowExternalAlerts] = useState( + showExternalAlertsInitialUrlState ?? false + ); + + useSyncExternalAlertsUrlState(showExternalAlerts); + const toggleExternalAlerts = useCallback(() => setShowExternalAlerts((s) => !s), []); const getHistogramSubtitle = useMemo( () => getSubtitleFunction(defaultNumberFormat, showExternalAlerts), @@ -178,3 +192,43 @@ EventsQueryTabBodyComponent.displayName = 'EventsQueryTabBodyComponent'; export const EventsQueryTabBody = React.memo(EventsQueryTabBodyComponent); EventsQueryTabBody.displayName = 'EventsQueryTabBody'; + +const useExternalAlertsInitialUrlState = () => { + const replaceUrlParams = useReplaceUrlParams(); + + const getInitialUrlParamValue = useGetInitialUrlParamValue<boolean>(EXTERNAL_ALERTS_URL_PARAM); + + const { decodedParam: showExternalAlertsInitialUrlState } = useMemo( + () => getInitialUrlParamValue(), + [getInitialUrlParamValue] + ); + + useEffect(() => { + // Only called on component unmount + return () => { + replaceUrlParams([ + { + key: EXTERNAL_ALERTS_URL_PARAM, + value: null, + }, + ]); + }; + }, [replaceUrlParams]); + + return showExternalAlertsInitialUrlState; +}; + +/** + * Update URL state when showExternalAlerts value changes + */ +const useSyncExternalAlertsUrlState = (showExternalAlerts: boolean) => { + const replaceUrlParams = useReplaceUrlParams(); + useEffect(() => { + replaceUrlParams([ + { + key: EXTERNAL_ALERTS_URL_PARAM, + value: showExternalAlerts ? 'true' : null, + }, + ]); + }, [showExternalAlerts, replaceUrlParams]); +}; diff --git a/x-pack/plugins/security_solution/public/common/utils/global_query_string/helpers.ts b/x-pack/plugins/security_solution/public/common/utils/global_query_string/helpers.ts index 63684f1985049..a5f7e93146750 100644 --- a/x-pack/plugins/security_solution/public/common/utils/global_query_string/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/utils/global_query_string/helpers.ts @@ -5,8 +5,12 @@ * 2.0. */ -import { parse } from 'query-string'; import { decode, encode } from 'rison-node'; +import type { ParsedQuery } from 'query-string'; +import { parse, stringify } from 'query-string'; +import { url } from '@kbn/kibana-utils-plugin/public'; +import { useHistory } from 'react-router-dom'; +import { useCallback } from 'react'; import { SecurityPageName } from '../../../app/types'; export const isDetectionsPages = (pageName: string) => @@ -40,3 +44,59 @@ export const getParamFromQueryString = ( return Array.isArray(queryParam) ? queryParam[0] : queryParam; }; + +/** + * + * Gets the value of the URL param from the query string. + * It doesn't update when the URL changes. + * + */ +export const useGetInitialUrlParamValue = <State>(urlParamKey: string) => { + // window.location.search provides the most updated representation of the url search. + // It also guarantees that we don't overwrite URL param managed outside react-router. + const getInitialUrlParamValue = useCallback(() => { + const param = getParamFromQueryString( + getQueryStringFromLocation(window.location.search), + urlParamKey + ); + + const decodedParam = decodeRisonUrlState<State>(param ?? undefined); + + return { param, decodedParam }; + }, [urlParamKey]); + + return getInitialUrlParamValue; +}; + +export const encodeQueryString = (urlParams: ParsedQuery<string>): string => + stringify(url.encodeQuery(urlParams), { sort: false, encode: false }); + +export const useReplaceUrlParams = () => { + const history = useHistory(); + + const replaceUrlParams = useCallback( + (params: Array<{ key: string; value: string | null }>) => { + // window.location.search provides the most updated representation of the url search. + // It prevents unnecessary re-renders which useLocation would create because 'replaceUrlParams' does update the location. + // window.location.search also guarantees that we don't overwrite URL param managed outside react-router. + const search = window.location.search; + const urlParams = parse(search, { sort: false }); + + params.forEach(({ key, value }) => { + if (value == null || value === '') { + delete urlParams[key]; + } else { + urlParams[key] = value; + } + }); + + const newSearch = encodeQueryString(urlParams); + + if (getQueryStringFromLocation(search) !== newSearch) { + history.replace({ search: newSearch }); + } + }, + [history] + ); + return replaceUrlParams; +}; diff --git a/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.test.tsx b/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.test.tsx index a400ab24e06dd..dede5125775c4 100644 --- a/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderHook } from '@testing-library/react-hooks'; +import { act, renderHook } from '@testing-library/react-hooks'; import { useInitializeUrlParam, useGlobalQueryString, @@ -296,5 +296,33 @@ describe('global query string', () => { expect(mockHistory.replace).not.toHaveBeenCalledWith(); }); + + it('deletes unregistered URL params', async () => { + const urlParamKey = 'testKey'; + const value = '123'; + window.location.search = `?${urlParamKey}=${value}`; + const globalUrlParam = { + [urlParamKey]: value, + }; + const store = makeStore(globalUrlParam); + + const { waitForNextUpdate } = renderHook(() => useSyncGlobalQueryString(), { + wrapper: ({ children }: { children: React.ReactElement }) => ( + <TestProviders store={store}>{children}</TestProviders> + ), + }); + + mockHistory.replace.mockClear(); + + act(() => { + store.dispatch(globalUrlParamActions.deregisterUrlParam({ key: urlParamKey })); + }); + + waitForNextUpdate(); + + expect(mockHistory.replace).toHaveBeenCalledWith({ + search: ``, + }); + }); }); }); diff --git a/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.ts b/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.ts index 09588c7298c09..96834d39fd644 100644 --- a/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.ts +++ b/x-pack/plugins/security_solution/public/common/utils/global_query_string/index.ts @@ -5,20 +5,15 @@ * 2.0. */ -import type * as H from 'history'; -import type { ParsedQuery } from 'query-string'; -import { parse, stringify } from 'query-string'; import { useCallback, useEffect, useMemo } from 'react'; - -import { url } from '@kbn/kibana-utils-plugin/public'; -import { isEmpty, pickBy } from 'lodash/fp'; -import { useHistory } from 'react-router-dom'; +import { difference, isEmpty, pickBy } from 'lodash/fp'; import { useDispatch } from 'react-redux'; +import usePrevious from 'react-use/lib/usePrevious'; import { - decodeRisonUrlState, + encodeQueryString, encodeRisonUrlState, - getParamFromQueryString, - getQueryStringFromLocation, + useGetInitialUrlParamValue, + useReplaceUrlParams, } from './helpers'; import { useShallowEqualSelector } from '../../hooks/use_selector'; import { globalUrlParamActions, globalUrlParamSelectors } from '../../store/global_url_param'; @@ -43,13 +38,10 @@ export const useInitializeUrlParam = <State>( ) => { const dispatch = useDispatch(); + const getInitialUrlParamValue = useGetInitialUrlParamValue<State>(urlParamKey); + useEffect(() => { - // window.location.search provides the most updated representation of the url search. - // It also guarantees that we don't overwrite URL param managed outside react-router. - const initialValue = getParamFromQueryString( - getQueryStringFromLocation(window.location.search), - urlParamKey - ); + const { param: initialValue, decodedParam: decodedInitialValue } = getInitialUrlParamValue(); dispatch( globalUrlParamActions.registerUrlParam({ @@ -59,7 +51,7 @@ export const useInitializeUrlParam = <State>( ); // execute consumer initialization - onInitialize(decodeRisonUrlState<State>(initialValue ?? undefined)); + onInitialize(decodedInitialValue); return () => { dispatch(globalUrlParamActions.deregisterUrlParam({ key: urlParamKey })); @@ -103,9 +95,16 @@ export const useGlobalQueryString = (): string => { * - It updates the URL when globalUrlParam store updates. */ export const useSyncGlobalQueryString = () => { - const history = useHistory(); const [{ pageName }] = useRouteSpy(); const globalUrlParam = useShallowEqualSelector(globalUrlParamSelectors.selectGlobalUrlParam); + const previousGlobalUrlParams = usePrevious(globalUrlParam); + const replaceUrlParams = useReplaceUrlParams(); + + // Url params that got deleted from GlobalUrlParams + const unregisteredKeys = useMemo( + () => difference(Object.keys(previousGlobalUrlParams ?? {}), Object.keys(globalUrlParam)), + [previousGlobalUrlParams, globalUrlParam] + ); useEffect(() => { const linkInfo = getLinkInfo(pageName) ?? { skipUrlState: true }; @@ -114,36 +113,16 @@ export const useSyncGlobalQueryString = () => { value: linkInfo.skipUrlState ? null : value, })); - if (params.length > 0) { - // window.location.search provides the most updated representation of the url search. - // It prevents unnecessary re-renders which useLocation would create because 'replaceUrlParams' does update the location. - // window.location.search also guarantees that we don't overwrite URL param managed outside react-router. - replaceUrlParams(params, history, window.location.search); - } - }, [globalUrlParam, pageName, history]); -}; - -const encodeQueryString = (urlParams: ParsedQuery<string>): string => - stringify(url.encodeQuery(urlParams), { sort: false, encode: false }); - -const replaceUrlParams = ( - params: Array<{ key: string; value: string | null }>, - history: H.History, - search: string -) => { - const urlParams = parse(search, { sort: false }); + // Delete unregistered Url params + unregisteredKeys.forEach((key) => { + params.push({ + key, + value: null, + }); + }); - params.forEach(({ key, value }) => { - if (value == null || value === '') { - delete urlParams[key]; - } else { - urlParams[key] = value; + if (params.length > 0) { + replaceUrlParams(params); } - }); - - const newSearch = encodeQueryString(urlParams); - - if (getQueryStringFromLocation(search) !== newSearch) { - history.replace({ search: newSearch }); - } + }, [globalUrlParam, pageName, unregisteredKeys, replaceUrlParams]); };